Я работаю над огромным файлом, который получает данные из электронной таблицы. Мне нужно сопоставить номер магазина и название магазина и вернуть правильный адрес. Это было бы легко, но многие номера магазинов повторяются, поэтому я не могу просто сопоставить номер магазина. Я также должен соответствовать названию магазина. Пример данных:

Store Name         Store Number     Address
Kroger - Dallas    333              358 Street
Kroger - Dallas    450              123 Street
Kroger - Delta     450              453 Street
Kroger - Atlanta   450              648 Street
Kroger - Atlanta   258              284 Street
HEB                450              349 Street

Я уже знаю, как вернуть адрес, если номер магазина совпадает, но в этих магазинах их номера иногда конфликтуют друг с другом. Работать с клубами Сэма очень просто, поскольку ни один номер магазина не конфликтует друг с другом, поэтому все данные возвращаются великолепно.

Я пытаюсь сначала проверить, содержит ли имя "Даллас" или "Атланта" и т.д., А затем проверить номер магазина, связанный с этим именем, и вернуть адрес.

Это формула, которую я пытаюсь, но она говорит, что есть ошибка. Где D3 - это ячейка, которая содержит название магазина и номер магазина.

 =IF(SEARCH("Kroger", $D$3), IF(ROW(SEARCH("Dallas", D3))=ROW(MATCH(INT(RIGHT(D3, LEN(D3)-FIND("#", D3))), B2:B985)), "Match!", "No Match."), IF(RIGHT($D$3,1)="#","Enter a Valid Store Number", INDEX(Locations!$C$2:$C$985,MATCH(INT(RIGHT($D$3,LEN($D$3)-FIND("#",$D$3))),Locations!$B$2:$B$985,0),)))

Если я заменим IF(ROW() = ROW()) на это:

IF(ROW(D3)=ROW(D3), "Match!", "No Match.")

Это работает, так что я знаю, что ошибка не в остальной части формулы.

2 ответа2

1

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

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

Если данные форматируются одинаково в обеих электронных таблицах, формула INDEX MATCH должна работать нормально.

Приведенная ниже формула массива сопоставит значения в столбце E & F с соответствующими значениями в столбце A & B, а затем вернет соответствующее значение в C.

Это формула массива, поэтому вам нужно будет ввести ее, нажав CTRL + SHIFT + ENTER.

=INDEX(C:C|MATCH(E1&F1|A:A&B:B|0))

0

Вы можете использовать эту формулу, где D - это столбец для названия магазина, и вы можете перетащить его вниз для каждого имени, которое даст вам соответствующий адрес
=IFERROR(IF(AND(FIND("Kroger",D3,1)>0,FIND("Dallas",D3,1)>0),OFFSET(D3,0,2),""),"")
Но если вам нужно искать все имена магазинов одновременно с одной формулой, вам нужен другой.
Другая формула заключается в объединении названия магазина и номера магазина с использованием MATCH и OFFSET, A:A и B:B - это массив вашей информации (имя магазина и номер магазина) с соответствием, вы получите строку со смещением, вы получите адрес с A1 в качестве начальной ссылки, где находится название хранилища заголовков.
=OFFSET(A1,MATCH("Kroger - Dallas"&"450",A:A&B:B,0)-1,2)
Используйте CTRL + SHIFT + ENTER - это формула массива

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .