ZÄHLEN / ANZAHL ermitteln unter Berücksichtigung von 2 - 3 Kriterien
Ich möchte in einer großen Tabelle nach 2 Kriterien (oder auch 3) filtern, anschließend soll die Anzahl der verbleibenden Datensätze ermittelt und in eine Zelle eingetragen werden.
In einer anderen Situation soll bei den verbleibenden Datensätzen die Summe einer Spalte ermittelt werden. Aber eben nur die relevanten Datensätze und nicht auch die Ausgeblendeten. Auch diese soll in eine Zelle eingetragen werden.
Verwendet wird EXCEL 2003. Habe schon diverse Formeln eingebaut. Bei Filter mit nur einem Kriterium funktioniert der Matrixverweis einwandfrei.
{=ANZAHL(WENN(MListe!$B$5:$B$5000="G086";MListe!O5:O5000))}
Gern auch eine Lösung mittels Makro.
Antwort schreiben
Antwort 1 von rainberg vom 11.01.2020, 14:18 Options
Hallo,
probier mal das
=SUMMENPRODUKT((Krit1)*(Krit2)*(Krit3))
Wenn Du nicht klar kommst, schildere Deine Tabellestruktur etwas genauer.
Gruß
Rainer
Antwort 2 von warhammer vom 14.01.2020, 08:11 Options
Hallo,
danke für die Hilfe. Leider hat sie mich noch nicht weiter bringen können (oder ich kapiers nicht). Ich denke, ich muss doch mal meine Tabelle genauer beschreiben:
A B C
Materialnummer Lager Preis
Zwischen den Spalten sind andere (aber für die Berechnung nicht wichtige) Spalten.
Fall 1:
Sortierung der Materialien nach bestimmten Lager (zB L1) und anschließend nach Materialnummer (zB alle Materialien mit Nummer größer als 1.000.000). Dann Addition des Preises aller gefilterten Materialien, die im L1 mit Nummer größer als 1.000.000 sind. Diese Summe soll dann in vorderen Tabellenblatt (Übersicht) aufgeschrieben werden.
Fall 2:
Wie oben, nur nicht Ermittlung der Summe der Preise sondern Ermittlung der Anzahl der gefilterten Materialien.
Ich glaube "SUMMEWENN" könnte hier uU richtig sein, aber ich finde nur Beispiele, wo nach nur einem Kriterium gefiltert wurde und da funktioniert es. Leider weiß ich aber nicht, wie ich mehrere Kriterien in die Formel bringe. Bei den Materialien, wo nur ein Kriterium ist, habe ich für die Summe
=SUMME(WENN(MListe!$B$5:$B$5000="G086";MListe!Q5:Q5000))
und für die Anzahl
=ANZAHL(WENN(MListe!$B$5:$B$5000="G086";MListe!O5:O5000))
verwendet.
Ich würde mich tierisch freuen, wenn ihr mir noch einmal helfen könntet. Bin echt fast am Verzweifeln.
Danke schön.
Gruß, Jeannette
Antwort 3 von warhammer vom 14.01.2020, 08:26 Options
Hallo noch einmal
Habs gerade noch mal ausprobiert mit Summenprodukt... Jetzt versteh ich die Formel doch besser. Leider ist das Ergebnis =0, was nicht sein kann. Folgende Formel habe ich eingegeben:
=SUMMENPRODUKT((MListe!$B$5:$B$5000="M413")*(MListe!$B$5:$B$5000="M491")*(MListe!$B$5:$B$5000="M492")*MListe!$Q$5:$Q$5000)
Bringt das jemanden weiter?
Noch mal Danke im Voraus.
Antwort 4 von warhammer vom 14.01.2020, 08:37 Options
Ich hab es jetzt noch einmal probiert mit einem anderen Feld. Dort musste ich 2 Kriterien verschiedener Spalten einbeziehen. Da funktioniert es! *jubel*Komischerweise funktioniert es aber nicht, wenn ich nach drei verschiedenen Lagernamen (nur eine Spalte) filtern muss. *???*
Und für die Anzahl habe ich auch noch keine Idee. Eine zusätzliche Spalte mit alles einsen wäre ja dann auch eine Lösung, möchte ich aber nicht, weil das meine Kollegen verwirren würde.
Antwort 5 von rainberg vom 14.01.2020, 10:14 Options
Hallo,
meine Formel war natürlich nur ein allemein gültiger Vorschlag.
Wie man sie genau einsetzen muss kann man nur anhand der vorliegenden Daten einschätzen.
Da können z.B. auch die Formate, die Schreibweisen der Kriterien etc. eine Rolle spielen.
Falls Du noch Probleme hast, lade doch mal ein Beispiel hoch.
Gruß
Rainer
Antwort 6 von Saarbauer vom 14.01.2020, 10:30 Options
Hallo
deine Formel
Zitat:
=SUMMENPRODUKT((MListe!$B$5:$B$5000="M413")*(MListe!$B$5:$B$5000="M491")*(MListe!$B$5:$B$5000="M492")*MListe!$Q$5:$Q$5000)
kann nur zu 0 führen, da
MListe!$B$5:$B$5000="M413" nur an den Stellen wo die Bedingung erfüllt ist zu dem Wert "wahr" oder 1 führt ( bei Nichterfüllung "falsch" oder 0), das gleiche für
MListe!$B$5:$B$5000="M491" und die übrigen Angaben. Wenn nun das erste Feld mit dem zweiten malgenommen wird, sid immer an den Stellen an denen die 1. Bedingung erfüllt ist die 2. Bedingung nicht erfüllt somit ergibt sich in sollchen Fällen grundsätzlich eine Muliplikation mit 0 und somit ist das angezeigte Ergebnis richtig.
Weiter bringt dich wahrscheinlich folgendes
=SUMMENPRODUKT((MListe!$B$5:$B$5000="M413")*(MListe!$Q$5:$Q$5000) )+ SUMMENPRODUKT((MListe!$B$5:$B$5000="M491")*(MListe!$Q$5:$Q$5000)) + SUMMENPRODUKT((MListe!$B$5:$B$5000="M492")*MListe!$Q$5:$Q$5000))
Gruß
Helmut
Antwort 7 von rainberg vom 14.01.2020, 10:59 Options
Hallo warhammer,
die Formel von Helmut kannst Du natürlich wie folgt kürzen:
=SUMMENPRODUKT((MListe!$B$5:$B$5000="M413")+(MListe!$B$5:$B$5000="M491")+(MListe!$B$5:$B$5000="M492")*MListe!$Q$5:$Q$5000)
Mit anderen Worten, Du brauchst in Deiner Formel nur die "*" durch "+" zu ersetzen.
Das ist praktisch der Ersatz für die Funktion ODER().
In Deiner Formel hattest Du die Funktion UND() angewendet und das geht ja nicht, weil in einer Zelle immer nur eins
Deiner drei Kriterien stehen kann.
Gruß
Rainer
Antwort 8 von Saarbauer vom 14.01.2020, 11:32 Options
Hallo @ rainberg,
dir ist ein kleiner Fehler unterlaufen, da in diesem
Zitat:
=SUMMENPRODUKT((MListe!$B$5:$B$5000="M413")+(MListe!$B$5:$B$5000="M491")+(MListe!$B$5:$B$5000="M492")*MListe!$Q$5:$Q$5000)
nur der Letze Block multipliziert wird und ich meine alle Blöcke müssten mulitipliziert werden, daher wäre eine Klammer zusätzlich erforderlich
=SUMMENPRODUKT(
(($A$1:$A$30=1)+($A$1:$A$30=2)+($A$1:$A$30=5)
)*$B$1:$B$30)
Gruß
Helmut
Antwort 9 von rainberg vom 14.01.2020, 11:44 Options
@ Helmut
hast recht, das Klammerpaar habe ich vergessen.
Gruß
Rainer
Antwort 10 von warhammer vom 14.01.2020, 12:38 Options
Hallo Helmut, hallo Rainer
Vielen, vielen Dank für die Hinweise. Habe jetzt die richtige Formel! Es funktioniert!
Ihr habt mir wirklich sehr geholfen.
Gruß, Jeannette