Запрос для перечисления данных, которых нет в другом столбце

=QUERY({startingdates!D2:D, Cancelledtours!D2:D},"Select Col1 where not(Col1) matches Col2")

Кажется, это работает для столбца A, но не для столбца D. Я в тупике. Кто-нибудь может помочь?

Лист - https://docs.google.com/spreadsheets/d/1zEQmNs48CsaaioQOcwuK97kcmnDLDfX-57nuXFaLujc/edit?usp=sharing

Снимок экрана


person user198561    schedule 07.12.2019    source источник
comment
Причина, по которой у вас проблемы с столбцом D, заключается в том, что ... это единственный столбец с отмененными датами.   -  person Tedinoz    schedule 07.12.2019
comment
ваша формула просто неверна, и она работает для столбца A просто по совпадению   -  person player0    schedule 07.12.2019
comment
Я добавил дату первого тура в столбец A, и это сработало, хотя, возможно, я ошибался. Не за компьютером сейчас.   -  person user198561    schedule 07.12.2019


Ответы (2)


Вы должны выполнить поиск по дате начала - запрос в его нынешнем виде смотрит только в той же строке, чтобы увидеть, есть ли совпадение:

=ArrayFormula(QUERY({StartingDates!D2:D, isnumber(vlookup(StartingDates!D2:D,CancelledTours!D2:D,1,false))},"Select Col1 where Col2=false"))

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

=ArrayFormula(QUERY({StartingDates!D2:D, isnumber(match(StartingDates!D2:D,CancelledTours!D2:D,0))},"Select Col1 where Col2=false"))

введите здесь описание изображения

Если изменить логику, то это тоже работает:

=ArrayFormula(QUERY({StartingDates!D2:D, isna(match(StartingDates!D2:D,CancelledTours!D2:D,0))},"Select Col1 where Col2=true"))
person Tom Sharpe    schedule 07.12.2019
comment
Интересно, хотя и неважно, что это обходит правило литерал даты в QUERY. - person Tedinoz; 07.12.2019
comment
Хороший момент, я действительно не думал об этом, но я не был уверен, пока не попробовал (подтвержденный вашей ссылкой), что допустимы литералы true и false. Мне было интересно, можно ли поставить «where not Col2 = true» - нет, нельзя, «not» работает только с логическим выражением, поэтому вам придется сказать «where not Col2 = true» :-) - person Tom Sharpe; 07.12.2019

пытаться:

=FILTER(startingdates!D2:D, NOT(COUNTIF(Cancelledtours!D2:D, startingdates!D2:D)))

0

person player0    schedule 07.12.2019