Найдите ответ, сгенерированный пользователем, и верните ИСТИНА или ЛОЖЬ в зависимости от имени пользователя и значения ответа.

У меня есть пользователи, которые сообщают, в какие даты они свободны, в форме Google и хотят переместить ответы в лист, который легче читать, чтобы я мог их систематизировать.

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

Это лист ответов:

https://i.imgur.com/qSIgmEs.png

и это лист данных:

https://i.imgur.com/UThUsI9.png

ССЫЛКА НА ПРИМЕР ЛИСТА (я включил комментарии):

Теперь я хочу, чтобы в таблице все даты из листа ответов были разделены на ИСТИНА или ЛОЖЬ для каждой даты.

Пример: John отметил, что он недоступен для работы в 03.07, и результат отображается в Answers!D2. Я хочу, чтобы Data!B6 вернул TRUE.

Я хочу, чтобы все имена в Data! отражали то, что они ответили в Answers!, только в отдельных ячейках.

Я представляю себе формулу, которая делает следующее:

  1. Сопоставьте имя в Data!(current row):A с Answers!A:A

  2. Найдите в строке с совпадением имени в Answers! любые ячейки, соответствующие значениям из Data!(current column):2

  3. Верните TRUE или FALSE в зависимости от наличия значения в любом из ответов.

Я крутил себе голову над этим то и дело в течение нескольких месяцев, но это оказалось слишком сложным для меня. Любая помощь приветствуется :)


person Sven Erik Larsen    schedule 11.06.2019    source источник


Ответы (2)


вставьте в ячейку B3 и потяните вниз:

=ARRAYFORMULA(IF(IFERROR(HLOOKUP(B$2:$2; TRIM(SPLIT(TEXTJOIN(","; 1; 
 IFERROR(VLOOKUP(A3; Answers!A$2:E; {4; 5}; 0))); ",")); 1; 0))<>""; TRUE))

0

person player0    schedule 11.06.2019

НЕПРОВЕРЕННЫЙ

Пожалуйста, попробуйте в B3 и скопируйте поперек и вниз:

=not(iserror(find(text(B$2;"DD.MM");indirect("Answers!D"&match($A3;Answers!$A:$A;0))&indirect("Answers!E"&match($A3;Answers!$A:$A;0)))))
person pnuts    schedule 11.06.2019