Предизвикателство на формула - множество ИЛИ критерии - Пъзел

Съдържание

Един проблем, който се появява много в Excel, е броенето или сумирането въз основа на множество условия ИЛИ. Например, може би трябва да анализирате данни и да преброите поръчки в Сиатъл или Денвър за елементи, които са червени, сини или зелени? Това може да бъде изненадващо сложно, така че естествено прави добро предизвикателство!

Предизвикателството

Данните по-долу представляват поръчки, по една поръчка на ред. Има три отделни предизвикателства.

Какви формули във F9, G9 и H9 ще отчитат правилно поръчките при следните условия:

  1. F9 - Тениска или качулка
  2. G9 - (тениска или качулка) и (червено, синьо или зелено)
  3. H9 - (тениска или качулка) и (червено, синьо или зелено) и (Денвър или Сиатъл)

Зеленото засенчване се прилага с условно форматиране и показва съответстващи стойности за всеки набор от критерии ИЛИ във всяка колона.

За ваше улеснение са налични следните именувани диапазони:

артикул = B3: B16
цвят = C3: C16
град = D3: D16

Работният лист е приложен. Оставете отговорите си по-долу като коментари!

Отговор (щракнете за разгъване)

Моето решение използва SUMPRODUCT с ISNUMBER и MATCH по следния начин:

=SUMPRODUCT( ISNUMBER(MATCH(item,("Tshirt","Hoodie"),0))* ISNUMBER(MATCH(color,("Red","Blue","Green"),0))* ISNUMBER(MATCH(city,("Denver","Seattle"),0)) )

Което ще брои поръчки, където …

  • Артикулът е (тениска или качулка) и
  • Цветът е (червен, син или зелен) и
  • Градът е (Денвър или Сиатъл)

Няколко души също предложиха същия подход. Харесва ми тази структура, защото тя се мащабира лесно, за да се справя с повече критерии, а също така работи и с препратки към клетки (вместо твърдо кодирани стойности). С препратки към клетки формулата в H9 е:

=SUMPRODUCT( ISNUMBER(MATCH(item,F3:F4,0))* ISNUMBER(MATCH(color,G3:G5,0))* ISNUMBER(MATCH(city,H3:H4,0)) )

Ключът към тази формула е конструкцията ISNUMBER + MATCH. MATCH се настройва „назад“ - справочните стойности идват от данните и за масива се използват критерии. Резултатът е масив от една колона всеки път, когато се използва MATCH. Този масив съдържа или # N / A грешки (без съвпадение), или числа (съвпадение), така че ISNUMBER се използва за преобразуване в булевите стойности TRUE и FALSE. Операцията за умножаване на масивите заедно принуждава стойностите TRUE FALSE до 1s и 0s, а крайният масив в SUMPRODUCT съдържа 1s, където редовете отговарят на критериите. След това SUMPRODUCT сумира масива и връща резултата.

Интересни статии...