Excel-formel: Summa kolumner baserat på intilliggande kriterier

Innehållsförteckning

Generisk formel

=SUMPRODUCT(--(range1=criteria),range2)

Sammanfattning

För att summera eller delsumma kolumner baserat på kriterier i intilliggande kolumner kan du använda en formel baserad på SUMPRODUCT-funktionen. I exemplet som visas är formeln i J5:

=SUMPRODUCT(--($B5:$H5=J$4),$C5:$I5)

Förklaring

I grunden använder denna formel SUMPRODUCT för att multiplicera sedan summa produkter av två matriser: array1 och array2 . Den första matrisen, array1 är inställd på att fungera som ett "filter" för att endast tillåta värden som uppfyller kriterierna.

Array1 använder ett intervall som börjar i den första kolumnen som innehåller värden som måste uppfylla kriterier. Dessa "kriterievärden" sitter i en kolumn till vänster om och omedelbart intill "datavärdena".

Kriterierna tillämpas som ett enkelt test som skapar en matris med SANT och FALSKA värden:

--($B5:$H5=J$4)

Denna bit av formeln "testar" varje värde i den första matrisen med hjälp av de angivna kriterierna och använder sedan en dubbelnegativ (-) för att tvinga de resulterande Sanna och FALSKA värdena till 1 och 0. Resultatet ser ut så här:

(1,0,0,0,1,0,1)

Observera att 1s motsvarar kolumner 1,5 och 7, som uppfyller kriterierna för "A".

För array2 inuti SUMPRODUCT använder vi ett intervall som "flyttas" med en kolumn till höger. Detta intervall börjar med att den första kolumnen innehåller värden som ska summeras och slutar med den sista kolumnen som innehåller värden att summera.

Så i exempelformeln i J5, efter att matriserna har fyllts i, har vi:

=SUMPRODUCT((1,0,0,0,1,0,1),(1,"B",1,"A",1,"A",1))

Eftersom SUMPRODUCT är programmerat specifikt för att ignorera felen som uppstår genom att multiplicera textvärden ser den slutliga matrisen ut så här:

(1,0,0,0,1,0,1)

De enda värdena som "överlever" multiplikation är de som motsvarar 1s i array1 . Du kan tänka på logiken i array1 "filtrera" värdena i array2 .

Intressanta artiklar...