OpenOffice.org Calc SUMIF заявление - PullRequest
2 голосов
/ 13 апреля 2011

Я пытаюсь суммировать все ячейки в C2: C2000, если соответствующая ячейка в столбце A находится в (10; 20], но у меня проблемы с условием.

Я пробовал что-то вроде =SUMIF(A2:A2000, AND(">10","<=20"), C2:C2000), но это возвращает 0, что неверно.

Спасибо.

[править]

Можно использовать =SUMIF(A2:A2000, ">10", C2:C2000) - SUMIF(A2:A2000, ">20", C2:C2000), но это не совсем то, что я ищу.

Ответы [ 2 ]

2 голосов
/ 24 июля 2012

Относительно элегантным решением в OpenOffice является использование Sumproduct - который умножает два массива. Накормите Sumproduct последовательными тестами на правду в диапазоне (которые, я думаю, возвращают массив логических значений). Примерно так:

SUMPRODUCT(C2:C2000;A2:A2000>"10";A2:A2000>="20")

Я получил это отсюда:

http://user.services.openoffice.org/en/forum/viewtopic.php?f=9&t=28585

Протестировано в OpenOffice - я понятия не имею, есть ли эквивалент в Excel. Извините, у меня нет копии для тестирования.

2 голосов
/ 13 апреля 2011

Самый простой способ обойти ограничение сложных условий - это использовать другой столбец в качестве «локальной переменной» - сделать столбец D результатом вашего условия (И (и т. Д.)), Скрыть его, если вы хотите, чтобы на экране было меньше помех.и используйте D2: D2000 в качестве части if для SUMIF.

отредактировано для добавления альтернативной опции:

http://support.microsoft.com/kb/275165

используйте Sum (if (..))вместо SUMIF и используйте продукты и суммы вместо ANDS и OR.

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

...