Bedingte Summierung (SUMMEWENN) mit mehr als einer Bedingung
Moderator: Moderatoren
Bedingte Summierung (SUMMEWENN) mit mehr als einer Bedingung
Wie lautet die Syntax?
Konkretes Beispiel:
Ich habe eine Stundenliste über alle Bearbeiter, alle Projekte, eine Tabelle für ein Jahr. Angenommen, in Spalte A steht der Bearbeiter, in B das Datum, in C der Monat aus dem Datum, in D der Projektname, in E die Stunden.
Bisher frage ich ab, wieviele Stunden insgesamt für ein Projekt aufgewandt wurden, indem ich folgende Syntax verwende:
SUMMEWENN(D1:D1000;"XY";E1:E1000)
Nun möchte ich in anderen Auswertungen wissen, wieviel welcher Bearbeiter in welchem Monat für das Projekt aufgewandt hatte. Wie lautet die Syntax, wenn meine SUMMEWENN mehr als eine Bedingung hat? Man kann davon ausgehen, dass alle Bedingungen mit UND-Verknüpfungen auskommen?
Ich hoffe, ich habe alles ausreichend beschrieben. Ansonsten bitte einfach fragen.
Konkretes Beispiel:
Ich habe eine Stundenliste über alle Bearbeiter, alle Projekte, eine Tabelle für ein Jahr. Angenommen, in Spalte A steht der Bearbeiter, in B das Datum, in C der Monat aus dem Datum, in D der Projektname, in E die Stunden.
Bisher frage ich ab, wieviele Stunden insgesamt für ein Projekt aufgewandt wurden, indem ich folgende Syntax verwende:
SUMMEWENN(D1:D1000;"XY";E1:E1000)
Nun möchte ich in anderen Auswertungen wissen, wieviel welcher Bearbeiter in welchem Monat für das Projekt aufgewandt hatte. Wie lautet die Syntax, wenn meine SUMMEWENN mehr als eine Bedingung hat? Man kann davon ausgehen, dass alle Bedingungen mit UND-Verknüpfungen auskommen?
Ich hoffe, ich habe alles ausreichend beschrieben. Ansonsten bitte einfach fragen.
SUMMENPRODUKT() ist Dein Freund.
Oder mache SUMME() zu einer Matrixformel
http://www.ooowiki.de/CalcFunktionenMatrix
Oder mache SUMME() zu einer Matrixformel
http://www.ooowiki.de/CalcFunktionenMatrix
Danke, das funktioniert!
Vielleicht werd ich jetzt größenwahnsinnig, aber geht das auch mit "Open End", das heißt, eine Datenmatrix, die nach unten offen ist? Bisher mache ich es so, dass ich am Anfang eines Jahres 10000 als untere Zeilennummer setze und, wenn es mehr Datenzeilen werden, die Felder einzeln auswähle und den hohen Zeilenwert auf 500000 erweitere. Wenn das Ding das selbst machen würde, hätt ich auch nichts dagegen.
Vielleicht werd ich jetzt größenwahnsinnig, aber geht das auch mit "Open End", das heißt, eine Datenmatrix, die nach unten offen ist? Bisher mache ich es so, dass ich am Anfang eines Jahres 10000 als untere Zeilennummer setze und, wenn es mehr Datenzeilen werden, die Felder einzeln auswähle und den hohen Zeilenwert auf 500000 erweitere. Wenn das Ding das selbst machen würde, hätt ich auch nichts dagegen.
Hast Du's denn schon asprobiert?
Ich arbeite lieber mit Namen statt mit Bereichsadressen
http://www.ooowiki.de/NamenFürZellen
Ich arbeite lieber mit Namen statt mit Bereichsadressen
http://www.ooowiki.de/NamenFürZellen
Bin grade am probieren, stell mich aber zu doof an oder so. Die Namen würden schonmal helfen, dass ich nicht tausende von Feldern durchklicken muss, sondern pro Spalte einen Namen vergebe und dann in dieser Anwendung nur von fünf Spaltennamen den Datenbereich ändern muss. Das mach ich aber, wenn meine Formeln stehen.
Das ist meine Syntax:
=SUMME((B$16:B$600=Q$15)*(G$16:G$600=P17)*(F$16:F$600))
Notizen dazu:
Funktion steht hier mal in Zeile 17. Erste Zeile, die auszuwertende Daten enthält, ist 16. Hab bisher mal auf 600 probiert. In Q15 ist der Monat eingetragen, in P derselben Zeile wie die Funktion steht der Projektname, über den summiert werden soll. Meine Monatsspalte ist B, meine Projektnamen werden immer in G erfasst, die Stunden in F. Ich hab definitiv testhalber ein neues Projekt eingetragen, das genau vier Stunden hat und das ich als Versuch summieren wollte. Es erscheint aber 0.00, obwohl gleiches Zeitformat. Das mit den Bearbeitern mach ich, wenn das mal steht. Ist ja dann nur eine Ergänzung. String immer nur bei den Zeilennummern, da ich nur nach unten kopiere.
Müsste doch gehen, oder?
Die kopierte Syntax aus der Hilfe-Seite (Stichpunkt: Weitere Anwendungsbeispiele zum Thema "Bereich berechnen wenn") sieht so aus:
=SUMME(((MONAT(A1:A15)=E14)*(C1:C15=E15)*(B1:B15))) Allerdings sind mir die Anzahlen der Klammern nicht so richtig klar. Wenn ich mir mal verschiedene Klammertypen eintrage, sehe ich, dass eine überflüssig ist, entweder die eckige oder die geschweifte.
=SUMME[{(MONAT(A1:A15)=E14)*(C1:C15=E15)*(B1:B15)}]
Hä? Versteh grad gar nicht, was bei mir falsch sein könnte.
Das ist meine Syntax:
=SUMME((B$16:B$600=Q$15)*(G$16:G$600=P17)*(F$16:F$600))
Notizen dazu:
Funktion steht hier mal in Zeile 17. Erste Zeile, die auszuwertende Daten enthält, ist 16. Hab bisher mal auf 600 probiert. In Q15 ist der Monat eingetragen, in P derselben Zeile wie die Funktion steht der Projektname, über den summiert werden soll. Meine Monatsspalte ist B, meine Projektnamen werden immer in G erfasst, die Stunden in F. Ich hab definitiv testhalber ein neues Projekt eingetragen, das genau vier Stunden hat und das ich als Versuch summieren wollte. Es erscheint aber 0.00, obwohl gleiches Zeitformat. Das mit den Bearbeitern mach ich, wenn das mal steht. Ist ja dann nur eine Ergänzung. String immer nur bei den Zeilennummern, da ich nur nach unten kopiere.
Müsste doch gehen, oder?
Die kopierte Syntax aus der Hilfe-Seite (Stichpunkt: Weitere Anwendungsbeispiele zum Thema "Bereich berechnen wenn") sieht so aus:
=SUMME(((MONAT(A1:A15)=E14)*(C1:C15=E15)*(B1:B15))) Allerdings sind mir die Anzahlen der Klammern nicht so richtig klar. Wenn ich mir mal verschiedene Klammertypen eintrage, sehe ich, dass eine überflüssig ist, entweder die eckige oder die geschweifte.
=SUMME[{(MONAT(A1:A15)=E14)*(C1:C15=E15)*(B1:B15)}]
Hä? Versteh grad gar nicht, was bei mir falsch sein könnte.
Ich hab jetzt mal Bereichsnamen eingeführt. Ist doch um einiges übersichtlicher.
Nun lautet meine Syntax:
=SUMME((Monat=Q$15)*(Projekt=P17)*(Zeit))
Addiert aber trotzdem nicht meine Stunden, sondern kommt auf Null.
Aber immerhin keine Fehlermeldung
Wenn ich nicht was kapital missverstanden hab, heißt das, was ich da oben hab, im Klartext: Wenn Monat = was in Q15 steht UND Wenn Projekt = das, was in P17 steht, dann summiere bitte mal Zeit von den Zeilen auf, wo die beiden Wenns zutreffen.
Meine Monatsformatierung ist vermutlich nicht schuld. Ich hab in B, also im Bereich Monat schon =Monat von Datum als Zahl ausgeben lassen. In Q15 schreib ich dann die Zahl des Monats.
Nun lautet meine Syntax:
=SUMME((Monat=Q$15)*(Projekt=P17)*(Zeit))
Addiert aber trotzdem nicht meine Stunden, sondern kommt auf Null.
Aber immerhin keine Fehlermeldung

