Использование регулярного выражения и фильтра в формуле массива (Google Sheets) - PullRequest
1 голос
/ 31 мая 2019

У меня есть функциональная формула 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))),"-"),"")

версия массива: ....?

1 Ответ

0 голосов
/ 31 мая 2019
=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), "-"), ))

0

...