Mittwoch, 2. März 2011

Sortierte und gekürzte Listen mit Excel

Hat man eine unsortierte Liste von Daten mit Mehrfacheinträgen, so kann man diese mit geschickten Excel-Formeln in eine kurze Liste ohne doppelte Werte überführen.
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