Tag Archives: sichtbar

Lass uns heute Weihnachten feiern – was weg ist, ist weg!

Das Thema „Datentypen“ in Excel beschäftigt mich weiterhin. Zuallererst mein Bedauern darüber, dass die Symbole – genauer – die Gruppe verschwindet. Aber wann?

Wie ich bereits geschrieben habe: wenn keine Internetverbindung vorliegt.

Aber auch in folgendem Fall: Datentypen sind da:

Ich melde mich von meinem Konto ab:

Datentypen sind weg!

Und: ich vermute, dass noch viele weitere Faktoren eine Rolle spielen, ob die Gruppe sichtbar oder unsichtbar ist …

Ich hab doch gesagt, ich mach’s. Da muss ich nicht vierteljährlich dran erinnert werden …

Ich habe meine Verwunderung darüber ausgedrückt, dass PowerQuery (ein Werkzeug, das ich wirklich schätze und das sehr stark und mächtig ist), nicht druckbare Zeichen nicht darstellt. Das rief Kritik auf den Plan. Von vorne. Gegeben sei eine Tabelle, die von einem anderen System geliefert wurde, in denen nicht druckbare Zeichen vorhanden sind:

Die Funktionen CODE und ZEICHEN, TEIL und WECHSELN helfen in Excel beim Säubern, beziehungsweise beim Trennen der Daten.

Ziehe ich die Daten nun nach Power Query, so mein Erstaunen, werden diese Zeichen dort nicht angezeigt. Auch der Assistent „Spalten teilen“ biete keine Option für „nicht druckbare Zeichen“. Beim Zurückspielen nach Excel sind diese Zeichen wieder vorhanden (sie wurden ja nie gelöscht):

Als ich etwas leichtfertig und zugegebenermaßen nicht ganz korrekt, gepostet habe, dass PQ das nicht kann, rief ich Kritik auf den Plan:

„Hallo René,
ich hoffe es geht Dir gut. Ich weiß zwar nicht genau, was Du mit nichtdruckbaren Zeichen im Detail in Excel machst, aber ich bin mir ziemlich sicher, dass das – entgegen Deiner Bemerkung – auch mit Power Query geht“

„Das ruft den Experten auf den Plan, wenn ich behaupte, dass das nicht mit PQ geht …
Hallo Lars,
es gibt Systeme, die liefern in Excel oder Textdateien nicht-druckbare Zeichen (die dort – in anderen Systemen – als Trennzeichen definiert sind)
Mit ist aufgefallen, dass PQ diese nicht anzeigt – aber – wenn ich die transformierte Datei wieder zurückspiele – diese Zeichen wieder drin sind.
schau mal; probier mal – korrigiere mich – lasse ich gerne!“

„Was Power Query nicht alles kann:

Als Hintergrund: Wenn Du die Daten in Power Query lädst, dann sind die nicht druckbaren Sonderzeichen zwar nicht (ohne weitere Arbeit) sichtbar, aber sie sind vorhanden und man kann sich „um sie kümmern“
Ich denke, dass ich dazu mal einen Blogbeitrag schreiben werde. Danke für die Datei und diese Herausforderung“

„Hallo Lars,
ja – DAS kann ich auch:

let

    Source = Excel.CurrentWorkbook(){[Name=“Tabelle1″]}[Content],

    #“Changed Type“ = Table.TransformColumnTypes(Source,{{„Name“, type text}}),

    #“Name getrennt“ = Table.AddColumn(#“Changed Type“, „Name getrennt“, each Text.Replace([Name],Character.FromNumber(7),“|“))

in

    #“Name getrennt“

Ich hätte es schön gefunden, wenn das mächtige Power Query in seinem Assistenten „Spalte teilen“ eine Option dafür gehabt hätte …“

„Hi Rene,

okay, aber in Excel benutzt Du dafür doch auch Formeln, wieso ist das für PQ dann nicht erlaubt? Die Engine hat die Fähigkeiten, aber das Dev Team hat über die GUI eben noch keinen Befehl bereitgestellt. 

Aus Deinem Post hatte ich verstanden, dass es gar nicht geht, nicht, dass es nicht über die GUI geht.  Das finde ich nicht besonders schlimm.“

„Okay, Lars, du hast gewonnen.
Ich habe den Satz korrigiert:
„Übrigens: bedauerlicherweise kann man dies nicht mit Power Query mit den „Hausmitteln“ trennen – man benötigt hier einige Zeilen M.“
Ich war verblüfft, dass die nicht druckbaren Zeichen nicht angezeigt werden, aber (und das ist eigentlich auch vernünftig) nicht gelöscht werden.
Ich hätte mir in dem (sehr viel mächtigeren Assistenten als in Excel) „Spalten teilen“ eine Option gewünscht, wo man Character.FromNumber() (oder ähnliches) eintragen kann.
Tja. Liebe Grüße Rene“

„Meine Funktion tut genau das… Ich habe sie recht schnell entworfen, daher muss der ReplacerText auch als Unicode-Zeichen (also als Nummer) eingegeben werden, anstatt als Text… könnte man alles noch verbessern, aber sie tut bisher, was sie soll…

(TextMitNonPrintables as text, optional ReplacerText as number) as text =>

let

/*

   TextMitNonPrintables = „Lars “ & Character.FromNumber(7) &“Schreiber“,

   ReplacerText = null,

*/

    //Falls der ReplacerText nicht mit übergeben wurde, setze ihn aufs Leerzeichen

    RepText = if ReplacerText = null then 32 else ReplacerText,

    //Nicht druckbare Unicode-Zeichen als Liste definieren…

    NichtDrurckbareZeichenUnicode = {0..31},

  //Nicht-druckbare Unicode-Zeichen durch den ReplacerText ersetzen…

    TextAsList = List.Transform(

            Text.ToList(TextMitNonPrintables),

            each Character.FromNumber(

                if List.Contains(NichtDrurckbareZeichenUnicode, Character.ToNumber(_)) then

                  RepText

                else

                Character.ToNumber(_)

                )

                ),

      //Text-Liste wieder in Worte zusammensetzen und um unnötige Leerzeichen bereinigen!

      Output = Text.Trim(

        Text.Combine(TextAsList

        )

        ) 

in

    Output

Lars Schreiber