Microsoft Excel

  • doc
  • 14.05.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 188. Microsoft Excel.doc

Microsoft Excel

Суммирование по нескольким критериям


Предположим что у Вас есть вот такой отчёт по продажам торговых представителей:



Из него Вам необходимо узнать сколько карандашей продал торговый представитель Иванов в январе.



ПРОБЛЕМА: Как суммировать данные по нескольким критериям??

РЕШЕНИЕ: Способ 1:

=БДСУММ(A1:G16;F1;I1:K2)


В английской версии:

Code

=DSUM(A1:G16,F1,I1:K2)


КАК ЭТО РАБОТАЕТ:
 


Из указанной нами базы данных A1:G16 функция БДСУММ извлекает и суммирует данные столбца Количество (аргумент "Поле" = F1) по заданным в ячейках I1:K2 (Продавец = ИвановПродукция = Карандаши; Месяц = Январь) критериям.



МИНУСЫ
: Список критериев должен быть на листе.

ПРИМЕЧАНИЯ
: Количество критериев суммирования ограничено оперативной памятью.

ОБЛАСТЬ ПРИМЕНЕНИЯ
: Любая версия Excel

Способ 2:

Code

=СУММПРОИЗВ((B2:B16=I2)*(D2:D16=J2)*(A2:A16=K2)*F2:F16)


В английской версии:

Code

=SUMPRODUCT((B2:B16=I2)*(D2:D16=J2)*(A2:A16=K2)*F2:F16)



КАК ЭТО РАБОТАЕТ:

Функция СУММПРОИЗВ формирует массивы из значений ИСТИНА и ЛОЖЬ, согласно выбранным критериям, в памяти Excel.



Если-бы вычисления производились в ячейках листа (для наглядности я всю работу формулы продемонстрирую так, как-будто вычисления происходят на листе, а не в памяти), то массивы выглядели бы так:



Очевидно что если например, D2=Карандаши, то значение будет равно ИСТИНА, а если D3=Папки, то ЛОЖЬ (так как критерием отбора товара в нашем примере является значение Карандаши).



Зная о том что значение ИСТИНА всегда равно 1, а ЛОЖЬ всегда равно 0 мы продолжаем работать с массивами как с числами 0 и 1.
Перемножив полученные значения массивов между собой последовательно, мы получим ОДИН массив из нолей и единиц. Там где выполнялись все три критерия отбора, (ИВАНОВ, КАРАНДАШИ, ЯНВАРЬ) т.е. все условия принимали значения ИСТИНА получаем 1 (1*1*1 = 1), если же хотя-бы одно условие не выполнялось - получим 0 (1*1*0 = 0 ; 1*0*1 = 0 ; 0*1*1 = 0 ).

Теперь осталось только умножить полученный массив на массив содержащий данные, которые нам необходимо в итоге просуммировать ( диапазон F2:F16) и собственно, просуммировать то что на 0 не умножилось.




Теперь сравните полученные при помощи формулы и при пошаговом вычислении на листе массивы (выделены красным).


 
Думаю всё понятно :)

МИНУСЫ: СУММПРОИЗВ - "тяжёлая" формула массива. При вычислениях на больших диапазонах данных заметно увеличивается время пересчёта.

ПРИМЕЧАНИЯ
: Количество обрабатываемых массивов ограничено 255.

ОБЛАСТЬ ПРИМЕНЕНИЯ: Любая версия Excel

Способ 3: Формула массива

Code

=СУММ(ЕСЛИ((B2:B16=I2)*(D2:D16=J2)*(A2:A16=K2);F2:F16))


В английской версии:

Code

=SUM(IF((B2:B16=I2)*(D2:D16=J2)*(A2:A16=K2),F2:F16))



КАК ЭТО РАБОТАЕТ:  Точно так же как и Способ №2. Есть только два отличия - данная формула вводится нажатием Ctrl+Shift+Enter, а не просто нажатием Enter и массив 0-й и 1-ц не умножается на диапазон суммирования, а отбирается с помощью функции ЕСЛИ.

МИНУСЫ: Формулы массива при вычислениях на больших диапазонах данных заметно увеличивают время пересчёта.

ПРИМЕЧАНИЯ
: Количество обрабатываемых массивов ограничено 255.
 
ОБЛАСТЬ ПРИМЕНЕНИЯ
: Любая версия Excel

Способ 4:

Code

=СУММЕСЛИМН(F2:F16;B2:B16;I2;D2:D16;J2;A2:A16;K2)


В английской версии:

Code

=SUMIFS(F2:F16,B2:B16,I2,D2:D16,J2,A2:A16,K2)



КАК ЭТО РАБОТАЕТ:
Функция СУММЕСЛИМН требует обязательно указать диапазон суммирования (в нашем случае F2:F16) и хотя бы одну пару Диапазон/Условие.
По сути эта функция "один в один" повторяет действие функции СУММПРОИЗВ в нашем примере, но не является формулой массива.



МИНУСЫ: нет.
 
ОБЛАСТЬ ПРИМЕНЕНИЯ
: Начиная с версии Excel 2007.

ПРИМЕЧАНИЯ: Количество пар диапазон/критерий ограничено 127