3.6k Aufrufe
Gefragt in Datenbanken von morpheus__85 Einsteiger_in (71 Punkte)
Hallo zusammen,

habe hier ein kleines Problem.
Ich habe einen Accessbericht mit Prozentwerten.
Im Kopfbereich möchte ich gerne über jede Spalte den "Median" berechnen.
Diese Funktion gibt es ja ansich nur in Excel.
Allerdings habe ich etwas gefunden.
Habe in meiner Accessdatenbank die Excel Object Libary eingebunden und möchte nun auf die Excelformel zugreifen.

Hab das folgendesmaßen Probiert:

dim i

'i = Excel.WorksheetFunction.Median([Zahl])

MsgBox i

Der Bericht ist ein Endlosbericht. Der Median soll über alle Werte berechnet werden. Allerdings wirft die die MsgBox immer nur den Ersten Wert aus und berechnet nichts.

Kann mir hier jemand helfen, bzw weis jemand ne andere Lösung?

Vielen Dank !
morpheus

6 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo morpheus,

Lege in der Entwurfsansicht des Berichtes im Kopfbereich über jede Spalte in Textfeld

>Steuerelementinhalt
>Formel einfügen:

=Mittelwert([DeinFeld])

Dann sollte es funktionieren.


Gruß

Paul1
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo zusammen,

der Median ist kein Mittelwert! Schaut mal unter de.wikipedia.org/wiki/Median, oder unter "Quantile" nach. Auch einen Median von EINER Zahl zu erstellen macht überhaut keinen Sinn!
@morpheus: Beschreib mal genau, was du anstellen willst, so gibt das nix. Von einer Verknüpfung mit Excel rate ich dir aus Performancegründen ab.

Gruß
Ralf
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Ralf,

stimmt Median hat mit Mittelwert nichts zu tun, da war ich zu oberflächlich.

Das muß ich mir erst anschauen, zur Zeit kann ich darüber keinen Tipp abgeben.

Gruß

Paul1
0 Punkte
Beantwortet von morpheus__85 Einsteiger_in (71 Punkte)
Hallo ihr beiden,

schon mal vielen Dank für eure Hilfe:
Ich habe einen Bericht.

Im Detailbereich habe ich ganz normal meine Spalten.
Für jedes Datum einen Wert z.B.

Datum | Zahl
01.01 | 1
02.01 | 5
03.01 | 10

Nun möchte ich im Kopfbereich den Median über die "Zahl" bilden. Natürlich nicht über eine sondern über ALLE, die in dem Bericht in dieser Spalte stehen.
Bei Mittelwert würde ich wie von Paul1 beschrieben =MITTELWERT([Zahl]) machen. Aber ich brauche leider den Median - den hab ich bislang nicht gefunden.

Gruß
morpheus
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo morpheus,

von Script habe ich keine Ahnung, aber damit sollte es eigentlich machbar sein.

Die Datensätze müssen nach den Werten in 'Zahl' aufsteigend sortiert sein und es ist die Anzahl der Datensätze zu bestimmen.

Bei ungerader Anzahl ist die 'Zahl' des genau in der Mitte befindlichen Datensatzes (Anzahl der Datensätze/2+1) der Median. Es darf dabei nur mit ganzen Zahlen gerechnet werden.
Beispiel: 15 Datensätze -> 15/2=7 +1=8, 'Zahl' von Datensatz 8 ist der Median

Bei einer geraden Anzahl sind die Werte von 'Zahl' der beiden in der Mitte befindlichen Datensätze (Anzahl der Datensätze/2 UND Anzahl der Datensätze/2+1) zu addieren und durch 2 zu teilen.
Beispiel: 16 Datensätze -> 16/2=8 UND 16/2+1=9, 'Zahl' von Datensatz 8 und 9 sind zu addieren und durch 2 zu teilen um den Median zu erhalten.

Jetzt muss dir nur noch jemand den Code dafür schreiben. ;0)

Gruß
Kalle
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo morpheus,

Mangels besseren Wissens und wenn ich selbst das Problem hätte, würde ich versuchen über „Analysieren mit Excel“ oder überhaupt eine Tabelle in Excel anlegen, die dann nach Access importieren und den erforderlich Bericht erstellen.
Eine Zeile für die Berechnung des Median (z.B. =MEDIAN(B4:B20) sollte oben in der Exceltabelle reserviert werden (Überschriften nicht vergessen!)

Eine Lösung direkt in Access mit einer Standardfunktion konnte ich auch nach Recherchen im Web nicht finden.

Die von Dir angedachte Lösung mit „Excel Object Libary“ ist mir zu hoch.

Wie gesagt, es sollte nur eine Info sein, wie ich es versuchen würde.

Mehr kann ich leider dazu nicht beitragen.

Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3
ECDL-Syllabus Version 4.0[/sub]
...