2016-07-12 10 views
0

ich eine Tabelle mit verschiedenen Produkten, die Auflistung Einheiten und Einzelhandel wie das Beispiel verkaufte Wert unterMedian Verkaufspreis Excel Tabelle

Product Units Value 
A  10  100 
B  15  80 
C  30  560 

Ich mag den durchschnittlichen Verkaufspreis mit dem Median Verkaufspreis vergleichen, so Ich suche nach einer schnellen Formel, um den Median genau zu berechnen.

Die Median-Funktion erfordert die gesamte Serie, also würde ich für Produkt A 10 Instanzen von 10 etc. benötigen. Wie kann ich das Median schnell berechnen, wenn ich die verdichtete Form meiner Daten beziehe?

Antwort

0

Ohne eigene VBA-Funktion zu schreiben, gibt es ein paar Ansätze, die übernommen werden können.

Der erste erweitert die Daten aus seinem komprimierten Häufigkeitszählformat, um den vollständigen Satz von Beobachtungen zu generieren. Dies kann manuell oder formell erfolgen. Unter der Voraussetzung, dass letzteres erforderlich ist, kann dies mit ein paar Spalten erreicht werden.

Screenshot for first approach

Alle blauen Zellen sind Formeln.

Spalte E ist einfach die kumulierte Spalte B und F ist eine angepasste Version von diesem. Spalte H ist nur die Werte 1 bis 55, die Gesamtzahl der Beobachtungen von Zelle L2 gegeben. Die Spalte I verwendet das MATCH() mit dem letzten Argument als 1, um jede Beobachtung in H mit der angepassten kumulativen in F übereinzustimmen. Spalte J verwendet die INDEX() Funktion, um den Wert der Beobachtung zu generieren. (Die Beobachtungen 1-10 haben den Wert 100, 11-25 haben den Wert 80 und 26-55 haben in diesem Beispiel den Wert 560). Die MEDIAN()-Funktion wird in der Zelle M2 mit der Spalte J als Argument verwendet.

Dieser Ansatz kann aufgrund einer unterschiedlichen Anzahl von Produkten und Datenpunkte durch die Verwendung der OFFSET Funktion zu übernehmen verfeinert werden, um die Reichweite Argumente der MATCH(), Funktionen INDEX() und MEDIAN zu steuern. Und natürlich können benachbarte Zellen in den Spalten I und J mit einer einzigen Formel kombiniert werden - ich habe sie zur einfacheren Erklärung separat gezeigt. Der zweite Ansatz beinhaltet das Sortieren der Daten nach Wert (in diesem Fall würden die Datenzeilen Produkt B in Zeile 2, Produkt A in Zeile 3 und Produkt C unverändert in Zeile 4). Es ist dann ein Fall des Identifizierens der mittleren Beobachtungsnummer (wenn die Anzahl der Beobachtungen ungerade ist) oder des mittleren Paars von Beobachtungszahlen (wenn die Anzahl der Beobachtungen gerade ist) und dann Bestimmen des Werts/der Werte, die dieser Mitte entsprechen Beobachtung (en). Bei diesem Ansatz wird die angepasste kumulierte Spalte in Spalte F immer noch verwendet, aber anstatt die Werte in Spalte I und J explizit zu berechnen, kann sie jetzt für jede Beobachtung auf nur die mittlere (n) Beobachtung (en) beschränkt werden.

0

Ich denke, es gibt keinen Weg um Kompromisse. Verwenden Sie entweder große Mengen von Helferzellen oder lassen Sie die Tabelle nach den Werten sortieren.

  1. Helferzellen:

enter image description here

Formel F4:AS6:

=IF(COLUMN()<COLUMN($F$4)+$B4,$C4,"end") 

Formel D2:

=MEDIAN(F4:AS6) 
  1. Sortiert:

enter image description here

Formel in F4 nach unten:

=SUM($B$3:B3)+1 

Formel in D2:

=SUM(LOOKUP(INT(SUM(B4:B6)/2+{0.5,1}),F4:F6,C4:C6))/2