Сравните два списка и отобразите отсутствующие элементы в электронной таблице Google.

9

Я пытаюсь найти решение, чтобы сравнить два отдельных списка (приглашенных - посещенных) и создать третий список (отсутствует).

Функция должна посмотреть на ключ в «Списке присутствующих (D, E, F)» и сравнить его с ключом в «Списке приглашенных (A, B, C)», а затем отобразить пропущенные значения в «Списке отсутствующих (G, H»). ,Я)".

О данных

  • Ключ - это «уникальное значение», присваиваемое каждому приглашенному человеку.
  • Данные в «Списке приглашенных (A, B, C)» состоят из данных QUERY.
  • Данные в «Списке присутствующих (D, E, F)» копируют / вставляют значения в ячейки.

Пример желаемого результата

Invitded List (A,B,C)      Attended List (D,E,F)       Absent List (G,H,I)
 A      B       C            D      E       F            G      H        I
Key | Fname | Lname       | Key | Fname | Lname       | Key  | Fname | Lname
------------------------------------------------------------------- 
001   Tim     Smith         002  Mike     Jones         001    Tim     Smith
002   Mike    Jones         004  Jenny    Johnson       003    Amy     Wilson
003   Amy     Wilson
004   Jenny   Johnson

Любая помощь очень ценится.

Мистер Б
источник
Почему vlookup не делает эту работу за вас?
Рахи
@rahi Спасибо, что посмотрели на это. vlookup может работать, не могли бы вы дать мне направление?
Мистер Б.

Ответы:

3

Вы можете попробовать что-то вроде этого:

=if(countif(D:D,A2)=0,A2,"")  

затем скопируйте в нужном направлении.

COUNTIF

pnuts
источник
Это работает как частичный результат, так как возвращает пустые строки, которые должны быть удалены, чтобы получить желаемый конечный результат.
Рубен
6

формула

=ArrayFormula(FILTER(A4:C7,ISERROR(match(A4:A7,D4:D5,0))))

объяснение

MATCH возвращает ошибку, если приглашенный не появляется в списке посещенных. ISERROR преобразует ошибки в TRUE, а значения в FALSE. Этот результат используется в качестве критерия фильтрации. В результате получается список отсутствующих:

|   001 |Tim       |Smith
|   003 |Amy       |Wilson

Просто добавьте правильные заголовки над формулой

Рубена
источник
0

VLOOKUP - это еще один способ получить ответ, который вы хотите, но я не уверен, представляет ли он его так, как вы хотите.

Из справочной статьи Google Sheets, VLOOKUP,

Выполняет поиск ключа в первом столбце диапазона и возвращает значение указанной ячейки в найденной строке.

Поэтому, если вы добавите Statusстолбец в свой список посетителей, вы можете запустить его VLOOKUPв списке приглашенных, попросив его вернуть Attendedстатус.

Ваши данные могут выглядеть примерно так:

Перед ВЛУКУПОМ

В ячейке D2 ваша VLOOKUPформула будет выглядеть так:

=VLOOKUP(A2, E:H, 4, FALSE)

  • A2 это ключ
  • E:H это диапазон (список участников)
  • 4относится к номеру столбца в диапазоне значения, которое вы хотите вернуть
  • FALSE указывает на то, что вы ищете точное совпадение на ключе

Когда вы заполняете формулу вниз от ячейки D2 до D5, вы получаете данные, которые выглядят так:

После ВЛУКУП

Там, где было совпадение, Statusзначение сбрасывается. Там, где нет совпадения, вы видите #N/A.

рахи
источник
Это работает как частичный результат, поскольку возвращает ошибки, которые могут быть использованы для последующей фильтрации списка приглашенных для получения желаемого конечного результата.
Рубен
0

Решение с одной ячейкой:

Объединение FILTERфункции с COUNTIFфункцией дает вам список, который вы хотите:

=FILTER(A:C,COUNTIF(D:D,A:A)=0))

В этом примере я использовал Ключ в качестве поля сопоставления, сравнивая столбец A со совпадениями в D, но он работает и с другими столбцами.

AVW
источник