(Forum) Meist-Zahlender und „wenn Duplikat dann …“

Quelle: https://www.herber.de/cgi-bin/eachthread.pl?idx=1988981
Stand: 23.08.2024 18:45

Ide­al­er­weise zitiere ich ein­mal den Eröff­nungs­beitrag und gle­ich an dieser Stelle mein ab und zu ein­mal erwäh­n­ter Ein­wand: „Wer lesen kann, ist klar im Vorteil!“:

Hal­lo zusam­menIch bin wieder mal auf eure Hil­fe angewiesen.

Ich habe eine Liste mit mehreren Objek­ten. Einige Objek­te haben mehrere Mieter. Ich möchte nun jedem Objekt den Mieter mit der höch­sten Miete zuord­nen. Wenn die Mieten alle gle­ich hoch sind soll ein „?” kom­men. Kann mir bitte dafür jemand eine Formel entwer­fen? Bitte beachtet die Beispiel­d­atei.

https://www.herber.de/bbs/user/171770.xlsx

Her­zlichen Dank!
Andreas

Da es in diesem Forum nicht immer ganz leicht ist, aus alte Beiträge zuzu­greifen, kön­nen Sie mich um die oben ver­Link­te Datei bit­ten, ich sende Ihnen diese dann per E‑Mail zu.

Im Forum-Thread sind ver­schiedene Lösungsan­sätze aufgezeigt wor­den, haupt­säch­lich per Piv­ot­Table. Allerd­ings habe die Helfer den Satz „Wenn die Mieten alle gle­ich hoch sind soll ein „?” kom­men.“ Verse­hentlich oder „geflissentlich“ über­lesen. 😉 Und zugegeben, ich musste auch den einen oder anderen Anlauf machen, um das gewün­schte Ergeb­nis zu erre­ichen. Hier zuerst ein Screen­shot mein­er Arbeit­sumge­bung und anschließend der M-Code für meine Inter­pre­ta­tion des Wun­sches:

Die Orig­i­nal-Dat­en nach dem Import in den PQ-Edi­tor und Erstellen des Dup­likats

Der Code für Tabelle1


let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Objekt", Int64.Type}, {"Mieter", type text}, {"Miete", Int64.Type}}),
    #"Hinzugefügter Index" = Table.AddIndexColumn(#"Geänderter Typ", "Index", 0, 1, Int64.Type)
in
    #"Hinzugefügter Index"

Der Code für Tabelle1 (2)


let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Objekt", Int64.Type}, {"Mieter", type text}, {"Miete", Int64.Type}}),
    #"Hinzugefügter Index" = Table.AddIndexColumn(#"Geänderter Typ", "Index", 0, 1, Int64.Type),
    // Maximum filtern
    #"Gruppierte Zeilen" = Table.Group(#"Hinzugefügter Index", {"Objekt"}, {{"MaxMiete", each List.Max([Miete]), type nullable number}}),
    #"Zusammengeführte Abfragen" = Table.NestedJoin(#"Gruppierte Zeilen", {"Objekt", "MaxMiete"}, Tabelle1, {"Objekt", "Miete"}, "Tabelle1", JoinKind.LeftOuter),
    #"Erweiterte Tabelle1" = Table.ExpandTableColumn(#"Zusammengeführte Abfragen", "Tabelle1", {"Mieter", "Index"}, {"Mieter", "Index"}),
    #"Sortierte Zeilen" = Table.Sort(#"Erweiterte Tabelle1",{{"Objekt", Order.Ascending}}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Sortierte Zeilen",{"Index"}),
    #"Gruppierte Zeilen1" = Table.Group(#"Entfernte Spalten", {"Objekt"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}, {"Mieter", each List.Max([Mieter]), type nullable text}}),
    // Auf Basis der Anzahl: Mieter-Name oder Fragezeichen hinzufügen
    #"Hinzugefügte bedingte Spalte" = Table.AddColumn(#"Gruppierte Zeilen1", "Benutzerdefiniert", each if [Anzahl] = 1 then [Mieter] else "?"),
    #"Entfernte Spalten1" = Table.RemoveColumns(#"Hinzugefügte bedingte Spalte",{"Anzahl", "Mieter"}),
    #"Umbenannte Spalten" = Table.RenameColumns(#"Entfernte Spalten1",{{"Benutzerdefiniert", "Zugeordneter Mieter"}})
in
    #"Umbenannte Spalten"

Anhand der automa­tisch vergebe­nen Abfrage-Namen wer­den Sie erken­nen, dass die zweite Abfrage eine per Duplizieren erzeugte Query ist, was auch die ersten iden­tis­chen Zeilen erk­lärt. Hier mein Ergeb­nis, in Excel einge­fügt:

Das PQ-Ergeb­nis mein­er Inter­pre­ta­tion


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 Filtern & Sortieren, Power Query, PQ-Formeln (Sprache M), Rechnen / Berechnungen abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.