Widerspenstige Leerzeichen

Leerzeichen sind keine Leerzeichen

Excel, alle Ver­sio­nen

Die Über­schrift mag Sie etwas ver­wirren. Leerze­ichen sind doch ganz klar definiert und auch ein­deutig zu sehen. Oder doch nicht? Nein, nicht alles, was wie ein Leerze­ichen aussieht, ist auch ein solch­es. Es gibt auch noch soge­nan­nte „Geschützte Leerze­ichen”, die Sie vielle­icht von der Textver­ar­beitung her ken­nen (mit Strg+Shift+Leer­schritt erzeugt). Manch ein Pro­gramm aus der Welt der „großen” Rechenan­la­gen erstellt unter gewis­sen Bedin­gun­gen genau diese Leerze­ichen, ins­beson­dere zu Beginn eines Feldes (ein­er Zelle). Der Unter­schied an sich ist nicht sicht­bar. Wenn Sie allerd­ings diese Leer­räume auto­ma­ti­siert ent­fer­nen wollen, dann wer­den Sie bei den Funk­tio­nen GLÄTTEN() und SÄUBERN() schnell die Gren­zen find­en. Die sind ein­fach wider­spen­stig und lassen sich so nicht ent­fer­nen. Glei­ches gilt für Suchvorgänge, wenn inner­halb eines Textes solche speziellen Leer­räume auftreten.

Ich habe Ihnen hier eine kleine Beispiel­d­atei bere­it gestellt, wo zwei Texte mit Stan­dard-Leer­ze­ichen erstellt sind und zwei weit­ere mit dem geschützten Leerze­ichen. Wie bere­its erwäh­nt, optisch ist kein Unter­schied erkennbar.Und damit Sie etwas exper­i­men­tieren kön­nen, habe ich auch noch gle­ich eine Kopie des Tabel­len­blattes ange­fügt.

Wenn Sie jet­zt ver­suchen mit (beispiel­sweise) StrgH ein Leerze­ichen mit „nichts” zu erset­zen, dann wer­den Sie rasch sehen, dass das nicht zum Erfolg führt. In erster Lin­ie stört es ja, dass auch die Leerze­ichen zwis­chen den Worten erset­zt wer­den. Der näch­ste Ver­such sollte dann sein, nur ein führen­des Leerze­ichen zu erset­zen. Das haut auch immer dann hin, wenn das erste Zeichen ein ganz „nor­males” Leerze­ichen ist.

Hin­weis: Da in der Beispiel-Tabelle die Zeile 1 mit Über­schrif­ten verse­hen ist, wird dort stets in Zeile 2 begonnen und die Formeln sind entsprechend angepasst:

=WENN(LINKS(A1; 1) = " "; ERSETZEN(A1; 1; 1; ""); A1)

Solche Phänomene haben schon manch einen User zur Verzwei­flung getrieben, wenn es einige hun­dert Daten­sätze sind, die dann per Hand geän­dert wer­den müssen. Es bleibt die Frage, wie Sie erken­nen kön­nen, ob es nun um ein typ­is­ches Leerze­ichen han­delt oder um ein anderes Kon­strukt. Den Weg zum Ziel erken­nen Sie in dieser Tabelle. Spalte B ist eigent­lich über­flüs­sig, sie dient nur der Demon­stra­tion, dass da keine Tricks im Spiel sind. B6 ist solch eine „Gemein­heit”, wo die Schrift­farbe des ersten Zeichens ein­fach auf weiß geset­zt wor­den ist.

In Spalte C wird ein­fach nur über­prüft, ob das betrof­fene Zeichen ein nor­males Leer­zei­chen ist oder nicht. Das Ergeb­nis ist dann WAHR oder FALSCH. Das kann im ersten Schritt ein­er Kon­trolle ganz hil­fre­ich sein und den klaren Hin­weis liefern, dass die Formel aus der fol­gen­den Spalte zum Ein­satz kom­men sollte.

Spalte D liefert nun ein­deutige Ergeb­nisse. Nur ein Zeichen mit der Code-Num­mer 32 ist ein echt­es Leerze­ichen, alles andere ist eben kein „nor­males” Leerze­ichen und kann nicht ohne Hin­ter­grund­wis­sen mit den gängi­gen Bor­d­mit­teln erset­zt wer­den. Wenn Sie aber erken­nen, dass es sich um das Zeichen 160 han­delt, dann kön­nen Sei sehr wohl automa­tisiert die Erset­zun­gen vornehmen. Beispiel­sweise so:

=WENN(LINKS(A1; 1) = ZEICHEN(160); ERSETZEN(A1; 1; 1;""); A1) 

Das reicht vol­lkom­men aus, wenn Sie auss­chließlich diese führen­den geschützten Leerze­ichen in der Tabelle haben. Wenn Sie ganz sich­er gehen wollen, weil vielle­icht auch nor­male führende Leerze­ichen erset­zt wer­den sollen,dann ver­wen­den Sie beispiel­sweise diese Formel:

=WENN(ODER(LINKS(A1; 1) = ZEICHEN(32); LINKS(A1; 1) = ZEICHEN(160)); ERSETZEN(A1; 1; 1; ""); A1) 

Alle Beispiele sind in dieser Datei aufge­führt. Prinzip­iell soll­ten so alle Leerze­ichen-Prob­leme zu lösen sein. Wenn es auch um Leerze­ichen am Ende eines Textes geht, kön­nen Sie auch alle geschützten Leerze­ichen durch ein nor­males Leerze­ichen (Zeichen(32) oder " ") erset­zen und dann die Funk­tion GLÄTTEN() (siehe auch hier) ver­wen­den. Und wenn Sie immer noch Prob­leme haben, wen­den Sie sich ver­trauensvoll an uns.

Es gibt aber dur­chaus Sit­u­a­tio­nen, wo der umgekehrte Weg sin­nvoll ist. Wenn Sie beispiel­sweise für die Funk­tion­al­ität Text in Spal­ten zwei durch ein nor­males Leerze­ichen getren­nte Worte, welche aber einen logis­chen Begriff bilden zusam­men­hal­ten wollen, dann ist der umgekehrte Weg vielfach sin­nvoll. Wie das dann geht, kön­nen Sie hier im Blog nach­le­sen.

[NachOben­Let­zte Verweis=„T&T: Wider­spen­stige Leerze­ichen”]
Dieser Beitrag wurde unter Excel-Funktionen, Ohne Makro/VBA, Tabelle und Zelle, Text, Tipps und Tricks abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.