Как использовать REGEXEXTRACT только для строк, которые содержат ячейку, содержащую строку в SUM? - PullRequest
1 голос
/ 05 января 2020

Если мой набор данных:

|                  H              |   U  |   |   |   |
| 100 Main St, Berkeley, CA       | $200 |   |   |   |
| 200 Other St, San Francisco, CA | $400 |   |   |   |
| 300 This St, Oakland, CA        | $250 |   |   |   |
| 111 That St, San Francisco, CA  | $90  |   |   |   |

Как получить общую сумму всех значений в столбце D для строк, содержащих слово "Сан-Франциско"? Этот набор данных находится на Sheet1, а моя формула на Sheet2. В настоящее время я использую эту формулу для суммирования всех строк, независимо от их города.

=ArrayFormula(sum(iferror(REGEXEXTRACT(Sheet1!U2:U918&".","\$?([0-9]+)[.,]")*1)))

Но я попытался использовать SUMIF и Regexmatch в качестве первого аргумент ArrayFormula и ни один из них не сработал.

ОБНОВЛЕНИЕ:

player0 дал мне ответ (я добавил сумму вокруг него, чтобы получить именно то, что я хочу).

=SUM(ARRAYFORMULA(QUERY({Onfleet!H2:H, REGEXEXTRACT(TO_TEXT(Onfleet!U2:U), "\d+")*1}, "select sum(Col2) where lower(Col1) contains 'oakland' group by Col1 label sum(Col2)''")))

1 Ответ

0 голосов
/ 05 января 2020

используйте эту формулу:

=ARRAYFORMULA(QUERY({Sheet1!H2:H, REGEXEXTRACT(TO_TEXT(Sheet1!U2:U), "\d+")*1}, 
 "select Col1,sum(Col2) 
  where lower(Col1) contains 'san francisco' 
  group by Col1 
  label sum(Col2)''"))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...