
Generisk formel
=SUMPRODUCT((logical1)*(logical2))
Sammendrag
For å telle rader i en tabell som oppfyller flere kriterier, hvorav noen avhenger av logiske tester som fungerer på radnivå, kan du bruke SUMPRODUCT-funksjonen.
Kontekst
Du har en tabell som inneholder resultatene av sportskamper. Du har fire kolonner: hjemmelag, gjestelag, hjemmelagsscore, gjestelagsscore. For et gitt lag vil du bare telle kamper (rader) der laget vant hjemme. Det er lett å telle kamper (rekker) der et lag var hjemmelaget, men hvordan teller du bare vinner?
Dette er en god bruk av SUMPRODUCT-funksjonen, som kan håndtere matrixoperasjoner (tenk operasjoner som håndterer områder) naturlig.
I eksemplet vist er formelen i celle H5:
=SUMPRODUCT((B5:B10=G5)*(D5:D10>E5:E10))
Forklaring
SUMPRODUCT-funksjonen er programmert til å håndtere matriser naturlig, uten at Control Shift Enter kreves. Standard oppførsel er å multiplisere tilsvarende elementer i en eller flere matriser sammen, og deretter summere produktene. Når det gis en enkelt matrise, returnerer den summen av elementene i matrisen.
I dette eksemplet bruker vi to logiske uttrykk i et enkelt array-argument. Vi kan plassere hvert uttrykk i et eget argument, men da trenger vi å tvinge logiske SANNE FALSE verdier til ener og nuller med en annen operator.
Ved å bruke multiplikasjonsoperatøren til å multiplisere de to matriser sammen, vil Excel automatisk tvinge logiske verdier til en og null.
Etter at de to logiske uttrykkene er evaluert, ser formelen slik ut:
=SUMPRODUCT(((FALSE;TRUE;FALSE;TRUE;FALSE;TRUE))*((TRUE;TRUE;TRUE;FALSE;TRUE;TRUE)))
Etter at de to gruppene er multiplisert, ser formelen slik ut:
=SUMPRODUCT((0;1;0;0;0;1))
Med bare en matrise igjen, legger SUMPRODUCT bare sammen elementene i matrisen og returnerer summen.