Excel-formel: Summa n-värden -

Innehållsförteckning

Generisk formel

=SUMPRODUCT(SMALL(rng,(1,2,n)))

Sammanfattning

För att summera de lägsta n-värdena i ett intervall kan du använda en formel baserad på SMALL-funktionen och SUMPRODUCT-funktionen. I den generiska formen av formeln (ovan) representerar rng ett cellområde som innehåller numeriska värden och n representerar antalet lägsta värden som ska summeras. I exemplet som visas innehåller E5 denna formel:

=SUMPRODUCT(SMALL(B4:B14,(1,2,3)))

som returnerar summan av de tre minsta värdena i B5: B14, 60

Förklaring

I sin enklaste form kommer SMALL att returnera det "nth minsta" värdet i ett intervall. Till exempel:

=SMALL(range,1) // smallest =SMALL(range,2) // 2nd smallest =SMALL(range,3) // 3rd smallest

Men om du anger en arraykonstant (t.ex. en konstant i formen (1,2,3)) till SMALL som det andra argumentet, kommer SMALL att returnera en array med resultat istället för ett enda resultat. Till exempel:

=SMALL(A1:A10,(1,2,3))

returnerar de 1: a, 2: a och 3: e minsta värdena i intervallet A1: A10.

Arbetar inifrån och ut i exemplet som visas, returnerar SMALL de 3 minsta värdena i intervallet B5: B14:

=SMALL(B4:B14,(1,2,3))

Resultatet är en array som denna:

(10,20,30)

Denna matris returneras direkt till SUMPRODUCT-funktionen, som summerar siffrorna och returnerar summan:

SUMPRODUCT((10,20,30)) // returns 60

Arrayformel med SUM

Det är vanligt att använda SUMPRODUCT som ovan eftersom det kan hantera arrays naturligt utan att ange som en matrisformel. Du kan dock också skriva en matrisformel med SUM-funktionen så här:

(=SUM(SMALL(B4:B13,(1,2,3))))

Detta är en matrisformel och måste anges med kontroll + shift + enter, utom i Excel 365.

När n blir stor

När n blir stor blir det tråkigt att skapa arraykonstanten för hand - att skriva ut en arraykonstant med 20 eller 30 objekt tar lång tid. I det här fallet kan du använda en genväg för att bygga arraykonstanten som använder ROW- och INDIRECT-funktionerna. Till exempel, för att SUMMA de 20 nedre värdena i ett intervall som heter "rng" kan du skriva en formel så här:

=SUMPRODUCT(SMALL(rng,ROW(INDIRECT("1:20"))))

Här konverterar INDIRECT strängen "1:20" till intervallet 1:20, som returneras direkt till SMALL.

Variabel n

För att ställa in en formel där n är en variabel i en annan cell kan du sammanfoga inuti INDIRECT. Om A1 till exempel innehåller N kan du använda:

=SUMPRODUCT(SMALL(rng,ROW(INDIRECT("1:"&A1))))

Detta gör att en användare kan ändra värdet på n direkt i kalkylbladet.

Intressanta artiklar...