Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Bedingte Spalte in PQ mit WENN (Datum)

Forumthread: Bedingte Spalte in PQ mit WENN (Datum)

Bedingte Spalte in PQ mit WENN (Datum)
17.01.2026 14:49:53
Sandra
Hallo,

ich habe ein neues Problem,

bei einer Abfrage habe ich zwei Spalten:

Spalte A ist das Belegdatum der Rechnung
Spalte B ist teilweise null und teilweise ein Leistungs-Datum, welches kleiner ist als das Belegdatum

Ich möchte eine neue Spalte erzeugen, in der ich bei "null" in Spalte B (kein Leist.-Dat.) die Spalte A (Re-Dat.) ausgebe, ansonsten die Spalte B (Leist.-Dat.)
Meine Versuche habe ich in einer Beispieldatei dokumentiert. https://www.herber.de/bbs/user/180039.xlsx

Danke im Voraus.

VG
Sandra
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Probiere es mal...
17.01.2026 15:06:55
Case
Moin Sandra, :-)

... so: ;-)

let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
TypG = Table.TransformColumnTypes(Quelle,{{"Beleg-Dat.", type date}, {"Leist-Dat.", type date}}),
NeueS = Table.AddColumn(TypG, "Ergebnis-Dat.", each if [#"Leist-Dat."] = null then [#"Beleg-Dat."] else [#"Leist-Dat."], type date)
in
NeueS

Servus
Case
Anzeige
Oder auch...
17.01.2026 15:26:58
Case
Moin Sandra, :-)

... so: ;-)

let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
TypG = Table.TransformColumnTypes(Quelle,{{"Beleg-Dat.", type date}, {"Leist-Dat.", type date}}),
NeueS = Table.AddColumn(TypG, "Ergebnis-Dat.", each List.First(List.RemoveNulls({[#"Leist-Dat."], [#"Beleg-Dat."]})), type date)
in
NeueS


Und so: ;-)

let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
TypG = Table.TransformColumnTypes(Quelle,{{"Beleg-Dat.", type date}, {"Leist-Dat.", type date}}),
DatumS = List.Select(Table.ColumnNames(TypG), each Value.Type(Table.Column(TypG, _){0}) = type date),
Ergebnis = Table.AddColumn(TypG, "Ergebnis-Dat.", each List.First(List.RemoveNulls(Record.ToList(Record.SelectFields(_, DatumS)))), type date)
in
Ergebnis

Servus
Case
Anzeige
AW: Probiere es mal...
17.01.2026 16:54:20
Sandra
Hallo Case,

was bedeutet der Fehler: Expression.Error: Der Import "TypG" entspricht keinem Export. Dies ist möglicherweise auf einen fehlenden Modulverweis zurückzuführen.

Danke im Voraus.

VG
Sandra
In dem Fall...
17.01.2026 17:20:43
Case
Moin Sandra, :-)

... verweist du auf etwas, was nicht da ist. Hier mal meine Beispieldatei mit den 3 M-Codes: ;-)
https://www.herber.de/bbs/user/180041.xlsx

Nur tblErg_1 ist geladen. Die anderen beiden sind "Nur Verbindung". Aber du kannst sie dir anschauen. ;-)

Servus
Case
Anzeige
AW: Probiere es mal...
17.01.2026 19:31:26
Sandra
Hallo Case,

jetzt habe ich es endlich hinbekommen. Ich habe nur folgendes Problem. In der Ergebnisspalte steht das komplette Datum. In meiner Abfrageliste kann ich zwar das Format auf "JJJJ" ändern, damit ich eine Ganzzahl 2026 bekomme. Wir haben allerdings für jedes Jahr über bedingte Formatierung eine andere Farbe. Kann ich da in PQ auch irgendwie eine Ganzzahl draus machen?

VG
Sandra
Anzeige
Wenn du nur...
17.01.2026 19:54:54
Case
Moin Sandra, :-)

... das Jahr haben möchtest, dann so: ;-)

let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
TypG = Table.TransformColumnTypes(Quelle,{{"Beleg-Dat.", type date}, {"Leist-Dat.", type date}}),
NeueS = Table.AddColumn(TypG, "Ergebnis-Jahr", each if [#"Leist-Dat."] = null then Date.Year([#"Beleg-Dat."]) else Date.Year([#"Leist-Dat."]), Int64.Type)
in
NeueS

Servus
Case
Anzeige
AW: Wenn du nur...
17.01.2026 20:31:05
Sandra
Vielen Dank Case, hast mir super geholfen. Ich danke dir und verabschiede mich für heute.

VG
Sandra
AW: Wenn du nur...
18.01.2026 20:11:02
Luschi
Hallo Case.

per PQ-Coalesce-Operator ((doppeltes Fragezeichen ??) kann man If-Else-Verzweigungen vereinfachen, wenn der If-Zweig 'null' ergibt:
NeueS = Table.AddColumn(TypG, "Ergebnis-Jahr",  each [#"Leist-Dat."] ?? Date.Year([#"Leist-Dat."]), Int64.Type)

Gruß von Luschi
aus klein-Paris


Anzeige
Also den...
19.01.2026 11:52:12
Case
Moin, :-)

… "COALESCE Operator" kenne ich von hier: ;-)
https://gorilla.bi/power-query/coalesce/

Oder eher von hier: ;-)
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-coalescing-operator

Habe ihn am Anfang auch eingesetzt. Steigt man tiefer in PQ ein, lässt man ihn schnell wieder weg (zumindest ich). ;-)

Es ist ein sogenannter "dummer Operator" - er kennt keine Semantik - nur null. ;-)

Es kommt z. B. zu unerwartenden Ergebnissen, oder Fehlern, wenn auf beiden Seiten unterschiedliche Datentypen sind (wie hier - links date und rechts number). ;-)

Für Sandra also: ;.)
NeueS = Table.AddColumn(TypG, "Ergebnis-Jahr", each  Date.Year([#"Leist-Dat."] ?? [#"Beleg-Dat."]), Int64.Type)

Oder - um alles abzudecken würde ich "try - otherwise" nehmen. ;-)

Es ist wie in VBA. Alles einkürzen sieht nett aus - fällt einem eventuell aber auch schnell auf die Füße. ;-)

Mit deinem Vorschlag: ;-)
Userbild
Es soll aber: ;-)
Userbild

Servus
Case
Anzeige
Angenehmen Abend... :-) o.w.T.
17.01.2026 20:42:56
Case
:-)
AW: In dem Fall...
17.01.2026 18:03:37
Eifeljoi 5
Hallo

Dazu braucht man keine 3 separate Abfragen, eine einzige reicht vollkommen.
Ich stelle mir heute nur...
17.01.2026 18:49:24
Case
Moin, :-)

... eine Frage - so wie Erik der Rote (Eirik Raude) um 980: "Brauche ich Grö.....?" ;-)

Servus
Case
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18