Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anzahl Leerschritte ermitteln, aber wie?

Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 14:07:00
Jean
Hallo,
in Spalte A sind Zeichenketten gespeichert.
Das Besondere daran ist, dass Leerschritte vor dem ersten echten Zeichen stehen können und aber auch Leerschritte nach dem letzten echten Zeichen.
Wie kann man herausfinden, wie viel Leerschritte vor und wie viel Leerzeichen hinter dem letzten echten Zeichen stehen?
Gruß
Jean

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 14:24:39
Mac4
Hi Jean,
wenn Dich die Leerzeichen stören, kannst Du sie mit Glätten entfernen (=GLÄTTEN(A1))
Die Anzahl der Leerzeichen kannst Du bspw. so ermitteln:=LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))
Marc

AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 15:17:09
Jean
Hallo Marc,
vielen Dank für Deinen Beitrag. Ich werde mir die Lösungen auf jeden Fall merken,
bin im Moment aber mehr an der Anzahl der Leerzeichen vor und nach den echten Zeichen interessiert.
Gruß
Jean

AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 14:25:00
Wolli
Hallo Jean, ich habe hier zwei kleine Funktionen für Dich, die Du in einem Modul speichern kannst (Alt+F11, Einfügen - Modul, hineinkopieren):
Function Leerz_vorn(r As Range) As Long Leerz_vorn = 0 Do While Mid(r, Leerz_vorn + 1, 1) = " " Leerz_vorn = Leerz_vorn + 1 Loop End Function



Function Leerz_hinten(r As Range) As Long
Leerz_hinten = 0
Do While Mid(r, Len(r) - Leerz_hinten, 1) = " "
Leerz_hinten = Leerz_hinten + 1
Loop
End Function


Dann kannst Du einfach in der Tabelle die Formel =Leerz_vorn(A56) bzw. =Leerz_hinten(A56) verwenden und erhältst die Anzahl der Leerzeichen angezeigt.
Vielleicht versuche ich (oder jemand anders) auch noch, eine reine Formel-Lösung zu bauen, das müsste auch gehen.
Gruß, Wolli

Anzeige
AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 15:14:57
Jean
Hallo Wolli,
vielen Dank für die beiden Funktionen, die perfekt funktionieren.
Dennoch würde ich gerne eine Formellösung kennenlernen, einfach aus Interesse.
Vielleicht findest Du dazu noch die Zeit?
Dank im voraus.
Gruß
Jean

AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 15:54:00
Wolli
Na gut, Du hast es so gewollt. Diese Matrixformel müsste für die Leerzeichen am Anfang funktionieren:
{=WENN(LINKS(A1;1)<>" ";0;1000-MAX((TEIL(A1;ZEILE($1:$999);1)=" ")*(TEIL(A1;ZEILE($1:$999)+1;1) <>" ")*(1000-ZEILE($1:$999)))) }
(Geschweifte Klammern nicht eingeben, Eingabe mit Strg+Alt+Enter abschließen.)
Sicherlich kann man sie noch etwas vereinfachen.
Für Leerzeichen rechts ist eine ähnliche Formel denkbar, leider habe ich dafür gerade keine Muße. Als Erläuterung habe ich Dir meine Entwicklungsmappe beigefügt: https://www.herber.de/bbs/user/53321.xls
Gruß, Wolli

Anzeige
AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 16:41:00
Jean
Hallo Wolli,
ja, ich habs so gewollt. Und dafür danke ich Dir. Damit ist dieses Problem gelöst.
Gruß
Jean

AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 15:59:52
Rudi
Hallo,
diese Matrixformeln:

{=VERGLEICH(WAHR;TEIL(A1;ZEILE(1:100);1)" ";)-1}
{=LÄNGE(A1)-MAX((TEIL(A1;ZEILE(1:100);1)"")*(TEIL(A1;ZEILE(1:100);1)" ")*ZEILE(1:100))}


Gruß
Rudi

AW: Anzahl Leerschritte ermitteln, aber wie?
24.06.2008 16:43:22
Jean
Hallo Rudi,
besten Dank für die beiden Matrixformeln, die die Aufgabe perfekt lösen. Danke.
Gruß
Jean

