Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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) :: 01/2011 - 06/2019 :: 04/2020 - 06/2021
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
[-] Folgende(r) 1 Benutzer sagt Danke an maninweb für diesen Beitrag:
  • Jockel
Antwortento 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.
Antwortento 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) :: 01/2011 - 06/2019 :: 04/2020 - 06/2021
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Antwortento 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.
Antwortento 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)
Antwortento 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) :: 01/2011 - 06/2019 :: 04/2020 - 06/2021
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Antwortento top


Gehe zu:


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