Jag vill helt enkelt summera kolumn B om värdet för motsvarande cell i kolumna A är inom intervallet =>0 och <= 0,5. vidare vill jag summera kolumn B om värdet för motsvarande cell i kolumn A är inom intervallet >0,5 <=1 osv.... Några förslag?
Tomas
6 svar · 803 visningar · startad av samot79
Jag vill helt enkelt summera kolumn B om värdet för motsvarande cell i kolumna A är inom intervallet =>0 och <= 0,5. vidare vill jag summera kolumn B om värdet för motsvarande cell i kolumn A är inom intervallet >0,5 <=1 osv.... Några förslag?
Tomas
Du ska alltså summera talen som står i kolumn B. Vad menar du då med "motsvarande cell i kolumn A"
om det t ex ser ut så här
A B
0,02 1
0,45 1
1,3 1
8 1
0,3 1
Och jag vill summera kolumn B om värdet för A är inom =>0 och <=0,5, i detta fall skulle summan bli 3
såg nu att det inte såg så snyggt men värden i kolumn A är alltså 0,02 0,45 1,3 8 och 0,3 värden i B är 1 1 1 1 1
Finns en del olika varianter.
SUMMA.OM() fungerar tyvärr bara med 1 vilkor i taget. Naturligtvis kan du ställa upp flera formler efter varandra och försöka hitta "union". Men det blir ganska knöligt. Exempel
=SUMMA(B2:B6)-SUMMA.OM(A2:A6;"<0";B2:B6)-SUMMA.OM(A2:A6;">0,5";B2:B6)
(summa B) - (alla b celler där A<0)-(alla b celler där A>0,5)
Ja, kräver lite bakvänt tänk, men du förstår säkert.
Exempel 2 använder databasfunktionen DSUMMA()
Antar att
1. A respektive B står som rubriker till varje kolumn (första raden)
2. i Cell E1 till F2 står följande villkorsområde:
A A
>=0 <=0,5
(när man skriver rubriken A två gånger bredvid varandra så tolkas det som Vilkor1 OCH Vilkor2)
Då kan du använda följande formel
=DSUMMA(A:B;"B";E1:F2)
Det är väldigt smidigt och flexibelt, men det stjäl 4 celler
Alternativ 3a)
Om man skriver ett villkor innom parantes så kommer Excel att utvärdera det och returnera Sant/falskt. Villket egentligen är 0/1. Om vi som exempel tittar på en rad så kan du ställa upp ett vilkor i stil med
=(A2>=0)*(A2<=0,5)*(B2)
Då kommer formeln att returnera värdet i B2, men bara när de båda "a-villkoren" är sanna (=1). Om ett av vilkoren blir falskt så kommer värdet i B2 att multipliceras med 0 och det blir ju 0.
(Visst är jag pedagogisk, not :stud)
Hursomhellst. För att summera hela området (matrisen) så måste vi få excel att titta på varje rad. Dvs, vi behöver en Matrisformel. Ett enkelt sätt att göra det är att använda Produktsumma som alltid beter sig som en matrisformel:
=PRODUKTSUMMA((A2:A6>=0)*(A2:A6<=0,5)*(B2:B6))
Alternativ 3b)
Du kan även använda en "riktig" Matrisformel.
Skriv in en formel i stil med:
=SUMMA(OM((A2:A6>=0)*(A2:A6<=0,5)=1;B2:B6))
Ställ dig i cellen och tryck CTRL+shift+enter. Då kommer det "måsvingar" runt formeln och den behandlas som en matrisformel
{=SUMMA(OM((A2:A6>=0)*(A2:A6<=0,5)=1;B2:B6))}
tackar så mycket för ditt utförliga svar!, ska testa något av dessa alternativ.
Insåg just att jag missade delar av din fråga (...OSV...)
Det smidigaste sättet att fortsätta din serie är att skriva in någonting i den här stilen, egempelvis i kolumn E och F:
Från Till
0 0,5
0,5 1
1 1,5
1,5 2
2 2,5
2,5 3
3 3,5
3,5 4
OSV...
Då kan du skriva in den här formeln i t.ex G2 och kopiera ner den
=PRODUKTSUMMA(($A$2:$A$100>E2)*($A$2:$A$100<=F2)*($B$2:$B$100))
Alternativt struntar du i kolumn F och skriver bara värden i kolumn E. Då kan du titta i nästa rad för att få den övre gränsen:
=PRODUKTSUMMA(($A$2:$A$100>E2)*($A$2:$A$100<=E3)*($B$2:$B$100))