Как сравнить 2 массивных / огромных / длинных списка и вывести любые несоответствующие результаты в одном поле - PullRequest
0 голосов
/ 10 октября 2018

У меня есть 2 массивных столбца, заполненных студентами

Столбец 1 (SID) имеет 110 000 строк

Столбец 2 (SID2) имеет 100 000 строк

Как сделатьпроверка столбца 1 = столбец 2 или наоборот, а затем, наконец, поместите все это в одно поле!

Текущие результаты

SID SID2 
45  45
142 142
237 218
238 441  
410 410
440 442 
452 237
    452

Окончательный ожидаемый результат

SID SID2  Check
45  45
142 142
237 218
238 441   238,441
410 410
440 442   440
452 237
    452
          238,441,440

КакВы можете видеть, что все идентификаторы, которые не соответствуют друг другу, должны быть размещены в одном поле, чтобы я мог легко их обнаружить, а не просматривать 100 000 строк

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Похоже, что SolarMike ответил, предполагая, что тест равен A2 = B2, но я думаю, что вы спрашиваете, если A2 = [Все в столбце B] и B2 = [Все в столбце A].Вот как я могу это проверить: Testing multiple ranges against each other

Столбец C:

=IFERROR(IF(MATCH(A2,B:B,0)>1,"",A2),A2)

Столбец D:

=IFERROR(IF(MATCH(B2,A:A,0)>1,"",B2),B2)

Столбец E ((очень грубо, но эффективно):

=IF(AND(C2="",D2=""),"",CONCATENATE(C2,",",D2,","))

Теперь ваша настоящая проблема - собрать все это в одну клетку.Единственный способ, которым я знаю, как это сделать, - это использовать Concatenate, но для этого необходимо, чтобы вы выбирали КАЖДУЮ ЯЧЕЙКУ индивидуально.

=CONCATENATE(E2,E3,E4,E5,E6,E7,E8,E9,E10)

Для 10000 строк это не представляется возможным.Кроме того, этот вывод не очень гибкий, но я отвлекся.

Если вы хотите объединить все вместе в одной ячейке, у вас есть два варианта.

A) Используйте здесь код VBA (это довольно просто, это кажется приемлемым вариантом): Объединить диапазоны Excel с VBA

B) Надеюсь, что у вас Office 365 с TEXTJOIN () См. статью поддержки здесь.

0 голосов
/ 10 октября 2018

Вы можете использовать match () с iferror () и if ():

=IF(IFERROR(MATCH(A1,B1,)>0,0),"ok",A1)

см .: enter image description here

Чтобы вернуть оба поля, используйте:

=IF(IFERROR(MATCH(A1,B1,)>0,0),"ok",A1)&" , "&IF(IFERROR(MATCH(A1,B1,)>0,0),"ok",B1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...