2013-08-28 5 views
0

Мне нужно автоматизировать эту задачу в Excel: У меня есть 2 книг Excel: One имеет такую ​​информацию:Как автоматизировать это в 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» - это только заголовки ячеек.

Я должен искать каждое имя табуляции с соответствующим именем поля из первой рабочей книги во второй книге. Но есть проблема: вкладки во второй книге могут содержаться внутри другой более крупной строки, поэтому здесь нужно что-то вроде команды 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 

Как вы можете видеть Tablename3 с FIELDNAME1 является единственной строкой, которая находится во втором учебном пособии.

Как это сделать с использованием формул или макросов excel? Пожалуйста, помогите мне, это сэкономит мне много времени, так как эта задача имеет на самом деле тысячи строк. РЕДАКТИРОВАТЬ: поиск не должен быть чувствительным к регистру.

+1

'= ЕСЛИОШИБКА (MATCH ("*" & A1 & "*", $ G $ 1: $ G $ 10,0) = MATCH (B1, $ H $ 1: $ H $ 10,0), FALSE) 'где (для простоты) столбцы G и H на одном листе представляют столбцы A и B на листе2 –

ответ

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") 
0

Если на Excel 2007 и выше, поместите эту формулу в ячейке С2 'Лист1' и записал:

=IF(COUNTIFS(Sheet2!A:A,"*"&A2&"*",Sheet2!B:B,C2)>0,"YES","NO")