Zum Beispiel soll aus den Spalten A und B mit den unsortierten Werten 1-9 und den doppelten Werten 1, 2 und 3 die Liste in Spalte C und D werden, Wobei D den Mittelwert aller Werte mit gleichem A hat.
In jeder Zelle der Spalte C steht folgende Array-Formel (Eingabe mit Shift+Ctrl+Enter!):
=IF(SUMPRODUCT(1/COUNTIF($A$2:$A$13,$A$2:$A$13))>=ROWS($1:1),SMALL(IF(FREQUENCY($A$2:$A$13,$A$2:$A$13)>0,$A$2:$A$13),ROWS($1:1)),"")
und in jeder Zelle der Spalte D steht die Formel:
=IF(ISNUMBER(C2),SUMIF($A$2:$A$41,C2,$B$2:$B$41)/COUNTIF($A$2:$A$41,C2),"")
Die Berechnung ist nicht sehr schnell, daher sollte man bei vielen Werten lieber auf ein VBA-Script zurückgreifen (siehe Eggheadcafe).
(Quelle: chandoo.org und www.eggheadcafe.com)
Edit: Viel schneller ist diese Array-Formel:
=IF(OR(C$1:C1=MAX(A$1:A$13)),"",SMALL(A$1:A$13,SUM(COUNTIF(A$1:A$13,C$1:C1))+1))
Keine Kommentare:
Kommentar veröffentlichen