Индекс соответствия нескольких критериев в Excel, глядя на частичное соответствие - PullRequest
0 голосов
/ 21 октября 2019

Ввод формы пользователя

Ссылка на комплект загрузки

У меня есть несколько столбцов пользовательского ввода, которые должны соответствовать каждому столбцу в справочном листе, чтобы получить заданный номер чертежа.

Моя первоначальная попытка:

=INDEX('Loading Kits'!A$2:A$113,MATCH(1,('Shop Orders'!B5='Loading Kits'!C$2:C$113)*('Shop Orders'!E5='Loading Kits'!D$2:D$113)*('Shop Orders'!G5='Loading Kits'!E$2:E$113)*('Shop Orders'!H5='Loading Kits'!F$2:F$113)*('Shop Orders'!I5='Loading Kits'!G$2:G$113),0))

Это прекрасно работает, когда в справочных листах есть только один вариант размера («Заказы в магазине»! B5 = «Загрузка комплектов»! C $ 2: C $ 113). Как создать совпадение, если в одном столбце есть несколько (до 6) параметров, разделенных запятыми (24C, 24D, 26A, 26B, 26AV, 26BV)?

1 Ответ

0 голосов
/ 21 октября 2019

Одно из немногих исключений, где я бы сказал, что конкатенация при использовании INDEX и MATCH будет безопасна для работы, если ваши значения будут объединены через запятую без пробела (в противном случае формула будет немного другой). Но позвольте мне привести вам минимальный пример того, как заставить что-то подобное работать:

enter image description here

Формула в F3:

=INDEX(A2:A4,MATCH(1,INDEX((B2:B4=F1)*(ISNUMBER(FIND(","&F2&",",","&C2:C4&","))),),0))

Если ваши значения следуют друг за другом через запятую, вам, очевидно, придется конкатенировать по-разному:

=INDEX(A2:A4,MATCH(1,INDEX((B2:B4=F1)*(ISNUMBER(FIND(", "&F2&",",", "&C2:C4&","))),),0))
...