Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Median

Median
Stephan
Guten Morgen,
wenn ich den Median einer Datenreihe berechnen möchte, markiere ich einfach den entsprechenden Teil der Matrix (=MEDIAN(...)). Wenn ich nun aber zwei Spalten habe und in der ersten Spalte steht die Anzahl, wie oft der Wert in der zweiten Spalte vorkommt, wie gehe ich dann vor? Danke! Gruß, Stephan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Median
08.08.2011 14:46:56
Harald
Hallo Stephan,
mit Tabellenfunktionen fällt mir dazu nichts ein. Mit VBA schon:
Eine Funktion (der Einfachheit halber Expand() genannt) expandiert die Matrix aus Anzahl und Wert in eine lineare Liste (Datenfeld), in der jeder Wert so oft enthalten ist, wie die Anzahl in der entsprechenden Spalte angibt. Dise Liste steckst Du in die Meddain() Funktion und bekommst das Ergebnis.
So kann die Funktion aussehen:
Function Expand(source As Range) As Variant
Dim tmp() As Long 'auf passenden Datentyp ändern, z.B. double etc, wie benötigt.
' Wenn Speicher keine Rolle spielt, dann universell mit Variant
Dim AnzahlZeilen  As Long
Dim AnzahlFelder As Long
Dim zeile As Long
Dim i As Long
Dim k As Long
If source.Columns.Count  2 Then
Expand = "#falsche Spaltenzahl" 'sieht man nur, wenn Expand() direkt aufgerufen wird, sonst  _
"#WERT"
Exit Function
End If
AnzahlZeilen = source.Rows.Count
AnzahlFelder = 0
For i = source.Row To source.Row + AnzahlZeilen - 1
AnzahlFelder = AnzahlFelder + Cells(i, source.Column).Value
Next
ReDim tmp(1 To AnzahlFelder)
k = 1
For zeile = source.Row To source.Row + AnzahlZeilen - 1
For i = 1 To Cells(zeile, source.Column).Value
tmp(k) = Cells(zeile, source.Column + 1).Value
k = k + 1
Next
Next
Expand = Array(tmp())
End Function
Aufruf im Tabellenblatt: =Median(Expand(Bereich))
Bereich z.B. F3:G7
Mit dieser Matrix
Anzahl Wert
1 1
2 2
2 3
4 4
1 5
Ist der Median 3,5, genau wie beim direkten Aufruf =Median (1,2,2,3,3,4,4,4,4,5)
Gruß
Harald
Anzeige
AW: Median
08.08.2011 15:08:59
Stephan
Super -vielen Dank. Leider sind meine VBA-Kenntnisse absolut gering.
Ich habe deinen Text genommen und ihn über "Code anzeigen" in das Tabellenblatt kopiert. Makros habe ich aktiviert. Nun habe ich im Tabellenblatt eingegeben =MEDIAN(Expand(F3:G7) (bzw. den für mich relevanten Datenbereich). Als Antwort gibt mir Excel #Name?
Was mache ich falsch. Sorry, für mich ist das komplett neu. Vielen Dank!
Stephan
AW: Median
08.08.2011 15:20:54
Harald
Hallo Stephan,
Du hast den falschen Ablageort für den Code gewählt. Am einfachsten ist:
Bei geöffneter Arbeitsmappe Menü Extras - Makro - Makros
Gib in der Dialogbox irgendeinen Namen ein (ist beliebig, wird wieder gelöscht)
Klicke auf "Erstellen" (oder drücke einfach return)
Es öffnet sich der VBA-Editor mit einem Codemodul, da steht ein leerer Rumpf einer Subroutine drin, etwa so:
Sub xxx()
End Sub
Diesen leeren Code kannst Du löschen (oder drin lassen, stört nicht). Statt dessen kopierst Du meinen Code dahin.
Dann kannst Du die Funktion im Tabellenblatt mit z.B "=Expand(F3:G7)" (ohne Gänsefüßchen) aufrufen.
Gruß
Harald
Anzeige
AW: Median
08.08.2011 15:50:11
Stephan
Vielen Dank. Hat alles geklappt! Gruß, Stephan
AW: Median
08.08.2011 15:56:36
Stephan
Auf meinem privaten Rechner klappt diese Lösung. Leider sind Makros auf dem Firmenrechner nicht erlaubt. *nerv* Gibt es vielleicht doch noch eine Alternative? Vielen Dank!
AW: Median
08.08.2011 19:37:11
BoskoBiati
Hallo,
hier eine Formelvariante mit einer Hilfsspalte, allerdings nur wenig getestet:
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABC
1111
2223
3235
4449
51510
6  3,5

ZelleFormel
C5=SUMME($A$1:A5)
C6=(INDEX(B1:B5;VERGLEICH(SUMME(A1:A5)/2;C1:C5;1)+(ZÄHLENWENN(C1:C5;SUMME(A1:A5)/2)=0))+(REST(SUMME(A1:A5);2)=0)*INDEX(B1:B5;VERGLEICH(SUMME(A1:A5)/2;C1:C5;1)+(ZÄHLENWENN(C1:C5;SUMME(A1:A5)/2)=0)+1))/(2-REST(SUMME(A1:A5);2))
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Gruß
Bosko
Anzeige
AW: Median
09.08.2011 09:55:58
Stephan
Vielen Dank. Klappt sehr gut. Gruß für einen schönen Tag, Stephan
AW: Median
08.08.2011 15:57:41
Stephan
Auf meinem privaten Rechner klappt diese Lösung. Leider sind Makros auf dem Firmenrechner nicht erlaubt. *nerv* Gibt es vielleicht doch noch eine Alternative? Vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige