сравнить несколько столбцов с несколькими столбцами 2 листа и вернуть разные столбцы, если данные совпадают - PullRequest
0 голосов
/ 13 марта 2019

У меня есть 2 листа Excel.Один с информацией о клиенте, областью отправки и продажами, а другой с информацией о клиенте и геокодированной информацией (long / lat) в столбцах.Для этого я сравниваю столбцы CustomerID, LocationID, CustomerName в Sheet2 со столбцами Sheet1 с тем же именем, и, если они совпадают, перемещаются по данным по долготе, столбцы Latitude из Sheet2 в соответствующие столбцы на Sheet1.Мне нужна вся информация для загрузки в картографическую систему.Я не гуру Excel, начинаю более продвинутые классы на следующей неделе, и я играл с vLookups, но никогда не мог заставить его работать для этого введите описание изображения здесь .Должен ли я использовать что-то еще?

В приведенном ниже примере первый должен совпадать и перетаскиваться в Лист1, второй - нет.У нас есть около 7000 записей для анализа.

Лист1

Идентификатор клиента LocationID Имя Клиента Долгота Широта Продажи $ Отправка 1234 1 Смит 125 DFW

4567 1 Джонс 450 DFW

Лист2

CustomerID LocationID Имя Клиента Долгота Широта Адрес Город

1234 1 Смит 25.xxx -97.xxx 1234 Главный Даллас

4567 2 Джонс 25.xxx -97.xxx 452 Comm Buda

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Используйте комбо magix Index и Match, например, в D2, приведенном ниже формулы:

{=INDEX(Sheet2!D:D,MATCH(A2&B2&C2;Sheet2!A:A&Sheet2!B:B&Sheet2!C:C,0))}

В ячейке E2 поставить ниже формулу:

{=INDEX(Sheet2!E:E,MATCH(A2&B2&C2;Sheet2!A:A&Sheet2!B:B&Sheet2!C:C,0))}

Обратите внимание, что оба являются формулами массива и должны быть подтверждены с помощью Ctrl Shift Enter

Другой возможный способ - использовать =SUMPRODUCT(), например, как в ячейке D2:

=IFERROR(INDEX(Sheet2!D:D,SUMPRODUCT((A3=Sheet2!$A$1:$A$3)*(B3=Sheet2!$B$1:$B$3)*(C3=Sheet2!$C$1:$C$3)*ROW()),0),"")

Обратите внимание, что это не формула массива, поэтому для больших данных это должно быть быстрее!

0 голосов
/ 13 марта 2019

Это сложный поиск, и для вычисления ячеек данных 14 КБ (широта и длина для 7 КБ) потребуется некоторое время.

В соответствии с предоставленным изображением поместите его в Лист1! D2, затем перетащите вправо и заполнитевниз.

=IFERROR(INDEX(Sheet2!D:D, AGGREGATE(15, 7, ROW($1:$9999)/((Sheet2!$A:$A=$A2)*(Sheet2!$B:$B=$B2)*(Sheet2!$C:$C=$C2)), 1)), "")

Вы также можете попробовать SUMIFS.Это будет работать только в том случае, если три комбинации значений уникальны в Sheet2, поэтому может потребоваться COUNIFS, но без него будет быстрее.

=IF(COUNTIFS(Sheet2!$A:$A, $A2, Sheet2!$B:$B, $B2, Sheet2!$C:$C, $C2)=1, SUMIFS(Sheet2!D:D, Sheet2!$A:$A, $A2, Sheet2!$B:$B, $B2, Sheet2!$C:$C, $C2), "")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...