我需要在excel中自动执行此任务: 我有2个excel工作簿: 一个人有这样的信息:
A B C
1 TABLENAME1 FIELDNAME1
2 TABLENAME1 FIELDNAME2
3 TABLENAME2 FIELDNAME3
4 TABLENAME3 FIELDNAME1
5 TABLENAME3 FIELDNAME2
6 TABLENAME3 FIELDNAME3
另一个:
A B
1 TABLENAME1 FIELDNAME3
2 xxTABLENAME1xx FIELDNAME4
3 TABLENAME2xxx FIELDNAME2
4 XXTABLENAME3xx FIELDNAME1
注意:“A”和“B”只是单元格标题。
我必须使用第二个工作簿中第一个工作簿中的相应字段名搜索每个tablename。但是有一个问题:第二个工作簿中的表名可以包含在另一个更大的字符串中,所以这里需要LIKE
sql命令。
在搜索结束时,结果必须以这种方式放入C列:
A B C
1 TABLENAME1 FIELDNAME1 NO
2 TABLENAME1 FIELDNAME2 NO
3 TABLENAME2 FIELDNAME3 NO
4 TABLENAME3 FIELDNAME1 YES
5 TABLENAME3 FIELDNAME2 NO
6 TABLENAME3 FIELDNAME3 NO
如您所见,带有fieldname1的Tablename3是第二个工作簿中唯一的行。
如何使用excel公式或宏进行此操作? 请帮助我,这将节省我很多时间,因为这个任务实际上有数千行。 编辑:搜索必须不区分大小写。
答案 0 :(得分:0)
如果在Excel 2007及更高版本中,请将此公式放在“Sheet1”单元格C2中并向下复制:
=IF(COUNTIFS(Sheet2!A:A,"*"&A2&"*",Sheet2!B:B,C2)>0,"YES","NO")
答案 1 :(得分:0)
解决:
=IF(
AND(
IFERROR(MATCH("*" & A1 & "*",[Workbook2.xlsx]Sheet!$D$2:$D$16074,0),FALSE)
,
IFERROR(MATCH(B1,[Workbook2.xlsx]Sheet!$E$2:$E$16074,0),FALSE)
),"YES","NO")