Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Gewichteten Mittelwert über mehrere Tabellenblätter

Forumthread: Gewichteten Mittelwert über mehrere Tabellenblätter

Gewichteten Mittelwert über mehrere Tabellenblätter
21.03.2025 10:31:18
A.T.
Hallo zusammen,
Ich habe jetzt viel online gesucht und ausprobiert, aber musste mich jetzt doch geschlagen geben. Deshalb hoffe ich das mir hier jemand helfen kann.

Ich habe mehrere Tabellen die in der unteren Zeile den gewichteten Mittelwert pro Spalte berechnen, dass funktioniert so halb wie ich es möchte. Ich fände es besser, wenn hier das Kriterium mit der Tabelle wo die dazugehörigen Gewichtungen drin stehen, verglichen wird, sodass man die Reihenfolge der Gewichtungen ändern kann und die Formel das automatisch umrechnet. Aber es funktioniert erstmal mit der selben Reihenfolge.

Jede dieser Tabellen ist auf einem eigenen Tabellenblatt. Und jetzt würde ich sehr gerne mit diesen Werten einen gewichteten Mittelwert berechnen und in der Tabelle_Auswertung ausgeben.
Den Mittelwert ohne Gewichtung habe ich hinbekommen in dem ich ein start und ein ende tabellenblatt erstellt habe und dazwischen die werte lese. Mein Problem ist das einbeziehen der Gewichtung. Dafür habe ich eine Tabelle erstellt, wo in einer Spalte der Tabellenblatt Name steht und in der anderen die dazugehörige Gewichtung. Und bei der Berechnung soll jetzt der Mittelwert aus allen Tabellenblättern die auch in der Tabelle stehen mit ihrer dazugehörigen Gewichtung berechnet werden. Bei meinen Versuchen habe ich oft #Wert! oder #Div/0! bekommen. Vermutlich, weil einige Ergebnisse in den Tabellen 0 sind, ich weiß aber nicht wie ich das am besten umgehe.

Jemand irgendwelche Vorschläge, wie ich am Ende auf das richtige Ergebnis komme? Geht das mit einer Formel oder wäre VBA hier besser?

Ich würde eine Beispieldatei noch hochladen, welches Dateiformat ist am besten bei mehreren Tabellenblättern?

Danke im Voraus
A.T.
Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
21.03.2025 10:35:56
MCO
Die Beispieldatei kannst du einfach im xlsx-format hochladen.
Mit Makros wird es dann ein xlsm werden.

Gruß, MCO
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
21.03.2025 14:43:44
Ulf
Hi,
deine Gewichtung ist nichts anderes als ein Proportionalitätsfaktor der Mittelwerte.
mW1*p1+mW2*p2+.../summe(p),
Nicht vorhandene Werte darfst du nicht einbeziehen, d.h. die Gewichtung erfolgt im Bsp für 2019 nur für 2Jahre.
Für 2019:
=('Blatt 1'!C12*Einstellungen!C20+'Blatt 2'!C12*Einstellungen!C21)/(SUMME(Einstellungen!C20:C21))

Für 2021:
=(Einstellungen!C20*'Blatt 1'!E12+Einstellungen!C21*'Blatt 2'!E12+Einstellungen!C22*'Blatt 3'!E12)/(SUMME(Einstellungen!C20:C22))

hth
Ulf
Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
25.03.2025 12:41:34
daniel
Hi
ganz ohne händischen Aufwand wird es nicht gehen.
die Gewichtung in die Blattübergreifende Auswertung direkt einzubringen wird nicht funktionieren, weil die Blattübergreifende Auswertung nur mit bestimmten Basisfunktionen funktioniert, aber keine komplexe Berechnung zulässt.
Diese müsstest du dann in jedem Blatt seperat durchführen.

ich würde hier so vorgehen
erweitere jedes Blatt mit den Daten um folgende Formeln in den Zeilen 13 und 14, womit du die Gewichtung berücksichtigst.
die Formel ist beispielhaft für die Spalte C, kann so aber in die weitern Spalten und in die weiteren Tabellenblätter kopiert werden:

1. in B13 ermittelst du mit dieser Formel den Blattnamen, den brauchst du um den Gewichtungsfaktor zu ermitteln:
=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;99)

2. in B14 ermittelst du den Gewichtungsfaktor:
=SVERWEIS(B13;Tabelle_Blätter_Gewichtung;2)

3. in C13 dann:
=C12*$B$14

4. in C14
=WENN(C13="0";0;$B$14)

5. die Formeln aus C13:C14 kopierst du nach rechts soweit wie benötigt

bearbeite so alle Tabellenblätter mit Daten

