Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
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

Power Query: Ersetzen - Wenn mit endet

Power Query: Ersetzen - Wenn mit endet
18.10.2022 12:15:27
Dennis
Hallo liebes Forum,
ich hänge gerade bei einem Problem in Power Query und komme nicht auf die Lösung.
In meiner Tabelle habe ich mehrere Spalten. Eine davon ist die Spalte "Artikel" in der Artikel mit "-2" enden. Ich möchte jetzt das in einer neuen Spalte bei diesen Artikeln ("-2) ein E eingetragen wird. Bei allen anderen soll der Wert der Spalte "Kategorie" genommen werden. Also eine IF Formel, welche ich leider nicht hinbekomme.
Könnt ihr mir helfen?
Vg Dennis

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eine Möglichkeit wäre ...
18.10.2022 12:36:47
neopa
Hallo Dennis,
... wenn Du es interaktiv realisieren möchtest mit einer Hilfsspalte, die Du anschließend gleich wieder löschst.
Dazu nutze die Funktion [Extrahieren ...] [letzte Zeichen] und zwar da eben für 2 für Deine Spalte "Artikel" in eine Spalte nennen wir sie z.B. "temp"
Dann füge eine benutzerdefinierte Spalte z.B. namens "neu" ei
n wie folgt ein:
= Table.AddColumn(#"Eingefügte letzte Zeichen", "neu", each if [temp]="-2" then "E" else [Kategorie])
und entferne dann "temp" wieder
Gruß Werner
.. , - ...
AW: eine Möglichkeit wäre ...
18.10.2022 13:20:38
Dennis
Hallo Werner,
vielen Dank für deine Antwort. Leider bekomme ich es nicht eingefügt. Habe daher jetzt mal die Datei mit angehangen.
https://www.herber.de/bbs/user/155728.xlsm
Anzeige
AW: gemäß meiner bisherigen Vorgabe ...
18.10.2022 14:20:46
neopa
Hallo Dennis,
... die gesamte Abfrage (mit der Hilfsspaltenlösung) so:

let
Quelle = Excel.CurrentWorkbook(){[Name="Basisdaten"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"HU", type text}, {"verpackte Menge", Int64.Type}, {"Artikel", type text}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ", "Benutzerdefiniert", each [Artikel]),
#"Eingefügte letzte Zeichen" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "temp", each Text.End([Benutzerdefiniert], 2), type text),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Eingefügte letzte Zeichen", "neu", each if [temp]="-2" then "E" else [Kategorie]),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte1",{"temp"})
in
#"Entfernte Spalten"
Gruß Werner
.. , - ...
Anzeige
AW: oder gesamte Abfrage eingekürzt ...
18.10.2022 14:30:25
neopa
Hallo
... mit Hilfe einer M-Code-Funktion zu:

let
Quelle = Excel.CurrentWorkbook(){[Name="Basisdaten"]}[Content],
neu = Table.AddColumn(Quelle, "neu", each if Text.End([Artikel],2)="-2" then "E" else [Kategorie])
in
neu
Gruß Werner
.. , - ...
AW: eine Möglichkeit wäre ...
18.10.2022 16:03:58
Yal
Hallo Dennis,
Power Query nimmt immer das Ergebnis der vorigen Schritt als Quelle für die jetzige.
Dementsprechend sollte es nicht

= Table.AddColumn(#"Eingefügte letzte Zeichen", "neu", each if [temp]="-2" then "E" else [Kategorie]) 
heissen, sondern

= Table.AddColumn(#"Umbenannte Spalte", "neu", each if [temp]="-2" then "E" else [Kategorie]) 
Im erweiterten Editor (EE) schaltet sich die Assistenz von PQ aus. Also wenn Du per Hand direkt im EE etwas vornimmst, musst Du für die Richtigkeit der Verkettung selber sorgen. Im Schritt vor "Umbenannte Spalte" heisst die Spalte noch nicht "temp" sondern "Letzte Zeichen".
Du kannst übrigens den Namen der entstehende Spalte direkt in der Schritt "Eingefügte letzte Zeichen" vornehmen (achte, dass die Bearbeitungsleiste sichtbar ist):
davor:

= Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Letzte Zeichen", each Text.End([Benutzerdefiniert], 2) , type text) 
danach:

= Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "temp", each Text.End([Benutzerdefiniert], 2) , type text) 
Du kannst auch beide Schritte zusammenführen:

= Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "neu", each if Text.End([Benutzerdefiniert], 2)  = "-2" then "E" else [Kategorie]) 
VG
Yal
Anzeige
AW: da stimmen wir beide überein :-) owT
18.10.2022 16:16:34
neopa
Gruß Werner
.. , - ...
AW: da stimmen wir beide überein :-) owT
18.10.2022 18:20:08
Yal
oh... jetzt als ich mir die Zeit nehme, dein gepostete M-Code en Detail zu schauen, sehen ich, dass alles schon drin ist. Sorry, für das Übersehen.
Jetzt fehlt nur noch die Rückmeldung des Fragenden, ob er mit unseren G'schwätz zurecht kommt.
VG
Yal

66 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige