
Generisk formel
=SUMPRODUCT(--(logical_expression))
Sammendrag
For å telle rader i en tabell som oppfyller interne, beregnede kriterier, uten å bruke en hjelpekolonne, kan du bruke SUMPRODUCT-funksjonen.
Kontekst
Tenk deg at du har en oversikt over salgstall for flere produkter. Du har en kolonne for salg i forrige måned og en kolonne for salg i inneværende måned. Du vil telle produkter (rader) der det nåværende salget er mindre enn salget forrige måned. Du kan ikke bruke COUNTIF-er for dette, fordi COUNTIF-er er en rekkebasert funksjon. Et alternativ er å legge til en hjelpekolonne som trekker fra forrige måneds salg fra månedens salg, og deretter bruke COUNTIF til å telle resultater mindre enn null. Men hva om du ikke vil (eller ikke kan) legge til en hjelpekolonne? I så fall kan du bruke SUMPRODUCT.
I eksemplet vist er formelen i celle G6:
=SUMPRODUCT(--(C5:C10>D5:D10))
Forklaring
SUMPRODUCT er designet for å fungere med matriser. Den multipliserer tilsvarende elementer i to eller flere matriser og summerer de resulterende produktene. Som et resultat kan du bruke SUMPRODUCT til å behandle matriser som skyldes kriterier som blir brukt på en rekke celler. Resultatet av slike operasjoner vil være matriser, som SUMPRODUCT kan håndtere naturlig, uten at Control Shift Enter-syntaksen kreves.
I dette tilfellet sammenligner vi bare verdiene i kolonne C med verdiene i kolonne D ved hjelp av et logisk uttrykk:
C5:C10>D5:D10
Siden vi har å gjøre med områder (arrays), er resultatet en rekke SANTE FALSE verdier som dette:
(FALSK; SANT; FALSK; SANT; FALSK; FALSK)
For å tvinge disse til ener og nuller bruker vi en dobbel negativ operator (også kalt en dobbel unary):
--(C5:C10>D5:D10)
Som produserer og arrangerer slik:
(0; 1; 0; 1; 0; 0)
som deretter behandles av SUMPRODUCT. Siden det bare er en matrise, legger SUMPRODUCT ganske enkelt sammen elementene i matrisen og returnerer en total.