11.07.2020, 17:59
Hallo zusammen,
in der Regel sortiere ich in PowerQuery Zahlen bzw. Indizes. Bislang war mir noch gar nicht aufgefallen, dass Power Query deutsche Texte
nicht nach den üblichen Regeln wie z.B. in Excel sortiert, sondern anders. Somit landet Überlingen nach Zwickau. Das ist nicht hilfreich.
Ich habe bislang keine Methode gefunden, das Sortieren nach deutschen Regeln nur per Oberfläche von PQ zu bewerkstelligen.
Dabei sollte eine Sortierung erhalten bleiben, egal welche Sprache ich verwende.
Also habe ich mir mal Table.Sort genauer angeschaut. Das Argument comparisonCriteria ist ziemlich dürftig dokumentiert und auch im Web
ist ziemlich wenig dazu zu finden. Mithilfe eines Beitrags von Chris Webb und den dortigen Kommentaren, habe ich eine Lösung gefunden,
die aber sehr wahrscheinlich nicht optimal ist. Zu finden in der Datei anbei. Hier der Code ...
Eine Funktion mit dem Namen SortByCulture ...
Anwenden der Funktion in einer Abfrage ...
Meine Fragen:
und dies über die Oberfläche machbar sein sollte. Hier würde ich z.B. für ein Argument bzw. eine Auswahlmöglichkeit im Editor plädieren,
wo der User angeben kann, dass nach Sprachregeln sortiert werden soll oder nicht (Standard). Wenn ihr das auch so seht, würde ich das
dem Excel-Team vorschlagen.
Gruß
in der Regel sortiere ich in PowerQuery Zahlen bzw. Indizes. Bislang war mir noch gar nicht aufgefallen, dass Power Query deutsche Texte
nicht nach den üblichen Regeln wie z.B. in Excel sortiert, sondern anders. Somit landet Überlingen nach Zwickau. Das ist nicht hilfreich.
Ich habe bislang keine Methode gefunden, das Sortieren nach deutschen Regeln nur per Oberfläche von PQ zu bewerkstelligen.
Dabei sollte eine Sortierung erhalten bleiben, egal welche Sprache ich verwende.
Also habe ich mir mal Table.Sort genauer angeschaut. Das Argument comparisonCriteria ist ziemlich dürftig dokumentiert und auch im Web
ist ziemlich wenig dazu zu finden. Mithilfe eines Beitrags von Chris Webb und den dortigen Kommentaren, habe ich eine Lösung gefunden,
die aber sehr wahrscheinlich nicht optimal ist. Zu finden in der Datei anbei. Hier der Code ...
Eine Funktion mit dem Namen SortByCulture ...
Code:
(Source as table, Column as text, Culture as text) => let
Result = List.Sort(Table.Column(Source,Column),Comparer.FromCulture(Culture))
in
Result
Anwenden der Funktion in einer Abfrage ...
Code:
let
Source = Excel.CurrentWorkbook(){[Name="Cities"]}[Content],
Result = Table.Sort(Source, each List.PositionOf(SortByCulture(Source, "City", "de-DE"),[City]))
in
Result
Meine Fragen:
- Kennt jemand eine bessere Lösung?
- Geht's vielleicht doch nicht über die UI?
- Kennt jemand Doku zu comparisonCriteria?
und dies über die Oberfläche machbar sein sollte. Hier würde ich z.B. für ein Argument bzw. eine Auswahlmöglichkeit im Editor plädieren,
wo der User angeben kann, dass nach Sprachregeln sortiert werden soll oder nicht (Standard). Wenn ihr das auch so seht, würde ich das
dem Excel-Team vorschlagen.
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner