На основе ( Поиск значения из другой вкладки / листа в листах Google на основе ссылки на ячейку ) у меня есть 2 вкладки / листы в Google Sheets, одна из которых собирает данные из форм Google, а другая - это поисковый лист.
Вот пример (тот же, что и для вопроса, упомянутого выше, но с добавленными данными): (https://docs.google.com/spreadsheets/d/1qLcJdCn4EdV7lPOAfZ_CMak1LBkve45FL5SXyqBV3L8/edit#gid=354631176)
В верхней части листа поиска у меня есть поля поиска, которые пользователь заполняет, и вниз в другой ячейке. У меня есть формула поиска, которая возвращает транспонированный список значений, найденных в той же строке из Sheet1, соответствующих значению, найденному в Sheet2 , Но когда он встречает пустую ячейку на листе 1, он либо прекращает поиск значений, либо выдает значение следующей непустой ячейки независимо от указанных строк, которые нужно вернуть.
Пояснение:
В верхней части листа поиска у меня есть поля поиска в ячейках B3: F3, которые пользователь заполняет (строка 3), и внизу в ячейке B8 у меня есть формула поиска:
=ARRAYFORMULA(
IF(B3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(B3, {'Respuestas de formulario 2'!AN:AN, 'Respuestas de formulario 2'!A:BN},
{24,3,21,23,13,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0)), CHAR(10))), "♦", ),
IF(C3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(C3, {'Respuestas de formulario 2'!AK:AK, 'Respuestas de formulario 2'!A:BN},
{24,3,21,23,14,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0)), CHAR(10))), "♦", ),
IF(D3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(D3, {'Respuestas de formulario 2'!AR:AR, 'Respuestas de formulario 2'!A:BN},
{24,3,20,23,13,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0)), CHAR(10))), "♦", ),
IF(E3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(E3, {'Respuestas de formulario 2'!W:W, 'Respuestas de formulario 2'!A:BN},
{24,3,21,23,13,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0)), CHAR(10))), "♦", ),
IF(F3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(F3, {'Respuestas de formulario 2'!Z:Z, 'Respuestas de formulario 2'!A:BN},
{24,3,21,23,13,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0)), CHAR(10))), "♦", ), ))))))
Формула ищет значения, введенные с B3 по F3 (на листе 2), чтобы сопоставить их с данными на листе 1 (называемые «Respuestas de formulario 2»), а затем возвращает вертикальный список значений, найденных в этой строке. , пропуская одну ячейку после каждого результата, в определенном порядке (поэтому числа между {} не в порядке).
Однако, не все ячейки на листе 1 могут содержать данные (например, если в Google Forms есть пропущенный раздел, например «Если« да », переходите к разделу 2; если« нет », переходите к разделу 3»). Проблема состоит в том, что когда формула встречает пустую ячейку, кажется, что она либо прекращает поиск других результатов, либо перебрасывает значения и возвращает данные из новой ячейки, которая имеет значения.
Я пытался покончить с этим, но это не сработало:
...{24,34,3,21,23,13,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0)), CHAR(10))), "♦", ), ))))), "no match found")
Затем я попытался добавить «не найдено совпадений» в каждый IF, как это, но тоже не сработало:
IF(B3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(B3, {'Respuestas de formulario 2'!AN:AN, 'Respuestas de formulario 2'!A:BN},
{24,3,21,23,13,5,6,9,10,67,53,54,55,56,57,58,59,30,61,27,62,63,64,65,41,38,36,37,31,32,33,34,45}, 0,"no match found")), CHAR(10))), "♦", ),
Я хочу представить пустое совпадение в каждой ячейке столбца результатов, в то время как найденные значения соответствуют значениям, соответствующим перечисленным строкам в {}
именно в таком порядке.