Excel / Libre Office Calc: Ermittelt den Durchschnitt einer Multiplikation

0

Ich habe drei Zeilen in Libre Office

Weight:       0,2  0,2  0,3  0,3
Max. Points:  2    3     4   5
Points:       2    ---   4   4      0,74

Für jede Spalte, Pointsdie durch dividiert Max. Pointsund dann mit multipliziert wird Weight, die selbst durch die Summe aller Weights dividiert wird . Handelt es sich bei einer Zelle in PointsText (nicht um eine Zahl), sollte sie in der Berechnung verworfen und nicht auf 0 gesetzt werden. Hier sollte es so sein, als ob es keine zweite Spalte gäbe. Schließlich möchte ich den Durchschnitt nehmen.

Ich bin so weit gekommen:

SUMPRODUCT(K23:N23;POWER(K22:N22;-1);K21:N21/SUM(K21:N21))

Dies berechnet aber nicht den Durchschnitt, sondern einen Prozentsatz. Auch konnte ich die Tatsache, dass es Text ignoriert, nicht integrieren Points. Ein Weg, dies zu erreichen, wäre, Weightden Wert für den Text Pointsauf 0 zu setzen. Ich könnte IFund verwenden ISNUMBER, aber das letztere schließt keine Zeilen aus, sondern nur Zellen. Ich bin mir nicht sicher, wie das aussehen soll.

Zum Beispiel (diesmal mit US-Dezimalschreibweise)

Weight:       0.1  0.2  0.3  0.4
Max. Points:  2    3     4   5
Points:       1   ---    3   4      0.74375

hier ist was ich will:

0.74375 = 1/2*(0.1/(0.1+0.3+0.4)) + 3/4*(0.3/(0.1+0.3+0.4)) + 4/5*(0.4/(0.1+0.3+0.4))
Make42
quelle
Sollte 0,2 stattdessen 0,2 sein? Auch was ist gemeint mit "was selbst ist geteilt durch die Summe aller Gewichte" - was ist "selbst"?
Jim K
@JimK: 1) Kommt auf das Land an ;-). 2) selbst ist Weights. Bitte vergleiche meinen Satz mit der Formel, die ich unten aufbaue. So weit bin ich gekommen. Der nächste Satz ("Howeve, wenn eine Zelle ...") ist das, was ich nicht aufnehmen konnte.
Make42
Es sieht so aus, als ob Ihr neues Beispiel einen Fehler enthält. Das Gewicht für Spalte E ist 0.4nicht 0.3. Nach der Korrektur sollte das Ergebnis sein 0.74375.
Jim K
Ihre Beispielberechnung ist falsch, bitte überprüfen Sie es (letzter Teil 4/5*(??0.3??/(0.1+0.3+??0.4??)))
Máté Juhász
@ JimK: Sie hatten recht. Ich habe es korrigiert.
Make42

Antworten:

1

Ihre Formel lautet derzeit:

Sum(points / maxPoints * weights / sum(weights))

Sie können es jedoch in dieses Formular umwandeln, ohne die Ausgabe zu ändern:

Sum(points / maxPoints * weights) / sum(weights)

Damit können Sie leicht berechnen:

SUMPRODUCT(K23:N23;POWER(K22:N22;-1);K21:N21)/SUMIF(K23:N23;">=0";K21:N21)

Aktualisieren:

Wenn Sie viele Zeilen mit "point" haben, müssen Sie absolute und relative Referenzen kombinieren, um Folgendes zu berechnen:

SUMPRODUCT(K23:N23;POWER(K$22:N$22;-1);K$21:N$21)/SUMIF(K23:N23;">=0";K$21:N$21)

Máté Juhász
quelle
Dies scheint zu funktionieren, aber ich bin nicht sicher, wie: Was passiert mit der zweiten Spalte in meinem Beispiel? Wird der Text als gleich 0 betrachtet und damit die zweite Spalte von entfernt SUMPRODUCT(K23:N23;POWER(K22:N22;-1);K21:N21)?
Make42
Ich bin nicht sicher, wie libreoffice das schafft. Ich denke, die Multiplikation mit einem Text würde einen Fehler zurückgeben, und SUMPRODUCT ignoriert ihn einfach.
Máté Juhász
Mit "ignoriert es einfach" meinen Sie, dass die gesamte Spalte ignoriert wird, oder? Aus diesen logischen Gründen hat @JimK ISNUMBER hinzugefügt ...?
Make42
"ignoriert es" bedeutet, dass das gesamte Ergebnis der Multiplikation (0,2 * 3 * "-") ignoriert wird, nicht nur der Text.
Máté Juhász
Ja, ich denke, das meinen wir beide: Es ist, als ob die Kolumne nicht da wäre. Wie kann ich die Formel auf viele Zellen übertragen? Die ersten beiden Reihen bleiben so, wie sie sind, aber da ich viele Schüler habe, habe ich viele PointsReihen. So K23:N23muss sich ändern K24:N24usw. in der Formel, aber K21:N21und K22:N22muss nur bleiben , wie es ist.
Make42
1

Ok, hier ist was ich mir ausgedacht habe:

=SUMPRODUCT(K23:N23,POWER(K22:N22,-1),K21:N21/SUM(K21:N21),ISNUMBER(K23:N23)) / SUMPRODUCT(ISNUMBER(K23:N23))

Ich habe den ISNUMBERScheck wie gewünscht hinzugefügt . Es schien jedoch keinen Unterschied zu machen - SUMPRODUCTdie Spalte L wurde bereits ignoriert, da sie einen Fehler verursachte.

Um den Durchschnitt zu ermitteln, habe ich durch geteilt SUMPRODUCT(ISNUMBER(K23:N23). Dies zählt einfach die numerischen Werte, von denen es in diesem Beispiel 3 gibt.

Das Endergebnis dieser Formel 0,247ist einfach 0,74/ 3.

EDIT :

Hier ist eine Formel, die 0.74375wie erwartet für das zweite Beispiel erstellt wird:

=SUMPRODUCT(B3:E3,POWER(B2:E2,-1),B1:E1/SUMPRODUCT(B1:E1,ISNUMBER(B3:E3)),ISNUMBER(B3:E3))
Jim K
quelle
Ich bin mir nicht sicher, ob ich das will. Ich hatte die Idee, das zweite Beispiel oben zu machen, um zu erklären, was ich meine.
Make42
Ja, das zweite Beispiel macht es klarer, weil es das gewünschte Ergebnis zeigt. Es hat mir geholfen zu sehen, was bei meinem ersten Versuch schief gelaufen ist. Es enthielt das Gewicht aus der zweiten Spalte.
Jim K
Danke für deine Antwort. Es funktioniert und ich würde es auch gerne ausnehmen. Die Antworten von Mate sind kürzer, deshalb habe ich sie fürs Erste gewählt (es sei denn, Sie können überzeugend argumentieren, warum Ihre Antworten funktionell besser sind).
Make42
Kein Problem. Dafür ist Upvoting da.
Jim K