Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

GLÄTTEN funktioniert nicht

Forumthread: GLÄTTEN funktioniert nicht

GLÄTTEN funktioniert nicht
26.08.2019 19:06:36
KlausFz
Hallo Excelenzen,
bin heute in einer Riesendatei über das - bei mir - nicht funktionierende GLÄTTEN gestolpert. Die Leerzeichen sind echte, d.h. Code=32.
Habe natürlich erst mal Archiv+Googel befragt.
Dort wurde das Thema schon x-mal abgearbeitet, aber neben der Ersatzlösung
mit WECHSELN habe ich keine Erklärung gefunden, warum in diesem Fall GLÄTTEN
nicht funzt.
Ich hab eine Demo-Tabelle angefertigt:
https://www.herber.de/bbs/user/131633.xlsx
Liegt das an der Version 2013, oder doch an mir? ;-)))
Besten Dank im Voraus
Gruß!
Klaus
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: jedoch in XL2010 ohne Probleme! owT
26.08.2019 19:16:54
neopa
Gruß Werner
.. , - ...
AW: jedoch in XL2010 ohne Probleme! owT
26.08.2019 19:54:56
KlausFz
Danke für die Kontrolle in der 2010-Version, Werner!
Aber mein Problem ist damit nicht erklärt.
Trotzdem: Danke!
AW: ein Leerzeichen zwischen 2 Zeichen ...
26.08.2019 21:02:17
neopa
Hallo Klaus,
... kann auch nicht in Excel2010 mittels GLÄTTEN() entfernt werden, dass hatte ich auch nicht mit meiner Aussage gemeint.
Das Du das aber gemeint hast, ist mir erst jetzt nach dem Lesen der Beiträge von Luschi und Luc klar geworden.
Gruß Werner
.. , - ...
Anzeige
AW: GLÄTTEN funktioniert nicht
26.08.2019 19:22:28
Luschi
Hallo Klaus,
=GLÄTTEN("   Gewinn    im   ersten    Quartal    ") gibt als Ergebanis aus: Gewinn im ersten Quartal
Die vorderen und hinteren Leerzeichen werden komplett entfernt, in der Mitte bleibt aber mindesten 1 Leerzeichen je Gruppe übrig.
Bei Dir wird aus der Formel mit den mittleren Leerzeichen ein Gesamtstring erstellt und dann getrimmt nach dem o.g.Muster, so wie es in der Excel-Hilfe steht.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: GLÄTTEN funktioniert nicht
26.08.2019 20:01:51
KlausFz
Hallo Klein-Pariser ;-)))
meine Riesendatei hat unter 2003 mit GLÄTTEN problemlos gefunzt. Alle Leerzeichen wurden entfernt!
Nun muss ich sie überarbeiten, Excel ist mittlerweile 2013 und nix funzt mehr so wie früher.
Da kriegt man schon einen dicken Hals.
Ich löse das Problem nun durch Umstellung mittels WECHSELN. Ist aber ganz schön aufwendig bei der Tabelle.
Aber mich würde schon interessieren, ob andere auch das Prob mit 2013 haben, oder ob es doch irgendwie
an meiner Umgebung liegt.
Danke!
Klaus
Anzeige
Nicht glaubhaft!
26.08.2019 20:32:27
Luc:-?
MW hat GLÄTTEN schon immer so fktioniert, wie von Luschi beschrieben und es auch in der Xl-Hilfe steht, Klaus;
wenn es tatsächlich früher bei dir anders gewesen sein sollte, hast du ggf bisher (unwissentlich) ein überarbeitetes GLÄTTEN als UDF benutzt, das früher das eigentl GLÄTTEN ersetzen konnte. Evtl stand das auch in einem AddIn, das nun fehlt.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Nicht glaubhaft!
26.08.2019 21:07:44
KlausFz
Hallo Luc,
Deine Vermutung mit UDF/AddInn könnte stimmen. Hatten davon einiges an Bord.
Kann es leider nicht mehr prüfen, war damals auf Arbeit.
Bin jetzt Unruheständler mit anderem System zu Hause. Und in der Firma
gibts ohnehin das neueste.
Also werd' ich doch mit Wechseln arbeiten.
Danke Dir!
Klaus
Anzeige
WECHSELN vs. GLÄTTEN
26.08.2019 21:32:48
{Boris}
Hi,
das sind 2 komplett verschiedene Dinge.
GLÄTTEN entfernt überflüssige Leerzeichen. Mit WECHSELN hingegen kannst Du beliebige Zeichen austauschen - eben auch gegen nix. Damit sind in Deinem Beispiel aber ALLE Leerzeichen weg.
VG Boris
AW: WECHSELN vs. GLÄTTEN
27.08.2019 09:13:21
KlausFz
Hallo Boris,
alle Leerzeichen entfernen war auch das Ziel!
Hatte früher ja auch geklappt.
Offensichtlich habe ich das Glätten damals genutzt, ohne mir
genau die Excel-Hilfe dazu anzuschauen - hatte ja alles gepasst.
Egal wie nun, mit Wechseln löse ich jetzt das Problem in dieser
(veralteten) Datei.
Danke!
Klaus
Anzeige
AW: WECHSELN vs. GLÄTTEN
27.08.2019 11:10:09
Luschi
Hallo Excel-Fan's,
da fällt mir nur der Film ein: 'Denn sie wissen nicht was sie tun' - aber sie tun's und kümmern sich nicht darum, was da eigentlich passiert!
Guß von Luschi
aus klein-Paris
PS: auch in Excel-XP & Excel-2003 hatte 'GLÄTTEN()' schon immer die Eigenschaft, daß bei mehreren Leerzeichen hintereinander inmitten des Textes 1 Leerzeichen übrig bleibt!
Anzeige
Kann mich dunkel erinnern, ...
27.08.2019 14:58:24
Luc:-?
…Luschi & all,
dass es in den alten Xl-Versionen (mind bis Xl9/2k) möglich war, eine Standard-Fkt durch eine gleichnamige UDF zu ersetzen. Zumin­dest wurde das mal in der Hilfe erwähnt und es gab auch etliche Versuche, Standard-Xl-Fktt „aufzubohren“ (im sehr frühen Ol-Xl gab's zumindest mal einen konzertierten Nachprogrammier­Versuch, der aber über den Ansatz nicht hinauskam).
In den neuen XlVersionen haben bei gleichen Namen aber anscheinend stets die Standard-Fktt Vorrang. Aber man könnte natürlich eine UDF (unter anderem Namen!) schreiben, die so etwas realisiert, aber dann natürlich eher etwas universeller, ggf als Kombi von GLÄTTEN und SÄUBERN mit/ohne Trennzeichen.
Gruß, Luc :-?
Anzeige
Die angedeutete Idee, auf die mich das gebracht …
28.08.2019 14:01:55
Luc:-?
…hat, habe ich inzwischen mal umgesetzt:
Rem Reduziert Texte um alle Zeichen (außer Ziffern),
'   die keine Groß/Klein-Varianten haben, sofern sie
'   nicht unter Arg3 aufgeführt wdn, bzw ersetzt sie
'   (auch ZchFolgen) durch 1 einzelnes Zchn lt Arg2,
'   am TextAnfang u. -ende entfallen sie aber stets;
'   Arg1 kann auch ein Bereich or Datenfeld (ggf aus
'   Ausdruck) sein (zell/elementweise Verarbeitung).
'   Hinws: In Arg3 kombind diakritZch separat angeb!
'   Vs1.0 -LSr -cd:20190828 -1pub: 20190828h -lupd:20190828t
Function Reduce(Bezug, Optional ByVal ErsatzZ$ = "", Optional ByVal Ausnahmen$) Const permAusn$ = "0123456789ß" Dim pos As Long, sic As Long, six As Long, zic As Long, zix As Long, _ ersZ$(1), pZn$(1), bez, erg On Error Resume Next Ausnahmen = Ausnahmen & permAusn: ersZ(1) = Left(ErsatzZ, 1) If TypeOf Bezug Is Range Then zic = Bezug.Rows.Count: sic = Bezug.Columns.Count ElseIf IsError(LBound(Bezug, 2)) Then sic = UBound(Bezug) + 1 - LBound(Bezug): zic = 1 Else: zic = UBound(Bezug, 1) + 1 - LBound(Bezug, 1) sic = UBound(Bezug, 2) + 1 - LBound(Bezug, 2) End If ReDim erg(zic - 1, sic - 1) For Each bez In Bezug pos = 1 If Not (IsError(bez) Or IsNumeric(bez)) Then Do: pZn(1) = Mid(bez, pos, 1) If InStr(Ausnahmen, pZn(1)) = 0 Or _ (pZn(1) = pZn(0) And Not IsNumeric(pZn(1))) Then If UCase(pZn(1)) = LCase(pZn(1)) Then ersZ(0) = IIf(ersZ(1) = pZn(0) Or pos = 1 Or _ pos = Len(bez), "", ersZ(1)) bez = Left(bez, pos - 1) & ersZ(0) & Mid(bez, pos + 1) pos = pos + CInt(ersZ(0) = "") pZn(1) = IIf(ersZ(1) = "", pZn(1), ersZ(1)) End If End If pos = pos + 1: pZn(0) = pZn(1) Loop Until pos > Len(bez) erg(zix, six) = bez If TypeOf Bezug Is Range Then six = (six + 1) Mod sic: zix = (zix - CInt(six = 0)) Mod zic Else: zix = (zix + 1) Mod zic: six = (six - CInt(zix = 0)) Mod sic End If End If Next bez Reduce = erg End Function Diese UDF kann bspw wie folgt angewendet wdn:
1. Einzelzellen:
=Reduce(B1)
=Reduce(B1;"-")
=Reduce(B1;;" ")
=Reduce(B1;;"% ")
2. ZellBereiche (plurale MatrixFml):
{=Reduce(A16:B18)}
3. Datenfelder (plurale MatrixFml):
{=Reduce(""&A16:B18;"-";"̆")}
Die letzten beiden natürlich auch mit allen Argumentierungsmöglichkeiten (wie die erste).
Anmerk: Texte in Alfabeten, die den Unterschied GBst:KBst nicht kennen, lassen sich so nicht verarbeiten. Ansonsten wdn aber alle Buchstaben* standardmäßig als solche erkannt, nur buchstabenähnliche Zeichen nicht, da bei diesen kein Umwandlungsvgl möglich ist, was auch für ß gilt, weshalb es, wie auch die 10 StandardZiffern, automatisch den Ausnahmen hinzugefügt wird. Andere Ziffern müssen explizit in Arg3 angegeben wdn, falls sie beizubehalten sind.
* Die entsprd Xl-Fktt erkennen nicht alle (historischen) Unicode-Buchstaben als solche.
Luc :-?
Anzeige
Nachtrag: Hatte leider Einzeltexte vergessen, …
03.09.2019 23:56:53
Luc:-?
…weshalb folgd Ergänzung (für Vs1.1) erforderlich ist (hier letzte Vorkommentarzeile bis einschl Folgezeile der Ergänzung für einen Austausch):
'   Vs1.1 -LSr -cd:20190828 -1pub: 20190828h -lupd:20190903t
Function Reduce(Bezug, Optional ByVal ErsatzZ$ = "", Optional ByVal Ausnahmen$) Const permAusn$ = "0123456789ß" Dim pos As Long, sic As Long, six As Long, zic As Long, zix As Long, _ ersZ$(1), pZn$(1), bez, erg On Error Resume Next Ausnahmen = permAusn & Ausnahmen: ersZ(1) = Left(ErsatzZ, 1) If Not IsArray(Bezug) Then Bezug = Array(Bezug) If TypeOf Bezug Is Range Then Luc :-?
Anzeige
;
Anzeige

Infobox / Tutorial

Probleme mit GLÄTTEN in Excel 2013 lösen


Schritt-für-Schritt-Anleitung

  1. Überprüfen der Leerzeichen: Stelle sicher, dass die Leerzeichen in deinen Daten echte Leerzeichen (ASCII-Code 32) sind. Manchmal können unsichtbare Zeichen oder nicht druckbare Zeichen das Glätten behindern.

  2. Verwendung der GLÄTTEN-Funktion: Nutze die Funktion =GLÄTTEN(A1), um überflüssige Leerzeichen aus der Zelle A1 zu entfernen. Dies entfernt jedoch nur führende und nachfolgende Leerzeichen; Leerzeichen in der Mitte bleiben erhalten.

  3. Vollständiges Entfernen von Leerzeichen: Wenn du alle Leerzeichen, inklusive der mittleren, entfernen möchtest, verwende die WECHSELN-Funktion: =WECHSELN(A1; " "; ""). Dieser Befehl entfernt alle Leerzeichen in der angegebenen Zelle.

  4. Anwenden auf eine ganze Spalte: Um die Funktion auf eine ganze Spalte anzuwenden, ziehe die untere rechte Ecke der Zelle nach unten oder kopiere die Formel in die anderen Zellen in derselben Spalte.


Häufige Fehler und Lösungen

  • Fehler: GLÄTTEN funktioniert nicht: Wenn die GLÄTTEN-Funktion nicht das gewünschte Ergebnis liefert, könnte es daran liegen, dass die Leerzeichen nicht die richtigen sind. Überprüfe dies, indem du die ASCII-Werte der Zeichen in der Zelle prüfst.

  • Lösung: WECHSELN verwenden: Wenn GLÄTTEN nicht funktioniert, ist die Verwendung von WECHSELN eine effektive Alternative, um alle Leerzeichen zu entfernen.


Alternative Methoden

  • VBA-Lösungen: Erstelle eine benutzerdefinierte Funktion (UDF) in VBA, die nicht nur Leerzeichen entfernt, sondern auch andere unerwünschte Zeichen. Hier ist ein einfaches Beispiel:
Function Reduce(Bezug As Range, Optional ErsatzZ As String = "") As String
    Reduce = Replace(Bezug.Value, " ", ErsatzZ)
End Function
  • Text in Spalten: Eine weitere Möglichkeit besteht darin, die Funktion "Text in Spalten" zu verwenden, um Leerzeichen zu entfernen, indem du die Textdaten in separate Spalten aufteilst und dann wieder zusammenführst.

Praktische Beispiele

  1. Einzelzelle:

    =GLÄTTEN(A1)
  2. Alle Leerzeichen entfernen:

    =WECHSELN(A1; " "; "")
  3. Anwendung auf eine ganze Spalte:

    • Markiere die Zelle mit der Formel und ziehe sie nach unten, um sie auf die gesamte Spalte anzuwenden.

Tipps für Profis

  • Kombination von Funktionen: Du kannst GLÄTTEN und WECHSELN kombinieren, um optimale Ergebnisse zu erzielen. Zum Beispiel:

    =WECHSELN(GLÄTTEN(A1); " "; "")
  • Datenüberprüfung: Führe regelmäßig Datenüberprüfungen durch, um sicherzustellen, dass keine unerwünschten Zeichen in deinen Datensätzen vorhanden sind.


FAQ: Häufige Fragen

1. Warum funktioniert GLÄTTEN nicht in Excel 2013? Es könnte sein, dass die Leerzeichen in deinen Daten nicht die richtigen sind. Verwende WECHSELN, um alle Leerzeichen zu entfernen.

2. Wie kann ich einfach alle Leerzeichen in einer Zelle entfernen? Nutze die Funktion =WECHSELN(A1; " "; ""), um alle Leerzeichen aus der Zelle A1 zu entfernen.

3. Kann ich GLÄTTEN auf eine ganze Spalte anwenden? Ja, ziehe die Formel einfach nach unten, um sie auf die gewünschten Zellen anzuwenden.

4. Gibt es eine bessere Methode als GLÄTTEN? Ja, wenn du alle Leerzeichen entfernen möchtest, ist WECHSELN die bessere Wahl.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige