Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
.. , - ...
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
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
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!
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

194 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige