Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Sprachabhängige Sortierung mit Power Query
#1
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 ...

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?
Ein Gedanke für diesen Beitrag ist auch folgender: ich finde, dass das Sortieren den gewohnten Regeln entsprechen sollte (also jetzt Excel)
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ß


Angehängte Dateien
.xlsx   Sortierung-DE.xlsx (Größe: 23,31 KB / Downloads: 5)
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
[-] Folgende(r) 1 Nutzer sagt Danke an maninweb für diesen Beitrag:
  • Jockel
Top
#2
Das ist sinnvoll.

Und bei den neuen dynamischen Funktionen, wozu ja auch SORTIEREN() gehört, um auf Dein Anliegen einzugehen, ...

OT:

... sollten generell zwei Schalter hinzu:

Feldbezeichner in Quelle enthalten oder nicht (=liegen darüber oder dort leer)
Feldbezeichner sollen ins Ziel (dann die darüber nehmen oder, falls leer, Spaltenbezeichner) oder nicht

Es ginge auch mit einem Schalter mit 4 Einstellungen (wie etwa bei ADRESSE()). Default könnte sein: Enthalten ja/ins Ziel ja.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#3
Hallo,

bin mir jetzt nicht ganz sicher, ob ich das richtig verstehe, was Du meinst. Kannst Du das etwas detaillierter erläutern?

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
Top
#4
Feldbezeichner sind die erste Zeile von Daten, die z.B. von Pivot-Tabellen benötigt werden, oder auch Auto- oder Spezialfilter. Letztere entfallen bei dynamischem Abbild, aber das dynamische Abbild ist sinnvoll für Pivot als Quelle.

Nun werden aber durch die dynamischen Funktionen (oft) keine Feldbezeichner geliefert.

Daher wäre schön, wenn die dynamische Funktion bei der Quelle

Feld1 Feld2 Feld3
A      B     C
D      E     F

definieren könnte, dass die Feldbezeichner a) enthalten sind oder nicht, und

dass sie b) am Ziel als solche unsortiert gleich oben stehen sollen oder nicht.

Dafür reicht eigentlich ein optionales Argument mit 2 * 2 = 4 Ausprägungen aus. Wird es nicht verwendet, sollte die Default-Annahme 

a) ist enthalten b) soll oben stehen

sein.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#5
Moin!
Ich schließe mich LCohen an.
Was man ja auch an meiner "schnodderigen" Antwort im folgenden Thread ansieht:
http://www.office-loesung.de/p/viewtopic.php?f=166&t=840857

Zitat daraus:

Zitat:Es scheint, als ob die Macher von Excel an der uralten Tradition (bekannt aus dem Spezial-Filter oder auch dem Konvolut der DB-Funktionen) an der Vorgehensweise festhalten, dass die Feldbezeichner gefälligst per C&P vorher erstellt werden müssen.

Schließlich dürfte es (meiner bescheidenen Meinung nach) ein Leichtes sein, den besagten Funktionen ein zusätzliches Argument "enthält Überschrift" zu gönnen.
(geht ja schließlich auch bei Strg+t)

Nicht ernst gemeint:
Wo bleibt Mourad, wenn man ihn mal braucht?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
Hallo,

vielen Dank, jetzt ist's für mich klarer. Das wurde von (anderen) MVPs dem Excel Team bereits vorgeschlagen.
Ob das allerdings umgesetzt wird bzw. werden kann und falls ja, wann und wie, weiss ich derzeit leider nicht.

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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste