Подтвердить что ты не робот

Функция SUMIFS в Google Spreadsheet

Я пытаюсь использовать аналогичную функцию для SUMIFS (например, SUMIF, но с более чем одним критерием) в Google Spreadsheet. MS-Excel имеет встроенную функцию (http://office.microsoft.com/en-us/excel-help/sumifs-function-HA010342933.aspx?CTT=1).

Я попытался использовать ArrayFormula (http://support.google.com/docs/bin/answer.py?hl=en&answer=71291), аналогично SUMIF:

=ARRAYFORMULA(SUM(IF(A1:A10>5, A1:A10, 0)))

Добавив И:

=ARRAYFORMULA(SUM(IF(AND(A1:A10>5,B1:B10=1), C1:C10, 0)))

Но функция И не взяла команду ArrayFormula и не возвращала FALSE все время.

Единственное решение, которое я смог найти, это использовать QUERY, который кажется немного медленным и сложным:

=SUM(QUERY(A1:C10,"Select C where A>5 AND B=1"))

My Target - заполнить таблицу (похожую на сводную таблицу) со многими значениями для вычисления:

=SUM(QUERY(DataRange,Concatenate( "Select C where A=",$A2," AND B=",B$1)))

Кто-нибудь мог сделать это проще и быстрее?

4b9b3361

Ответ 1

Я нашел более быструю функцию для заполнения "сводной таблицы":

=ARRAYFORMULA(SUM(((Sample!$A:$A)=$A2) * ((Sample!$B:$B)=B$1) * (Sample!$C:$C) ))

Кажется, что он работает намного быстрее без более тяжелых функций String и Query.

Ответ 2

Самый простой способ легко сделать SumIFS-подобные функции, на мой взгляд, - объединить функцию FILTER и SUM.

SUM(FILTER(sourceArray, arrayCondition_1, arrayCondition_2, ..., arrayCondition_30))

Например:

SUM(FILTER(A1:A10;A1:A10>5;B1:B10=1)

Объяснение: FILTER() фильтрует строки в A1: A10, где A1: A10 > 5 и B1: B10 = 1. Затем SUM() суммирует значения этих ячеек.

Этот подход очень гибкий и легко позволяет также выполнять функции COUNTIFS() (просто используйте COUNT() вместо SUM()).

Ответ 3

По состоянию на декабрь 2013 года в Google Таблицах теперь есть функция SUMIFS, как указано в этом сообщении в блоге и документирована здесь.

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

Ответ 4

Этот парень использовал функцию фильтра для измельчения массива по критериям, затем функцию суммы, чтобы добавить все это в одну ячейку. http://www.youtube.com/watch?v=Q4j3uSqet14 Это работало как прелесть для меня.