Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zählen unter bestimmten Bedingugnen

Zählen unter bestimmten Bedingugnen
17.03.2023 11:25:01
Christian

Hallo zusammen,

ich bin auf der Suche nach einer Formel, bitte keine Pivot- oder Cube-Lösung, da ich mich damit nicht auskenne.

Ich habe eine Verkaufsliste aus einem Kassen-System. Darin sind unsere Abverkaufsdaten zu finden.
Ich möchte nun herausfinden, welcher Mitarbeiter welche "Attachquote" erreicht. Dafür ist es nötig zu zählen, ob in einem bestimmten Beleg zu einem Artikel aus der Hauptwarengruppe ein Artikel aus einer Attach-Warengruppe verkauft wurde.

Zu diesem Zweck habe ich in der Datei ein Tabellenblatt mit dem Namen "WGR". Darin sind in Spalte A die Hauptwarengruppen und in Spalte B die Attach-Warengruppen hinterlegt.

Des weiteren gibt des das Tabellenblatt "Input". Hier möchte ich künftig die Abverkaufsdaten aus unserem Kassensystem einfügen. Das bedeutet, die Liste wird täglich länger. Innerhalb einer Woche können das bis zu 10000 Zeilen werden. Möglicherweise auch mehr. Die Abverkaufsdaten verraten folgende relevante Daten:

Spalte A: Datum
Spalte D: Belegnummer
Spalte G: Verkäufernummer
Spalte H: Warengruppennumme
Spalte K: Menge

Im Tabellenblatt "Auswertung" soll die Auswertung stattfinden. Um den Zeitraum (immer eine Woche von Montag bis Samstag) zu defineren, gebe ich in Zelle A1 das Datum ein, an dem die Auswertung starten soll, in meinem Beispiel der 06.03.2023. Dadurch füllen sich die Felder in Zeile 3 und 4 mit Wochentag und Datum.
Darunter findet man in B die Verkäufernummer.
In Spalte D, G, J, M, P und S lasse ich die Anzahl der Belege mittels Formel zählen. Dies Funktioniert bereits.

