
Генеричка формула
=SUMPRODUCT(costs,--(range="x"))
Резиме
Да бисте израчунали цене пакета производа помоћу једноставног „к“ да бисте укључили или изузели производ, можете да користите формулу засновану на функцији СУМПРОДУЦТ. У приказаном примеру, формула у Д11 је:
=SUMPRODUCT($C$5:$C$9,--(D5:D9="x"))
Објашњење
Функција СУМПРОДУЦТ множи опсеге или низове и враћа збир производа. Ово звучи досадно, али СУМПРОДУЦТ је елегантна и свестрана функција, што овај пример лепо илуструје.
У овом примеру, СУМПРОДУЦТ је конфигурисан са два низа. Први низ је опсег који држи цене производа:
$C$5:$C$9
Имајте на уму да је референца апсолутна да би се спречиле промене јер се формула копира удесно. Овај опсег процењује се на следећи низ:
(99;69;129;119;49)
Други низ се генерише са овим изразом:
--(D5:D9="x")
Резултат Д5: Д9 = "к" је низ ТРУЕ ФАЛСЕ вредности попут ове:
(TRUE;TRUE;FALSE;FALSE;FALSE)
Двоструки негатив (-) претвара ове ТРУЕ ФАЛСЕ вредности у 1с и 0с:
(1;1;0;0;0)
Дакле, унутар СУМПРОДУЦТ-а имамо:
=SUMPRODUCT((99;69;129;119;49),(1;1;0;0;0))
Функција СУМПРОДУЦТ затим множи одговарајуће ставке у сваком низу заједно:
=SUMPRODUCT((99;69;0;0;0))
и враћа збир производа, 168 у овом случају.
У ствари, други низ делује као филтер за вредности у првом низу. Нуле у низу2 поништавају ставке у низу1, а 1с у низу2 омогућавају пролазак вредности из низа1 у коначни резултат.
Са једним низом
СУМПРОДУЦТ је подешен за прихватање више низова, али ову формулу можете мало поједноставити пружањем једног низа на почетку:
=SUMPRODUCT($C$5:$C$9*(D5:D9="x"))
Математичка операција (множење) аутоматски присиљава ТРУЕ ФАЛСЕ вредности у другом изразу на јединице и нуле, без потребе за двоструким негативом.