У меня есть функциональная формула Google Sheets, которую я пытаюсь изменить, чтобы выполнять ее как формулу массива, чтобы мне больше не нужно было копировать и вставлять в каждую ячейку. Вы можете помочь?
Я пробую обычный подход:
=arrayformula(if (len(A2:a)>0,iferror(transpose(filter(Dashboard!B:B, regexmatch(Dashboard!c:c, d2:d))),"-"),""))
но не работает (думаю, повторяет результат из первой строки во всем столбце).
простая версия:
=if (len(A2)>0,iferror(transpose(filter(Dashboard!B:B, regexmatch(Dashboard!c:c, d2))),"-"),"")
версия массива: ....?
Я предполагаю, что проблема в том, что я использую «ФИЛЬТР» внутри «МАССИВА». Это невозможно в Google Таблицах?
=ARRAYFORMULA(IF(LEN(A2:A), IFERROR(VLOOKUP(REGEXEXTRACT(D2:D, TRANSPOSE(SUBSTITUTE(
TRIM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(SPLIT(Dashboard!C2:C, ",")))
,,999^99)),,999^99)), " ", "|"))), TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
TRANSPOSE(IF(IFERROR(SPLIT(Dashboard!C2:C, ","))<>"", "♠"&IFERROR(
SPLIT(Dashboard!C2:C, ","))&"♦"&Dashboard!B2:B, ))
,,999^99)),,999^99), "♠")), "♦")), 2, 0), "-"), ))
Спасибо, player0. Вы волшебник! Будет ли иметь значение скорость формулы, если у меня будет один и тот же разделитель в поле «Электронные письма» на обоих листах? (сейчас у меня есть «,» в Dashboard и «|» на листе с массивом).
это не будет иметь большого значения. regexextract требует наличия разделителя/оператора |
, но его можно вставить даже виртуально, поэтому вы можете иметь любой разделитель, который пожелаете.
Спасибо за редактирование, player02. Вот ссылка на примерную версию таблицы: docs.google.com/spreadsheets/d/…