Wenn ich nicht was kapital missverstanden hab, heißt das, was ich da oben hab, im Klartext: Wenn Monat = was in Q15 steht UND Wenn Projekt = das, was in P17 steht, dann summiere bitte mal Zeit von den Zeilen auf, wo die beiden Wenns zutreffen.
Meine Monatsformatierung ist vermutlich nicht schuld. Ich hab in B, also im Bereich Monat schon =Monat von Datum als Zahl ausgeben lassen. In Q15 schreib ich dann die Zahl des Monats.
Ahaa, das hab ich wohl beim Studium der Hilfe übersehen, dass die anders einzugeben ist als eine normale Formel.
Absolute Adresse für Q15 wär ok, könnt ich machen. Für P17 wärs Käse, hier könnt ich nur die Spalte absolut setzen, da es eine Liste geben soll durch kopieren der Funktion über die Zeilen.
Moment, ich probier mal, ob ich da mit dem Abschließen hinkriege...
Absolute Adresse für Q15 wär ok, könnt ich machen. Für P17 wärs Käse, hier könnt ich nur die Spalte absolut setzen, da es eine Liste geben soll durch kopieren der Funktion über die Zeilen.
Moment, ich probier mal, ob ich da mit dem Abschließen hinkriege...
...Geht!
Erst war ich bisserl doof und hab die geschweiften Klammern rumgeschrieben, anschließend Ctrl+Shift+Return gedrückt und mich gewundert, warum ich =NAME? erhalte. Dann ist mir aufgefallen, dass
Vielen Dank, Eia!
Erst war ich bisserl doof und hab die geschweiften Klammern rumgeschrieben, anschließend Ctrl+Shift+Return gedrückt und mich gewundert, warum ich =NAME? erhalte. Dann ist mir aufgefallen, dass
bedeutet, dass es die von selbst bekommt. Hab dann die Klammern rausgelöscht und seitdem geht's. Hurrah!müsste dann Klammern bekommen {}
Vielen Dank, Eia!
Kopieren von Matrix-Formeln ist nicht so einfach. Ziehen solltest Du lieber nicht - oder probiers mal und versuche dann in einer Kopie etwas zu ändern.balista hat geschrieben:Ahaa, das hab ich wohl beim Studium der Hilfe übersehen, dass die anders einzugeben ist als eine normale Formel.
Absolute Adresse für Q15 wär ok, könnt ich machen. Für P17 wärs Käse, hier könnt ich nur die Spalte absolut setzen, da es eine Liste geben soll durch kopieren der Funktion über die Zeilen.
CTRL+C/CTRL+V geht schon
Hallo Balista
1.Was steht in B16:B600 ? Datumswerte wie '03.01.07' oder Monatsziffern wie 12
2.Was steht in Q 15 ? Monatsnamen oder Monatsziffern
Falls 1. Datumswerte und 2. Monatsziffern dann lautet die Syntax :
=SUMME((MONAT(Monat)=Q$15)*(Projekt=P17)*(Zeit))
Mit Strg+Ctrl+Enter abschliessen.
Falls du eine OOo-version ab 2.0x verwendest nimm besser Summenprodukt :
=SUMMENPRODUKT(MONAT(Monat)=Q$15;Projekt=P17;Zeit)
Wie eine normale Formel nur mit Enter abschliessen.
Gruß Karo
1.Was steht in B16:B600 ? Datumswerte wie '03.01.07' oder Monatsziffern wie 12
2.Was steht in Q 15 ? Monatsnamen oder Monatsziffern
Falls 1. Datumswerte und 2. Monatsziffern dann lautet die Syntax :
=SUMME((MONAT(Monat)=Q$15)*(Projekt=P17)*(Zeit))
Mit Strg+Ctrl+Enter abschliessen.
Falls du eine OOo-version ab 2.0x verwendest nimm besser Summenprodukt :
=SUMMENPRODUKT(MONAT(Monat)=Q$15;Projekt=P17;Zeit)
Wie eine normale Formel nur mit Enter abschliessen.
Gruß Karo
Dazu noch: Es spricht eigentlich nichts dagegen, von Anfang an bis 64000 einzugeben. Die leeren Zeilen ergeben dann Null und das verändert ja das Resultat nicht. Ich selbst habe bisher auch keine Probleme mit der Rechenleistung deswegen bekommen.balista hat geschrieben:Danke, das funktioniert!
geht das auch mit "Open End", das heißt, eine Datenmatrix, die nach unten offen ist? Bisher mache ich es so, dass ich am Anfang eines Jahres 10000 als untere Zeilennummer setze und, wenn es mehr Datenzeilen werden, die Felder einzeln auswähle und den hohen Zeilenwert auf 500000 erweitere. Wenn das Ding das selbst machen würde, hätt ich auch nichts dagegen.
Nönö, Karolus, in B stehen Monatsziffern, gezogen aus Spalte C mit Monat(Datum). In Q15 auch eine Monatziffer. Habe mehrere Stichproben gemacht und es läuft super.
Kopiert hab ich mit Copy&Paste, weil's bisher nicht lang war und das ja mit Tastenkombi + Cursortaste in der Liste schnell geht.
Summenprodukt kann ich auch nehmen. Hab einfach das erste gewählt, was ich gefunden hab, um erstmal überhaupt was hinzubringen. OO tu ich mir immer die neueste gleich bei erscheinen drauf. Bin ja registriert.
@ Eia: Danke für den Tipp mit den 64000. Ich hatte einfach Sorge, dass ich dann beim Ausfüllen der rechnenden Zellen zusehen kann, aber wenn du meinst, das geht gut - ich hab ja was richtig feines als Rechner, also sicher keine Probleme (1024 MB RAM, Core 2 Duo 1,88 GHz, 1024 MB Grafik...).
Was passiert denn, wenn mal was über 64000 kommt? Ist dann Schluss im Calc oder ginge es ewig weiter? Ich hab mir nämlich überlegt, 10 Jahre am Stück zu verwalten und ein elftes immer rauszulöschen. Sichern einfach mit regelmäßigen Kopien dieser Datei. Dann müsst ich nie mehr in Archiven kramen, hätte keine hundert Dateien, wo ich jedes Jahr neu anfangen muss oder alles aus dem alten Jahr aus einer Kopie lösche etc. Klingt zwar wuchtig, aber heute hat man sicher Rechner, die sowas können - hat man auch Programme dafür?
Kopiert hab ich mit Copy&Paste, weil's bisher nicht lang war und das ja mit Tastenkombi + Cursortaste in der Liste schnell geht.
Summenprodukt kann ich auch nehmen. Hab einfach das erste gewählt, was ich gefunden hab, um erstmal überhaupt was hinzubringen. OO tu ich mir immer die neueste gleich bei erscheinen drauf. Bin ja registriert.
@ Eia: Danke für den Tipp mit den 64000. Ich hatte einfach Sorge, dass ich dann beim Ausfüllen der rechnenden Zellen zusehen kann, aber wenn du meinst, das geht gut - ich hab ja was richtig feines als Rechner, also sicher keine Probleme (1024 MB RAM, Core 2 Duo 1,88 GHz, 1024 MB Grafik...).
Was passiert denn, wenn mal was über 64000 kommt? Ist dann Schluss im Calc oder ginge es ewig weiter? Ich hab mir nämlich überlegt, 10 Jahre am Stück zu verwalten und ein elftes immer rauszulöschen. Sichern einfach mit regelmäßigen Kopien dieser Datei. Dann müsst ich nie mehr in Archiven kramen, hätte keine hundert Dateien, wo ich jedes Jahr neu anfangen muss oder alles aus dem alten Jahr aus einer Kopie lösche etc. Klingt zwar wuchtig, aber heute hat man sicher Rechner, die sowas können - hat man auch Programme dafür?
Per heutigem Stand ist da Schluss und ob es Pläne gibt, die maximal zulässige Anzahl von Zeilen noch zu erweitern, weiss ich nicht.balista hat geschrieben: Was passiert denn, wenn mal was über 64000 kommt? Ist dann Schluss im Calc oder ginge es ewig weiter?
Aber die Dantenbanker schlagen ohnehin die Hände über dem Kopf zusammen, wenn jemand mit Calc-Datensätzen so weit gehen will....