(Forum) Liste von doppelt vorhandenen Werten erzeugen

Quelle:  https://www.herber.de/cgi-bin/eachthread.pl?idx=1990575
Stand: 11.09.2024 13:00

Hier der Eröff­nungs­beitrag aus dem Forum:


Hal­lo Helfer­kol­le­gen,
ich ste­he vor einem Prob­lem und hoffe das die Spill­formel­ex­perten hier eine Lösung parat haben.

Prob­lem: Ich will die dop­pel­ten Ein­träge in ein­er Liste find­en und sie sep­a­rat z.b. für ein Drop­down auf­bere­it­en und dabei auf Hil­f­ss­pal­ten auf dem Blatt verzicht­en.

Alles was ich bish­er ergooglen kon­nte ist immer nur auf die Entfernung/Markierung von dop­pel­ten Ein­trä­gen aus­gelegt.
Ich suche aber eher das Gegen­teil. Eine einzige Umset­zung wäre mit­tels Filter(bereich;nicht(Zählenwenn(andererBereich;bereich)))
zum Artikel https://www.pcwelt.de/article/2253480/excel-so-nutzen-sie-die-zahlenwenn-option-in-formeln.html

Mir ist aufge­fall­en das es einen Unter­schied zu machen scheint ob man
den Spill­bere­ich der abzuziehen­den Werte direkt angibt
=ZÄHLENWENN(H3#;INDEX(E3#;;1)) ‘funk­tion­iert
oder die Liste per Formel im Namensman­ag­er erzeugt.
=ZÄHLENWENN(ListeEinmalige;INDEX(E3#;;1)) ‘funk­tion­iert nicht

Warum funk­tion­iert das nicht per Namensman­ag­er?
Hat Jemand eine ele­gan­tere Lösung? Vorangig ohne Let oder Lam­da.
https://www.herber.de/bbs/user/172132.xlsx

danke fürs Inter­esse und etwaige Lösungsan­sätze

rb


Bitte beacht­en Sie die hier beschriebene Beson­der­heit in Sachen des Her­ber-Forums.

Hmmm, trotz mehrma­li­gen Lesens der Beiträge bin ich mir nicht ganz sich­er, welch­es Ergeb­nis seit­ens des Fragestellers angestrebt wird. Meine Inter­pre­ta­tion ist diese: Es soll das Ergeb­nis aus den Spal­ten O:P gener­iert wer­den, allerd­ings auf eine „ele­gan­tere“ Art und Weise und ohne die LET() und LAMDA() – Funk­tio­nen.

Auf der Basis der gegebe­nen Muster-Tabelle habe ich mit diesem M-Code in zwei Pow­er Query-Abfra­gen ein adäquates Ergeb­nis gefer­tigt:

(Der Code für die importierten Roh-Dat­en)

let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle3"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Liste von Stoffen", type text}, {"Name ", type text}}),
    #"Zusammengeführte Abfragen" = Table.NestedJoin(#"Geänderter Typ", {"Liste von Stoffen"}, #"Tabelle3 (2)", {"Liste von Stoffen"}, "Tabelle3 (2)", JoinKind.Inner),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Zusammengeführte Abfragen",{"Tabelle3 (2)"}),
    #"Sortierte Zeilen" = Table.Sort(#"Entfernte Spalten",{{"Liste von Stoffen", Order.Ascending}})
in
    #"Sortierte Zeilen"

(Der Code für den Fil­ter-Vor­gang)

let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle3"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Liste von Stoffen", type text}, {"Name ", type text}}),
    // Ein ZÄHLENWENN() der 'Liste von Stoffen' in den Rohdaten
    #"Gruppierte Zeilen" = Table.Group(#"Geänderter Typ", {"Liste von Stoffen"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
    // Nur die mehrfachen Werte behalten
    #"Gefilterte Zeilen" = Table.SelectRows(#"Gruppierte Zeilen", each [Anzahl] > 1),
    // Muss nicht sein, ist IMHO aus der Sicht der "Datenhygiene" sinnvoll
    #"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"Anzahl"})
in
    #"Entfernte Spalten"

Noch ein Wort zum The­ma „Ele­ganz“: Auf der einen Seite sage ich immer wieder, dass Ele­ganz auf den Lauf­steg gehört und auf der anderen Seite finde ich es erhe­blich sin­nvoller und auch „schön­er“, wenn ein Code auch nach einem län­geren Zeitraum noch gut nachvol­lziehbar ist, auch für Kol­legin­nen und Kol­le­gen, welche aus­re­ichende Basisken­nt­nisse in Pow­er Query haben. Oder um es ganz deut­lich zu sagen: Das Ganze in eine einzige Abfrage zu „quetschen“ mag aus der Sicht von manchen IT-Fans schick sein, hat aber mit Benutzer­fre­undlichkeit wenig zu tun.


Und hier, beim Stich­wort last but not least find­en Sie noch einen Hin­weis, wo und wie Sie Antworten auf eventuelle Fra­gen oder auch die aus­gear­beit­ete Datei bekom­men kön­nen. Grundle­gen­des zum The­ma M-Code lesen Sie hier im Blog nach.

Dieser Beitrag wurde unter Allgemein, Verschiedenes, Daten zusammenführen, Filtern & Sortieren, Foren-Q&A, Join-Art, Power Query, PQ-Formeln (Sprache M), Rechnen / Berechnungen abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.