6. die Auswertung für den gewichteten Mittelwert erfolgt dann mit diesen Formeln
=Summe(Start:Ende!C13)/Summe(Start:Ende!C14)


Gruß Daniel






Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
25.03.2025 12:43:19
daniel
ups kleine Korrektur:

den SVerweis für den Faktor natürlich mit der Anweisung für unsortierte Listen:

B14:
=SVERWEIS(B13;Tabelle_Blätter_Gewichtung;2;Falsch)
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
25.03.2025 15:59:22
A.T.
Vielen Dank!
Ich habe bei 4. das "0" zu 0 geändert und jetzt funktioniert es und ich bekomme die erwarteten Ergebnisse raus. (:
Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
25.03.2025 11:46:09
A.T.
Danke für die Antwort,
dass wird wohl der Lösungsansatz, wenn ich nichts anderes finde.
Ich habe nur in meiner Datei ein paar mehr Tabellenblätter und das alles händisch zu machen, würde nicht nur sehr lange dauern, sondern ist nicht dynamisch genug, falls Werte nachgetragen werden und nicht mehr =0 sind.

VG
A.T.
Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
21.03.2025 13:56:12
Yal
Hallo Carolin,

Du kannst mit Power Query deine Tabellen zusammenbringen.

- gehe auf dem Blatt "Blatt 1"
- klick auf die Tabelle,
- Menü "Daten", "Aus Tabelle/Bereich"
- Du bist im Power Query Editor
- auf die rechte Seite ist die Liste der "angewendete Schritte", lösche darin den zweiten Schritt "geänderter Typ"
- es bleibt den Schritt "Quelle",
- direkt drüber in "Name" den Namen der Abfrage in "AlleTabellen" ändern

- links in der Liste der Abfragen, auf die Abfrage "AlleTabellen" rechtklicken und "Duplizieren" anklicken
- Name der neue Abfrage in "Kriterien" ändern
- in der Bearbeitungsleiste, ändere den Eintrag sodass
= Excel.CurrentWorkbook(){[Name="Tabelle_Kriterien_Gewichtung_1"]}[Content]
steht,
- Menü "Spalte hinzufügen", "benutzerdefinierte Spalte", Neuer Spaltename "Krit. Summe", Formel:
=List.Sum(Quelle[Gewichtung])
Achtung: case sensitiv
- Spaltename "Gewichtung" in "Krit. Gewichtung" ändern

- die Abfrage "AlleTabellen" nochmal duplizieren,
- die neue "BlätterGewichtung" benennen,
- Quelle:
= Excel.CurrentWorkbook(){[Name="Tabelle_Blätter_Gewichtung"]}[Content]
- Menü "Spalte hinzufügen", "benutzerdefinierte Spalte", Neuer Spaltename "Blätter Summe", Formel:
=List.Sum(Quelle[Gewichtung])
- Spaltename "Gewichtung" in "Blatt Gewichtung" ändern

zurück auf die Abfrage "AlleTabellen" (durch Klick drauf auf die Abfrageliste links)
- in der Bearbeitungsleiste, ändere den Eintrag sodass nur
= Excel.CurrentWorkbook()
übrig bleibt
- ändere den Namen der Spalte "Name" in "Blatt"
- wähle die Spalten "Blatt" und Filtere nach "Textfilter", "beginnt mit..." "Tabelle_Blatt_" (Achtung: case sensitiv)
- auf dem Überschrift von Spalte "Blatt" rechtsklicken und "Werte ersetzen", "Tabelle_" durch nichts ersetzen,
- nochmal "Wert ersetzen" und "_" durch nicht Leerzeichen ersetzen,
- in der Spalte "Content" auf dem Symbol mit dem Doppelpfeil klicken, alle Felder anhaken belassen, unter Präfix abwählen,
- Spalten "Kriterien" und "Quelle" markieren,
- Menü "Transformieren", "Spalten entpivotieren", "andere Spalten entpivotieren",
- in der Bearbeitungsleiste den "Attribut" in "Jahr" ändern,
So hätten wir jetzt alle Daten sauber auswertbar. Jetzt bauen wir die Gewichtung ein.

- wir sind weiterhin auf der Abfrage "AlleTabellen"
- Menü "Start", "Abfragen zusammenführen",
- mittig die Abfrage "BlätterGewichtung" einstellen, oben die Spalte "Quelle", unten die Spalte "Blätter" anklicken, Join-Art ist mit "Linker äusserer.." bereits richtig.
- auf dem Doppelpfeil in der neuen Spalte klicken, nur die Spalte "Blatt Gewichtung" und "Blätter Summe" anhaken lassen, Präfix raus,

- Menü "Start", "Abfragen zusammenführen",
- mittig die Abfrage "Kriterien" einstellen, in beiden die Spalte "Kriterien" anklicken, Join-Art ist mit "Linker äusserer.." bereits richtig.
- auf dem Doppelpfeil in der neuen Spalte klicken, nur die Spalte "Krit. Gewichtung" und "Krit. Summe" anhaken lassen, Präfix raus,

- Menü "Spalte hinzufügen", "benutzerdefinierte Spalte", Neuer Spaltename "Gewichtete Wert", Formel:
=[Wert]*[Blatt Gewichtung]/[Blätter Summe]*[Krit. Gewichtung]/[Krit. Summe]
- Spalten "Blatt Gewichtung", "Blätter Summe", "Krit. Gewichtung", "Krit. Summe" markieren und entfernen

- Menü "Datei", Schliessen & laden in...", "Nur Verbindung herstellen"
- Du bist wieder in Excel klassik,
- Auf das Blatt "Auswertung" gehen,
- rechts in der Liste der "Abfragen und Verbindungen" auf "AlleTabellen" rechtsklicken und "Laden in..." wählen,
- PivotTable-Bericht und eine frei Stelle auf das bestehende Blatt wählen
- PivotTable gestalten:
- Feld "Kriterien" vom Liste oben rechts ins Quadrant "Zeilen" unten verschieben
- Feld "Jahr" in Quadrant "Spalten" verschieben
- Feld "Gewichtete Wert" in Quadrant "Werte" verschieben
- auf dem Feld "Summe von Gewichtete Werte" klicken, "Wertfeldeinstellungen..." und "zusammenfassen nach" auf "Mittelwert" umschalten. Auf "Zahlenformat" anpassen.

Wir sehen dann Zahlen, die recht niedrig sind. Es liegt an der Berechnung
=[Wert]*[Blatt Gewichtung]/[Blätter Summe]*[Krit. Gewichtung]/[Krit. Summe]
die Division durch Summe ist zwar theoretisch richtig, aber nicht unbedingt in deinem Sinn.
Im Menü "Daten", "Abfragen und Verbindungen" klicken und auf die Abfrage "AlleTabellen" rechtsklicken und "Bearbeiten..." wählen. entsprechende Schritt aussuchen, auf dem Rädchen recht davon klicken und Formel anpassen (Alternativ direkt in der Bearbeitungsleiste)

Es hört sich nach viel, aber so viel ist es tatsächlich nicht. Es ist die stabilste Art&Weise, wie man mit Daten in Excel umgehen kann.

Weitere Tutorial unter: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert (leider nicht von mir)

VG
Yal


Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
25.03.2025 11:32:41
A.T.
Vielen lieben Dank!
Die Anleitung hat mir sehr weitergeholfen und war verständlich genug, dass selbst ich das hinbekommen habe.
Das Problem mit den sehr kleinen Werten sehe ich. Mit einer Skalierung habe ich die 0,0X werte in den Bereich bekommen wo sie Sinn machen.

Das einzige Problem was ich jetzt noch habe und was die Auswertung leider sehr ungenau macht, ist, dass beim Berechnen der Summe der Gewichtungen alle Gewichtungen zusammengefasst werden. Obwohl die 0-Werte bei der Bewertung nicht berücksichtigt werden, fließen ihre Gewichtungen dennoch in die Gesamtsumme ein. Dadurch wird der Nenner künstlich erhöht, was zu verfälschten Ergebnissen führt.
Gibt es eine Möglichkeit, bei der Berechnung der Summen, die Gewichtungen der 0 werte herauszufiltern?

VG
A.T.
Anzeige
AW: Gewichteten Mittelwert über mehrere Tabellenblätter
25.03.2025 17:02:41
Yal
Hallo Carolin,

in der Bearbeitung der Abfrage "AlleTabellen", nach den Schritten
- Spalten "Kriterien" und "Quelle" markieren,
- Menü "Transformieren", "Spalten entpivotieren", "andere Spalten entpivotieren",
- in der Bearbeitungsleiste den "Attribut" in "Jahr" ändern,

füge folgendes
- Spalte "Wert" markieren, filtere die Null-Wert raus


Die Gewichtung werden normiert in dem
=[Wert]*[Blatt Gewichtung]/[Blätter Summe]*[Krit. Gewichtung]/[Krit. Summe]
gerechnet wird.
Das ist eventuell nicht korrekt. Vielleicht bringt dir
=[Wert]*[Blatt Gewichtung]*[Krit. Gewichtung]
ein bessere Ergebnis.

VG
Yal
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige