金美欧的老公是谁:Excel 模糊筛选问题!!说不清楚 高手进!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 06:07:37
Excel 模糊筛选问题!!说不清楚 高手进!!
Excel 模糊筛选问题!!说不清楚 高手进!!
在整理MP3 文件收藏目录的时候出现一个棘手问题!呵呵

A列
这个是我我所有MP3 专辑的目录列表,有1000行 现在列出3个作例子

A1 《角斗士 Gladiator》 原声大碟
A2 《决战时刻 THE RATRIOT》 原声大碟
A3 《美国甜心America's Sweethearts》 原声大碟

B列
这个是我已经刻录了的MP3专辑 目录列表 有500行 现在列出3个作例子。

B1 美国甜心 原声大碟
B2 原声大碟 角斗士
B3 原声-决战

=====注意 !A和B顺序不一样 名称也有改变,但部分内容是相同的 =====

因为刻录的时候修改了文件夹名字,所以列表整理出来后顺序全乱了,

这么多数据,我怎么才能以最快的方法标记我已经刻录了的那500张MP3 专辑??
就是说,
如果A1已经刻录,就在C1里面显示“已刻录”
如果A2已经刻录,就在C2里面显示“已刻录”
如果A3没有刻录,就在C3里面显示“未刻录”

Sub test()
'实现原理:对单原格内的数据进行单字比对,对发现两个单元格内的字串中有大于Max个的字符相同时就认为两组数据相同
'因为多数表格中有“原声大碟”的字样,所以程序中双将这几个字屏蔽掉了,如果你不相屏蔽,将对应原声大碟的几行
'的语句删除了就行,删一句少屏蔽一个字
Max = 3 '设定Max的值,值越大精确度越高,但可会出现遗漏你可根据实际来设置。
'一般设置为3最好,然后再简单校一下就可以了
For i = 1 To Worksheets("sheet1").Columns(1).End(xlDown).Row
flag = False
counts = 0
For j = 1 To Worksheets("sheet1").Columns(2).End(xlDown).Row
counts = 0
For m = 1 To Len(Worksheets("sheet1").Cells(i, 1).Value)
For n = 1 To Len(Worksheets("sheet1").Cells(j, 2).Value)
If Mid(Worksheets("sheet1").Cells(i, 1).Value, m, 1) = Mid(Worksheets("sheet1").Cells(j, 2).Value, n, 1) _
And Mid(Worksheets("sheet1").Cells(i, 1).Value, m, 1) <> "原" _
And Mid(Worksheets("sheet1").Cells(i, 1).Value, m, 1) <> "声" _
And Mid(Worksheets("sheet1").Cells(i, 1).Value, m, 1) <> "大" _
And Mid(Worksheets("sheet1").Cells(i, 1).Value, m, 1) <> "碟" _
Then
If counts >= Max Then
flag = True
Exit For

End If
counts = counts + 1
End If
Next
If flag Then Exit For

Next
If flag Then Exit For
Next
If flag Then
Cells(i, 3).Value = "已刻录"
flag = False
Else
Cells(i, 3).Value = "未刻录"
End If
Next
End Sub
——————————————————————
确保你的数据所在表的名称为“sheet1",对应数据如你所说在AB列。然后按Alt+f11打开VBa,从插入菜单中选择”模块“。然后将横线上面所有内容复制到打开的模块中,按F5运行。OK
建议你先将Max修改的比较大,比如6,然后再运行,再将表中除理过的数据(A列的)剪切到新表,C列数据删除。然后再将Max改小再剪切,但Max不要小于3
.为什么这样在程序的原理说明上有解说。
没办法,时间关系+你的分数我只能说这么多了,用我两个小时呢。