Tag Archives: trennen

Laut ADAC sind 11 Winterreifen gut. Nach meiner Erfahrung sage ich: 4 genügen!

Guten Morgen,

also, es geht um die Funktion „Text in Spalten“. War eigentlich eine Frage eines Kollegen, die ich selbst nicht beantworten konnte.

Ich habe eine CSV-Datei, in der die Werte auch wirklich durch Kommas getrennt sind:

Jetzt ist es so, dass auch innerhalb der Texte, die zu Zellinhalten werden sollen, Kommas drin sind, wie z.B. in Zeilen 1 und 2. Wenn ich jetzt „Text in Spalten“ mit der Option „Getrennt“ auswähle, dann packt Excel natürlich den Teil rechts vom Komma in eine neue Zelle:

Gibt’s ne Möglichkeit, das mit „Text in Spalten“ sauber zu trennen? Mit PowerQuery krieg ich es hin, also saubere Trennung + korrektes Anzeigen von Umlauten, ich frag mich nur, ob das „Text in Spalten“ nicht auch irgendwie kann.

Danke dir und viele Grüße, Dominic

####

Hallo Dominic,

ich denke die Frage hast du schon selbst beantwortet:

* PowerQuery

* VBA

* Formeln (uff!)

Wenn der Anwender Zeichen in seinen Texten verwendet, die als Trennzeichen vorgesehen sind; kann der Assistent Daten / Text in Spalten das nicht abfangen. Wie wir wissen: die Grenzen von „Text in Spalten“ wurden ja in PowerQuery erweitert – da geht mehr …

Liebe Grüße

Rene

PS: Man könnte die Blitzvorschau versuchen; ist aber mühsam und wahrscheinlich funktioniert auch das nicht.

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

Wer schläft, sündigt nicht! Wer sündigt, schläft aber besser!

Hallo Herr Martin,

in einem Herdt-Video sah ich, wenn auch darin Folgendes nicht erklärt wurde, eine Alternative für eine Blitzvorschau für Benutzer von Excel 2010.

Diese Funktionen bringen das erwünschte Ziel. Ich gebe aber gern zu, daß ich mir den Aufbau logisch nicht erklären kann. Also würde mich jemand fragen, warum der Aufbau dieser Funktionen genau so und nicht anders sein muß, wüßte ich keine Erklärung.

Hätten Sie eine Idee, wie man den Aufbau dieser Funktionen erklären kann?

Hier die Funktionen:

Hallo Herr Fleming,

 

die Screenshot zeigen Textfunktionen, also Formeln, die Sie in der Kategorie TEXT finden.

Die Blitzvorschau ist keine Funktion, sondern ein Feature, ein Add-In, eine Hilfe von Excel. Wenn Sie Texte trennen möchten, tragen Sie den ersten teil ein. Sobald Sie in der Zelle darunter einen weiteren Teil eintragen, wird die Liste vervollständigt und kann mit [Enter] beendet werden:

schöne Grüße

Rene Martin

PS: All diese Dinge finden sich auch im Internet. Ich empfehle Ihnen so etwas vorher zu googeln, da ich täglich unentgeltlich ein bis zwei Stunden Mails beantworte von Leuten, die mir Fragen stellen, deren Antworten man auch leicht über eine Suchmaschine herausfinden kann.

Soll ich nur tun oder sogar als ob?

Amüsant: Ich verwende den Assistenten Daten / Text in Spalten, um die Postleitzahl vom Ort zu trennen. Die erste Zeile – Frankfurt am Main habe ich vergessen:

Die Daten wurden getrennt - nur einer nicht.

Die Daten wurden getrennt – nur einer nicht.

Kein Problem: Doppelklick auf die Zelle, Ortsnamen markieren und ausschneiden:

20161208datentextinspalten02

Jedoch beim Einfügen bin ich verblüfft: Excel hat sich den Assistenten gemerkt und trennt diesen Text:

20161208datentextinspalten03

Eh! – Das will ich nicht!