Nun möchte ich in den Spalten E, H, K, N, Q und T die Anzahl der Attach-Verkäufe zählen lassen. Dafür wäre es notwendig, dass die Formel zunächst in das Arbeitsblatt "Input" schaut, dort prüft, ob es am betreffenden Tag, für die betreffende Verkäufernummer innerhalb eines Belegs einen Attach-Abverkauf gab (Spalte K "Menge" zeigt positive und negative Verkäufe (Rücknahmen) auf. Hierfür sollte die Formel im Arbeitsblatt "WGR" danach suchen, ob zwei Kriterien erfüllt sind. Nämlich, ob innerhalb einer Belegnummer (diese kommen in "Input" i. d. R. mehrmals vor) einen Abverkauf der Warengruppe aus Spalte A "und" Spalte "B" gab. Nur dann soll gezählt werden.

Ganz wichtig ist es noch, das pro Beleg maximal +1 oder -1 gezählt wird, auch wenn es mehrere Übereinstimmungen innerhalb eines Beleges gibt. Mehrfachverkäufe innerhalb eines Beleg sollen also nicht gezählt werden.

Ich hoffe es gibt eine Lösung dafür. Vielen Dank schon mal für´s "Kopf zerbrechen"!

Hier meine Beispieldatei: https://www.herber.de/bbs/user/158300.xlsx

Schöne Grüße

Christian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zählen unter bestimmten Bedingugnen
17.03.2023 15:54:57
Yal
Hallo Christian,

"bitte keine Pivot- oder Cube-Lösung, da ich mich damit nicht auskenne."

Es ist ja bedauerlich. Also wenn Du 6 Monaten vor der Rente bist, kann ich das nachvollziehen, aber ansonsten, solltest Du dir Pivottabelle in die Hand nehmen, wäre es nur um danach festzustellen: "war ich aber doof, mich dagegen zu stellen. Das ist ja ziemlich einfach und logisch. Wenn ich denke, wieviel Zeit ich damit verbracht habe, an Lösung zu basteln, um mich nicht mit Pivottabelle auseinander zu setzen".

Wenn Du tatsächlich noch auf dem Stadium "Basiskenntnisse in Excel" bist, wäre es doppelt sinnvoll, um sich nicht an irrsinnige Pseudo-Lösung zu gewönnen, weil -ehrlich gesagt- wenn
{=ANZAHL(_xlfn.UNIQUE(_xlfn._xlws.FILTER(Input!$D$2:$D$10000;(Input!$G$2:$G$10000=$B6) *(Input!$A$2:$A$10000=D$4)))) }
dein Einstieg ist, dann ist es schon meilenweit komplizierter als Pivot. Wenn Du das kannst, kannst Du auch Pivot.

Vielleicht habe ich heute Abend Zeit, dir die Schritte aufzulisten, die Du brauchst, um dein Ziel zu erreichen. Es geht über Power Query (kein Angst, es beisst nicht, will nur spielen ;-)
Schaue dir die 6 ersten Videos von
https://excelhero.de/power-query/power-query-ganz-einfach-erklaert
Du musst nicht alles sofort verstehen (wobei der Dozent sehr gut erklärt), aber es sind sehr gut investierte 40 Minuten.

VG
Yal


Anzeige
AW: Zählen unter bestimmten Bedingugnen
17.03.2023 21:26:04
Yal
Hallo Christian,

folgende Vorgehensweise:
_ gehe auf Zelle A1 im Blatt "Input",
_ erzeuge eine Tabelle : Menü "Einfügen", "Tabelle". Der Datenbereich wird erkannt.
_ oben links siehst Du den Namen der Tabelle "Tabelle1". Ändere den Namen in "tbInput" (Name für das Nachfolgenden relevant)
_ gehe auf Zelle A1 von WGR
_ erzeuge eine Tabelle, ändere in "tbWGR".
_ Menü "Daten", "aus Tabelle"
Du bist in Power Query.

_ öffne den linken Bereich, wo "Abfragen" steht,
_ rechtsklick auf die Abfrage "tbWGR" und wähle "Duplizieren". Die neue Abfrage heisst "tbWGR (2)"
_ im Rechten Bereich "Abfrageeinstellungen" ändere den Namen in "tbInput"
_ klicke auf der "Angewendete Schritte" "Quelle" und ändere in der Formelbearbeitungsleiste von
= Excel.CurrentWorkbook(){[Name="tbWGR"]}[Content]
in
= Excel.CurrentWorkbook(){[Name="tbInput"]}[Content]
ändern (Achtung: Case-sensitiv!)
_ lösche den Schritt "Geänderter Typ"
_ im Menü "Transformieren", "Datentyp erkennen" anklicken.

Wir haben jetzt 2 Abfragen basierend auf 2 Tabellen.
Zuerst ein bischen Tunning:
_ in "tbInput", auf dem Überschrift der erste Spalte rechtsklicken, "Typ ändern", "Datum" auswählen ("Aktuelle ersetzen", wenn der andere auch nicht schlimm)
_ dito "Zeit" Typ ändern in "Zeit", "Menge" als "ganze Zahl" (wenn Nachkommazahlen, "Decimalzahl" nehmen)
_ Menü "Start", "Abfragen zusammenführen"
_ im unteren Bereich der Assistent die zweite Abfrage "tbWGR" auswählen,
_ Spalte "Wgr-Nr." im oberen Abfrage und Spalte "WGR Hautpartikel" im unteren anklicken,
_ Join-Art "linker äusseren Join" ist schon richtig (ich zeige Dir nur die Schritte. Was es bedeutet, musst Du selber nachgehen)
_ auf dem Symbol auf der neuen Spalte "tbWGR" klicken, alles abklicken, nur "WGR Attach-Artikel" anhaken,

Da manche Hautpartikel mehrere Attach-Artikel haben, entsteht hier eine Vermerhung der originale Zeilen. Da musst Du eventuell nachschärfen.
_ im Menü "Spalten hinzufügen", "Benutzerdefinierte Spalte" anklicken,
_ Neuer Spaltenname "Anzahl Attach", Formel
= if [#"WGR Attach-Artikel"] is null then 0 else 1
(Achtung: immer noch Case-sensitiv)
_ Rechtsklick auf die Spalten, Typ ändern "Ganzzahl" auswählen.

Jetzt haben wir die originale Daten vorbereitet, -fast- ohne diese zu verzehren (Siehe Join). Wir brauchen aber eine Aggregation, sodass die Belege nur einaml vorkommen.
Ich mache gern ein solche Bruch in einer separaten Abfrage, um die originale Daten weiterhin unverändert zu haben.
_ in dem Bereich "Abfrage", "tbInput" rechtsklicken und "Verweis" anklicken. Der Endstand von "tbInput" ist der Startstand der neue Abfrage, könnte aber der Startstand von weitere abfragen werden.
_ die neue Abfrage in "tbErgebnis" umbenennen.
_ in dieser Abfrage, Spalten "Datum", "Beleg-Nr.", "Verk." markieren
_ menü "Transformieren", "Gruppieren nach" anklicken
_ im Assistent, oben die 3 ausgewählten Spalten,
_ unten Aggregation hinzufügen, Neuer Spaltenname "Menge", Vorgang "Summe", Spalte "Menge"
_ nochmal Aggregation hinzufügen, Neuer Spaltenname "Attach", Vorgang "Summe", Spalte "Anzahl Attach"

Was haben dann: das Datum, der Verkäufer, die Belege (Unique), die Anzahl an Buchung pro Beleg, die Menge an Hauptartikel, die Menge an Attach-Artikel.
Jetzt ist man mit der Bereistellung der Daten fertig (man könnte noch überlegen, ob manche Spalten nicht überflüssig wären).
_ Menü "Datei", "Schliessen und laden in ..."
_ "Nur Verbindung herstellen",
Wir sind wieder in klassichen Excel, nur dass es rechts einen Bereich mit Abfragen gibt.
_ auf die Abfrage "tbErgebnis" rechtsklicken, "laden in...", ein Haken bei "dem Datenmodell diese Daten hinzufügen"

_ Menü "Einfügen", "PivotTable"
_ "Das Datenmodell dieser Arbeitsmappe verwenden", "neues Arbeitsblatt"
_ im rechten Bereich in "PivotTable-Felder" "tbErgebnis" mit dem gelben zylinder öffnen,
_ das Feld "Datum" drag'n dropen in "ZEILEN"
_ das Feld "Verk." (bedeutet wohl Mitarbeiter) in "ZEILEN" unter "Datum"
_ das Feld "Beleg-Nr." in "WERTE" drag'n dropen, es erschient "Anzahl von Beleg-Nr." (weil als Text deklariert)
_ das Feld "Attach" in "WERTE" drag'n dropen, es erschient "Summe von Attach" (weil als Zahl deklariert)
Herzliche Glückwunsch, es ist ein Pivot.

Eigentlich genau die Daten, die Du brauchst, um den Ratio Anzahl (oder Summe) an Attach durch Anzhal von Beleg pro Tag und Mitarbeiter.
Nimme eine Zelle rechts von der Pivot, füge eine "=" und klicke eine Zelle der Pivot. Du bekommst einen komsichen Formel, die grossenteils aus Text-Parameter besteht, die man "zusammenbasteln" kann, und Du so in deine Vorlage platzieren kannst.

Ein Ratio in dem Stand ist machbar, lässt sich aber schlecht "erweitern". Man muss lieber einen "=C7/B7" verweden

Erweiterung: deine WGR-Liste scheint fest zu sein, aber dein Input wird sicher sich ändern. Wenn diese aus einer Datei kommt, solltest Du diese Datei per Power Query Abfrage "laden" (feste Dateiname zu bevorzügen), dann bräuchtest Du nicht die "tbInput".
Mit einem Rechtsklick auf dem Pivot udn "Aktualisieren" hast Du sofort die richtige Daten drin. Du musst keine Formel anpassen oder prüfen.

Eine Menge Holz? Nein, es sieht nur so aus, weil die Schritte einzel beschrieben sind. Möchtest Du die sportliche Herausforderung annehmen, den Vorgang mit Formel zu versuchen?
Eigentlich ein "einfache" ETL-Prozess: jede Schritt an sich einfach und gar nicht mal so viele Schritte. Was wir gemacht haben ("wir", vorausgesetz Du traust dich ran) ist im Bereich der Business Intelligence zu finden (sehr gute Gehälter, übrigens ;-)

VG
Yal


Anzeige
AW: Zählen unter bestimmten Bedingugnen
20.03.2023 11:07:23
Christian
Hallo Yal,

Du hast sicher recht, ich muss mich damit wirklich mal beschäftigen.

Vielen, vielen Dank für die Mühe. Eine Schritt-für-Schritt-Anleitung hatte ich gar nicht erwartet. Ich werde es ausprobieren und berichten, ob ich es geschafft habe :-)

Liebe Grüße

Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige