Einmalige Werte Zählen mit Bedingung
#1
Hallo zusammen,

anbei ein Beispieldatei. Ich möchte gerne die Anzahl der Artikel pro Tag aber nur einmalig, also keine Duplikate.
Dafür habe ich auch die Formel schon eingetragen, die funktioniert. Nun möchte ich diese Anzahl aber unter der
Bedingung in dem gelb markierten Kasten berechnen. In G3 soll also die Anzahl der einmaligen Artikel nur für den 04.06.2024 (F3) und nur für den Lagerort 1000 in (G2).

Irgendwann hatte ich dafür schon einmal einen Formel, aber das ist zu lange her Wink

Wäre super dankbar für eine Hilfe.

Vielen Dank im Voraus und liebe Grüße,
Excelmonsta


Angehängte Dateien
.xlsx   Einmaliger Wert Zählen mit Bedingungen.xlsx (Größe: 10,36 KB / Downloads: 7)
Antworten Top
#2
Hola,
Code:
=ANZAHL2(EINDEUTIG(FILTER($B$3:$B$20;($A$3:$A$20=F3)*($C$3:$C$20=$G$2))))
Gruß,
steve1da
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • Excelmonsta
Antworten Top
#3
Wow - das kam ja fix - herzlichen Dank im Voraus.
Hab ich zwar noch nicht in die Echtdatei übertragen aber aus Erfahrung klappt das so gut wie immer von Dir Smile

Liebe Grüße
Antworten Top
#4
Moin

Vorsicht! FILTER() gibt immer mindestens eine Zeile zurück.

Vielleicht besser mit Datenmodell-Pivot.
Arbeitsblatt mit dem Namen 'Tabelle3'
LMNO
9Anzahl verschiedene Artikelnr.Lager
10Datum100020003000
1104.06.2024744
1205.06.20241
1310.06.202411
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#5
Hi,

wie Detlef schon sage, gibt Filter immer etwas zurück - nämlich #WERT! falls es nichts zurück zu geben gibt. Daher liefert Anzahl2 mindestens 1 zurück.

Um dem aus dem Weg zu gehen, könnte man in diesem Fall (die Artikelnummer ist eine Zahl) statt ANZAHL2 auch ANZAHL verwenden.

Sollten auch Texte als Artikelnummern vorkommen, könnte man eine der folgenden Formeln verwenden:
Code:
=LET(x;EINDEUTIG(FILTER($B$3:$B$20;($A$3:$A$20=$F3)*($C$3:$C$20=G$2)));y;WENN(ISTFEHLER(TEXTKETTE(x));0;ANZAHL2(x));y)
=ABRUNDEN(ANZAHL2(EINDEUTIG(FILTER($A$3:$B$20;($A$3:$A$20=$F3)*($C$3:$C$20=G$2))))/2;0)
=ANZAHL(ÜBERNEHMEN(EINDEUTIG(FILTER($A$3:$B$20;($A$3:$A$20=$F3)*($C$3:$C$20=G$2)));;1))
Bei der ersten Formel wird überprüft, ob ein Fehlerwert zurück gegeben wird und entsprechend reagiert. Dies geht schief, falls in der Spalte für die Artikel bereits Fehlerwerte vorkommen.

Bei der zweiten Formel wird beim Filtern nicht nur die Artikelnummer sondern auch das Datum zurückgegeben. Dadurch erhält man die doppelte Anzahl Werte und muss durch 2 teilen. Im Fehlerfahl erhält man jedoch nur 1 Wert zurück, der beim Teilen durch 2 logischerweise 0,5 ergibt. Daher wird das Ergebnis der Division abgerundet und aus 0,5 wird 0.

Bei der dritten Formel werden ebenfalls Datum und Artikelnr. zurückgegeben, davon dann aber nur das Datum übernommen. Somit hat man hier auch immer Zahlen stehen und kann wieder ANZAHL statt ANZAHL2 verwenden.
Es gibt bestimmt noch mehr Möglichkeiten.

PS: Bei der Formel von steve1da sind nicht alle $-Zeichen korrekt gesetzt, falls man ziehen will.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#6
Hallo,

in Zelle F3 ist folgende Formel (für Excel365-Standard) enthalten:
Code:
=LET(
    m; tbDaten;
    mdt; SPALTENWAHL(m; 1);  mart; SPALTENWAHL(m; 2);  mlg; SPALTENWAHL(m; 3);
    mdte; EINDEUTIG(mdt);    mlge; MTRANS(EINDEUTIG(mlg));
    mdtCt; ZEILEN(mdte);     mlgCt; SPALTEN(mlge);
    mCt; MATRIXERSTELLEN(
        mdtCt+1;  mlgCt+1;
        LAMBDA(i; j;
            ANZAHL(
                EINDEUTIG(
                    FILTER(
                        mart;
                        WENN(i > mdtCt; 1; (mdt = INDEX(mdte; i; 1))) *
                            WENN(j > mlgCt; 1; (mlg = INDEX(mlge; 1; j)))
                    ))
        ))
    );
    VSTAPELN(
        HSTAPELN(""; mlge; "Gesamt");
        HSTAPELN(VSTAPELN(mdte; "Gesamt"); mCt)
    )
)

Das Resultat sieht aus wie eine Zeilen/Spalten-Pivottable mit einer Gesamtspalte rechts und einer Gesamtzeile unten. Diese Gesamt-Zeile/Spalte ist jedoch keine Summen-Zeile/Spalte, sondern hat keinen Eindeutig-Filter für Datum bzw. Lager.

Dasselbe Ergebnis würde man mit Version Excel365-Insider mit folgender Formel erzielen (Zelle F16):
=PIVOTMIT(tbDaten[Datum]; tbDaten[Lager]; tbDaten[Artikelnr.]; LAMBDA(w; ANZAHL2(EINDEUTIG(w))))


Angehängte Dateien
.xlsx   Excelmonsta_Einmaliger Wert Zählen mit Bedingungen.xlsx (Größe: 16,6 KB / Downloads: 0)
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste