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

In PQ Abfrage bestimmte Werte durch null ersetzen

Forumthread: In PQ Abfrage bestimmte Werte durch null ersetzen

In PQ Abfrage bestimmte Werte durch null ersetzen
12.09.2025 22:14:09
Christian
Hallo,

seht ihr eine Möglichkeit, alle unvollständigen Geburtstage aus der Liste zu löschen? Damit meine ich nicht filtern, sondern dass die Zeile in der Abfrage erhalten bleibt, nur das Datum entfernt wird.

dazu zählen Daten wo der Tag fehlt, z.b. Position 11, Daten wo nur der Jahrgang bekannt ist, z.b. Position 55, sowie Daten, in denen der Jahrgang fehlt, z.B. Position 67.

Danke für eure Hilfe
Christian

https://www.herber.de/bbs/user/178896.xlsx
https://www.herber.de/bbs/user/178897.zip (CSV Datei als Datenquelle für die Abfrage)
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 00:11:34
Eifeljoi 5
Hallo
So in etwa könnte der PQ Code lauten:
let in

Table.SelectRows(Table.RemoveColumns(Table.PromoteHeaders(Csv.Document(File.Contents("C:\Users\chris\Downloads\Leute1.csv"),
[Delimiter = ",", Columns = 8, Encoding = 65001, QuoteStyle = QuoteStyle.None]), [PromoteAllScalars = true]),
{"Created", "Modified", "Description", "Known For"}),each let in (if List.Count(List.Select(Text.Split(Text.Trim(
[Birth Date]), " "), each _ > "")) = 3 and (try Number.FromText(Text.Remove(List.Select(Text.Split(Text.Trim(
[Birth Date]), " "), each _ > ""){0},".")) otherwise null) > null and (try Number.FromText(List.Select(Text.Split
(Text.Trim([Birth Date]), " "), each _ > ""){2}) otherwise null) > null and (Text.Length(List.Select(Text.Split(
Text.Trim([Birth Date]), " "), each _ > ""){2}) = 4) then try Date.FromText(Text.Trim([Birth Date]), "de-DE") otherwise
null else null) > null)
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 08:07:38
Christian
Hallo Eifeljoi,

erstmal vielen Dank.
Das sieht schonmal gar nicht so schlecht aus. Zumindest werden keine der Personen mit unvollständigem Datum mehr angezeigt.
Aber ist es nicht möglich, weiterhin alle Personen anzuzeigen? Nur halt bei den weiteren Personen ohne Datum?

Danke
Christian
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 11:40:16
Eifeljoi 5
Hallo
Klar ist das auch möglich, es gibt sehr viele Dinge bzw. Wege die möglich sind.
Dann so:
let in

Table.TransformColumnTypes(Table.TransformColumns(Table.RemoveColumns(Table.PromoteHeaders(Csv.Document(File.Contents(
"C:\Users\chris\Downloads\Leute1.csv"),[Delimiter = ",", Columns = 8, Encoding = 65001, QuoteStyle = QuoteStyle.None]), [PromoteAllScalars
= true]),{"Created", "Modified", "Description", "Known For"}),{{"Birth Date",each let in ( if List.Count(List.Select(Text.Split
(Text.Trim(_), " "), each _ > "")) = 3 and (try Number.FromText(Text.Remove(List.Select(Text.Split(Text.Trim(_), " "), each
_ > ""){0},".")) otherwise null) > null and (try Number.FromText(List.Select(Text.Split(Text.Trim(_), " "), each _ > ""){2})
otherwise null) > null and (Text.Length(List.Select(Text.Split(Text.Trim(_), " "), each _ > ""){2}) = 4) then try Date.FromText
(Text.Trim(_), "de-DE") otherwise null else null),type date}}),{{"Position", Int64.Type}})
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 18:09:08
Christian
Hallo Eifeljoi,

vielen Dank.
Das die Zeilen erhalten bleiben sollen stand auch bereits in der Anfangsfrage. Aber es funktioniert soweit.
Mir war noch aufgefallen, dass es in den Originaldaten noch einen vierten Fall gibt, in dem 19?? geschrieben wurde, wenn ein Jahrgang unbekannt ist.
Aber auch eine gute Nachricht, diese Daten ebenfalls zu löschen, in dem ich sage lösche den Inhalt, wenn ein ? vorkommt, habe ich selber hinbekommen.

Vielen Dank und noch ein schönes Wochenende
Christian
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 22:44:16
Eifeljoi 5
Hallo
Oder auch eine andere Version so:
let in

Table.TransformColumns(Table.SelectColumns(Table.PromoteHeaders( Csv.Document(File.Contents("C:\Users\chris\Downloads\Leute1.csv"),
[Delimiter = ",", Columns = 8, Encoding = 65001, QuoteStyle = QuoteStyle.None]), [PromoteAllScalars = true]), {"Position", "Const",
"Name", "Birth Date"}), {"Birth Date", each let in if List.Count(Text.Split(Text.Combine(List.Select(Text.Split(Text.Trim(_), " "),
each _ > ""), " ")," ")) = 3 and Value.Is(Value.FromText(Text.Combine(List.Select(Text.Split(Text.Trim(_), " "), each _ > ""),
" ")), type date) then Text.Combine(List.Select(Text.Split(Text.Trim(_), " "), each _ > ""), " ") else null})
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 22:57:45
Christian
Hallo Eifeljoi,

funktioniert auch, danke
Christian
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 23:27:46
Luschi
Hallo Christian,

- da Eifeljoi noch nie auf meine Kritik an seinen verwurschtelten PQ-M-Code reagiert hat
- den kaum ein PQ-Otto-Normalverbraucher verstehen bzw. ändern! kann
- hier mal meine Übersetzung:
let

a_1 = Csv.Document(File.Contents("E:\Daten\Excel\PowerQuery\Datum\Pruefen.gueltiges.Datum\Leute1.csv"),
[Delimiter = ",", Columns = 8, Encoding = 65001, QuoteStyle = QuoteStyle.None]),
a_2 = Table.PromoteHeaders(a_1, [PromoteAllScalars = true]),
a_3 = Table.SelectColumns(a_2, {"Position", "Const", "Name", "Birth Date"}),
a_4 = Table.TransformColumns(a_3,
{"Birth Date", each
let
b_1 = Text.Combine(List.Select(Text.Split(Text.Trim(_), " "), each _ > ""), " "),
b_2 = if List.Count(Text.Split(b_1," ")) = 3 and Value.Is(Value.FromText(b_1), type date)
then b_1
else null
in b_2
})
in a_4
Gruß von Luschi
aus klein-Paris

PS: die nichtssagende PQ-Schrittnamen (a_1 bis a_4) legt mein C#-Übersetzungsprogramm für M-Code fest.
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
14.09.2025 10:25:33
Christian
Hallo Luschi,

muss ich jetzt verstehen, weshalb du C# einsetzt?
Auf jedenfalll funktioniert es, vielen Dank
Christian

AW: In PQ Abfrage bestimmte Werte durch null ersetzen
14.09.2025 19:24:47
Luschi
Hallo Christian,

ich glaube ja kaum, das Du mit dem PQ-M-Gewurschtel von Eifeljoi5 so richtig was anfangen kannst, denn Änderungen einfügen oder den Code zu verstehen ist fast unmöglich. Deshalb habe ich ein Toll geschrieben, der diesen M-Code automatisch entwurschtelt; und C# deshalb, weil ich damit umgehen kann.
Leider traut sich ja kaum ein PQ-Fragesteller, den Eifeljoi5 mit seinem PQ-M-Code beglückt, dies zu kritisieren. Da Eifeljoi aber auch ein gutes/tiefergehendes Wissen zu PQ-M besitzt, will ich natürlich wissen, das er da zusammengezimmert hat - deshalb dies Tool. Es wird die Endlos-Schlange von M-Code einfach zerplückt in Einzelschritte.
Und da zeigt sich, da es keinen Rückgriff auf vorhergehende PQ-Schritte gibt, vieles mehrfach gemacht werden muß. So z.B. wie in diesem M-Code gleich 2x an verschiedenen Stellen innerhalb des gleichen Abfrageschrittes: was für ein Unsinn: Text.Combine(List.Select(Text.Split(Text.Trim(_), " "), each _ > "")

Gruß von Luschi
aus klein-Paris
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 00:12:35
BoskoBiati
Hallo,

mal als Ansatz:
https://www.herber.de/bbs/user/178901.xlsx
Zeilen ohne Geburtsdatum haben den 1.1.1900 und unvollständige den Wert von heute-

Gruß

Edgar
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 08:15:45
Christian
Hallo Edgar,

erstmal vielen Dank,
leider stimmt da etwas nicht. Wenn ich alle im Filter alle Daten im Jahr 1900 und 2025 ausblende bleiben 1443 Zeilen übrig, aber sind 1503 Personen mit vollständigem Datum

Schaust du bitte nochmal?

Gruß
Christian



Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 18:17:21
Christian
Hallo Edgar,

hab deiner Datei meine Abfrage, die ich auf Grundlage von Eifeljois Vorschlag erstellt habe hinzugefügt, Quelle bleibt die CSV Datei die ich bereits geschickt habe.
Das es 1503 Personen sind, entnehme ich einer entsprechenden Auswertung in der IMDB Suche. Du kannst davon ausgehen, dass die Zahl 1503 korrekt ist.

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

Gruß und schonmal vielen Dank
Christian
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 18:54:33
Luschi
Hallo Christian,

- hier mal meine Variante zu Deinem Problem, um ein gültiges Datum festzustellen
- beachte, daß Pfad & Dateiname der csv-Datei im Parameter 'Param_01' festgelegt sind

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

Gruß von Luschi
aus klein-Paris


Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 22:00:17
Christian
Hallo Luschi, auch danke für deine Mühe.

Eine Unstimmigkeit habe ich leider gefunde, der Geburtstag von Position 2, 31.12.1994 fehlt in deiner Liste.

Ansonsten sieht alles perfekt aus.

Danke
Christian
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 22:27:34
Luschi
Hallo Christian,

Du mußt mit Strg+Alt+F5 die PQ-Abfrage aktualisieren. Ich hatte zum Testen das Datum von 31. Dezember 1994 auf 31. Dezember 19?? in der csv-Datei geändert, um auch diesen Fall zu überprüfen.

Gruß von Luschi
aus klein-Paris
Anzeige
AW: In PQ Abfrage bestimmte Werte durch null ersetzen
13.09.2025 22:32:28
Christian
Hallo Luschi,

sorry dass ich da nicht selbst drauf gekommen bin, jetzt funktioniert es.

Danke
Christian
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