Google Sheets: Как использовать массив формул для поиска и получения данных только из определенного динамического набора столбцов - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть таблица листов Google, где мои заголовки динамически генерируются из другого источника и могут отображаться с любыми значениями заголовков в любом порядке.

В примере ссылки у меня есть значения заголовков:AA - BB - CC - ABBA - KK - VV, но это могло быть просто: CC - AA - QQ - YY

Я не знаю заранее, какие заголовки я получу или сколько.

Моя проблема заключается в том, что я хочу суммировать значения каждого продукта в каждой строке, используя формулу массива, где заголовки столбцов включают, например, "BB".

Таким образом, в основном =arrayformula(sumifs(G4:L1000,$G$3:$L$3,"BB")), если этобыло дело.

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

Отчаянно нуждаюсь в помощи.

https://docs.google.com/spreadsheets/d/1ZcMldTJrFLz_f_w-lGMIuAKs_yGSc1eDXbA2tgr9Bw4/edit?usp=sharing

Я могу получить массивы всех заголовков, которые соответствуют моему запросу (в B4: B):

=TRANSPOSE(SPLIT(arrayformula(CONCATENATE(IF(REGEXMATCH(G3:L3,"BB"),G3:L3&"~",""))),"~"))

, а затем получить индексы столбцов (в C4: C):

=iferror(arrayformula(match(B4:B,$G$3:$L$3,0)+6),"")

или даже латыш столбцаers (в D4: D):

=iferror(arrayformula(REGEXEXTRACT(ADDRESS(ROW(), indirect("C4:C"&counta(B4:B)+3)), "[A-Z]+")),"")

и тогда у меня была какая-то недоуменная идея использовать это в vlookup, но теперь я просто полностью и совершенно застрял.

1 Ответ

0 голосов
/ 27 апреля 2019

Вы можете создать промежуточную таблицу, используя

=filter(F3:L, arrayformula(regexmatch(F3:L3,"BB")))

и затем используйте SUM в каждом столбце, чтобы получить то, что вам нужно. Если результаты FILTER начинаются со строки 2, вы можете поместить функции SUM в строку 1, чтобы они не мешали расширению FILTER.

...