geht aber ohne MATRIXFormel ...
24.06.2008 17:14:34
neopa
Hallo Jean,
... auch wenn beides voneinander unabhängig berechnet werden soll. Und das diesmal noch v i e l kürzer.
Und zwar so:
vorn: =FINDEN(LINKS(GLÄTTEN(A1);1);A1;1)-1
hinten: =LÄNGE(A1)-(FINDEN(LINKS(GLÄTTEN(A1);1);A1;1)-1)-LÄNGE(GLÄTTEN(A1))
Gruß Werner
.. , - ...

Anzeige
AW: geht aber ohne MATRIXFormel ...
24.06.2008 18:05:39
Jean
Hallo Werner,
na, das sind ja wirklich überraschende Lösungen. Super. Beide gefallen mir sehr gut. Beide sind zudem leicht verständlich.
Ich danke Dir dafür.
Einen schönen Abend.
Gruß
Jean

AW: geht aber ohne MATRIXFormel ...
25.06.2008 09:57:39
Rudi
Hallo Werner,
letztere Formel liefert falsche Ergebnisse, falls hinten oder vorne keine LZ vorkommen.
So geht' s aber auch ohne Matrix:
=LÄNGE(A1)-FINDEN("|";WECHSELN(A1;RECHTS(GLÄTTEN(A1);1);"|";LÄNGE(A1)-LÄNGE(WECHSELN(A1; RECHTS(GLÄTTEN(A1);1);""))))
Gruß
Rudi

heute suchst Du zur Abwechslung ...
25.06.2008 12:02:00
neopa
Hallo Rudi,
... wohl mal die längste Formel *ggg* ;-)
Ich kann Deinen Einwand nicht nachvollziehen. Siehe Beipiel Spalte B. In Spalte C habe ich meine Formel noch mal um 2 Zeichen gekürzt. (In Spalte D sind die Leerzeichen vorn gezählt)
 ABCD
1   abc   333
2  abc     552
3 cba   331
4     bca     555
5abc  220
6  abc002
7abc000

Formeln der Tabelle
ZelleFormel
B1=LÄNGE(A1)-(FINDEN(LINKS(GLÄTTEN(A1); 1); A1;1)-1)-LÄNGE(GLÄTTEN(A1))
C1=LÄNGE(A1)-FINDEN(LINKS(GLÄTTEN(A1); 1); A1;1)+1-LÄNGE(GLÄTTEN(A1))
D1=FINDEN(LINKS(GLÄTTEN(A1); 1); A1;1)-1


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
AW: heute suchst Du zur Abwechslung ...
25.06.2008 12:40:00
Rudi
Hallo,
Werner,
deine Formel versagt, wenn sich mittendrin Leerzeichen befinden.
Gruß
Rudi

dafür habe ich dann aber auch ...
25.06.2008 12:57:00
neopa
Hallo Rudo,
... noch eine kürzere Formel im Köcher als Deine Formelmonster ;-)
Einfach: =LÄNGE(A1)-VERWEIS(9;1/(TEIL(A1;ZEILE($1:$99);1)=RECHTS(GLÄTTEN(A1);1));ZEILE($1:$99))
Gruß Werner
.. , - ...
p.S im übrigen ist Deine Aussage auch nicht ganz korrekt. Meine erste Formel:
=LÄNGE(A1)-FINDEN(LINKS(GLÄTTEN(A1); 1); A1;1)+1-LÄNGE(GLÄTTEN(A1))
ermittelt nur dann nicht korrekt, wenn mehr als ein Leerzeichen innerhalb des Textes unmittelbar kombiniert sind ... und das war nicht gefragt ;-). Verteilt innerhalb des Textes können hunderte Leerzeichen stehen.

Anzeige
ha, es geht noch kürzer ...
25.06.2008 13:13:27
neopa
Walter hat mich vorhin auf die Idee gebracht:
=LÄNGE(A1)-VERWEIS(9^9;FINDEN(RECHTS(GLÄTTEN(A1);1);A1;ZEILE(A:A)))
Gruß Werner
.. , - ...

and the winner is ...
25.06.2008 13:44:46
Rudi
... neopa!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige