Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anzahl Leerzeichen in Strings zählen

Anzahl Leerzeichen in Strings zählen
25.05.2007 15:00:00
asz
Hallo,
ich hab mal wieder ein Problem: In einer Datei wie der beiliegenden möchte ich in Spalte E zählen, wie häufig innerhalb einer Suchkategorie (gekennzeichnet durch Zahlen wie 100=, 331=) mit fünf Suchbegriffen und mehr gesucht wurde - das heißt also, ich müsste die Fälle/Strings (nicht nur Zellen, denn in einer Zelle können mehrere solche Strings vorkommen) zählen, die zwischen zwei Anführungszeichen vier und mehr Leerzeichen enthalten. Wer kann mir helfen?
https://www.herber.de/bbs/user/42771.xls
Ganz herzlichen Dank im voraus und viele Grüße an alle,
Andre

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:11:17
ingUR
Hallo, Andre,
steht in A1 die Zeichenkette, dann ermittel die Länge mit der Zellenfomel =LÄNGE(A1) und zoehe davon die Länge der Zeichenkette ab, aus der Du die Leerzeichen mit =WECHSELN(A1;" ";"") entfernt hast.
Zusammengesetzt als Zellenformel z.B. in B1:
=LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))
Gruß,
Uwe

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:21:55
asz
Hallo Uwe,
vielen Dank für die schnelle Antwort - nur: das löst das Problem nur, wenn in einer Zelle auch nur ein solcher String steht, also etwa in Zelle A1 der String
'331="riding the waves of culture"'
Es können aber in einer Zelle auch mehrere solche Strings stehen, verknüpft durch 'und' bzw. ' & ', also z.B. in A1 der String
'331="riding the waves of culture"' & '100="mueller meier schmidt schmid schmitt"'
Deine Lösung ergäbe für diesen Fall die Anzahl 10, es müsste dort aber die Anzahl 8 stehen. Man müsste also für jedes '&'-Zeichen noch einmal 2 von der Anzahl abziehen, um Deine Lösung zu nutzen. Wie könnte ich das hinkriegen? Oder gibt's eine vba-Lösung?
Vielen Dank noch mal & Grüße
Andre

Anzeige
AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:26:37
ingUR
Es tut mir leid, Andre,
dass ich nicht erst in Deine Deitei geschaut habe. Ein Schritt in die Richtug wäre die untersuchung in dem zuvor von " & " befreiten String. Gelichzeitig kan das " & " Zeichen genutzt werden um die Anzahl der Teiltexte zu ermitteln.
=LÄNGE(WECHSELN(E23;" & ";""))-LÄNGE(WECHSELN(WECHSELN(E23;" & ";"");" ";""))
Gruß,
Uwe

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:32:36
asz
Hallo Uwe,
ja prima, danke, das ist ein Anfang. Aber daraus kann ich leider immer noch nicht die Anzahl der Fälle summieren, in denen pro String (also Zeichenkette zwischen zwei Anführungszeichen) mehr als 5 Wörter (also mehr als 4 Leerzeichen) verwendet werden.
Dankeschön & viele Grüße
Andre

Anzeige
Such doch mal im Archiv nach...
25.05.2007 15:49:09
Luc:-?
...CountOn, André!
Gruß Luc :-?

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:50:00
ingUR
Hallo, Andre,
an solchen Punkten setze ich zumeist den Versuch, geschlossene Zellenformeln zu erstellen, von der Aufgabenliste ab und wechselauf eine VBA-Funktion.
Jedoch könntest Du vielleicht den Text vor der Untersuchung in Spalten aufteilen (Teilungszeichen wäre das Kaufmanns-Und, da Du ja wohl eine variable Anzahl von Verkettungen hast.
Über die Zellen könnte man eine ZÄHLENWENN-Funktion anwenden, die alle Werte mit > 4 zählt.
Sofern die Idee, eine Function zu schreiben Deinen Vorstellungen entspricht, kann ich das Grundgerüst fertigen.
Gruß,
Uwe

Anzeige
Der Hans soll da ein tolles Archiv haben,...
25.05.2007 15:59:00
Luc:-?
...Uwe!
Gruß Luc :-?

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 16:23:00
ingUR
Hallo, Uwe,
mag sein, dass das Archiv da für Dein Problem etwas hergibt; mir fehl die Zeit das zu untersuchen, daher hier das Grundgerüst für eine selbsdefinierte Zellenfunktion:
Function MehrAls4(ByRef rngC As Range) As Integer Dim strV As String, T(255) As String, maxT As Integer, n As Integer Dim pos As Integer strV = rngC.Value Do maxT = maxT + 1 pos = InStr(strV, ") & (") If pos > 0 Then T(maxT) = Trim(Left(strV, pos)) strV = Mid(strV, pos + Len(") & (") - 1) End If Loop While pos > 0 T(maxT) = Trim(strV) For n = 1 To maxT If Len(T(n)) - Len(Replace(T(n), " ", "")) > 4 Then pos = pos + 1 Next MehrAls4 = pos End Function


Hier die Anwendung auf eine erfundene Zeichenkette in E12

 
 EFG
12('331="riding the waves of culture 1"') & ('331="riding the waves of culture 2"') & ('331="riding the waves of culture"') & ('331="riding the waves of culture 3"')193
Formeln der Tabelle
F12 : =(LÄNGE(WECHSELN(E12;" & ";""))-LÄNGE(WECHSELN(WECHSELN(E12;" & ";"");" ";"")))
G12 : =MehrAls4(E12)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß,
Uwe

Anzeige
Warum machst du dir denn dann die Mühe,...
26.05.2007 00:25:00
Luc:-?
...Uwe,
Link war doch angegeben...
Naja, selber basteln macht wohl auch bei Zeitmangel mehr Spaß... ;-)
Gruß Luc :-?

AW: Feinsinnig erkannt, @Luc, ...
26.05.2007 08:42:00
ingUR
... wenn Du feststellst: «Naja, selber basteln macht wohl auch bei Zeitmangel mehr Spaß... ;-)», wobei "Spaß" hier nicht des richtige Substantiv ist, denn gerade bei Zeitmangel gelingt es mir - wo möglich - meine Gedanken zeitsparender schneller umzusetzen, als mich durch die Texte einer Beitragskette durchzuarbeiten und mich in diese Gedanken hineinzufinden oder gar die Grundlagen und angebotenen Lösungen zu bewerten, mit der inhärenten Gefahr, erfolglos zu bleiben.
Der "Achtzehnzeiler" hat mich hingegen nur ca. eine Viertelstunde Zeiteinsatz gekostet, einschließlich Test und Veröffentlichung. Aber selbst die Zeitspanne von ca. einer halben Stunde, die zwischen meinen Beiträgen dem Funktionsvorschlag und einer Lösungsvorstellung festzustellen ist, hätte nach meiner Einschätzung nicht ausgereicht, um die gesamte Beitragskette nach meiner Arbeitsweise zu studieren.
Vielelicht wäre es für mich, der ich eben aus dem genannten Grund Deinen Programmcode nicht nachvollzogen habe, leichter gewesen, wenn du einfach die Anwendung Deiner Funktion CountOn(ByVal ZFolge As String, ByVal ZKomb As String) auf das Beispiel demonstriert hättest, denn so wie ich die Aufgabe verstanden habe, war gesucht, in wievielen Teilstrings einer Zeichenkette, die durch die Zeichenfolge ") & (" voneinander getrennt sind oder nur aus einem Teilstring besteht, gleich oder mehr als vier Leerzeichen enhalten sind:
Ich meine, Deine CountOn-Funktion leistet dieses so nicht, da sie eben die Häufigkeit des Vorkommens einer vorgegeben Zeichenkombination in einer Zeichenfolge zählt unabhängi davon in welchem Abschnitt(Teilstring) sie entstehen.
Wenn nun im "Achtenzeiler" der Relationoperator des Bedingungskriteriums der letzten IF-Abfrage statt > 4 in > 3 verändert wird, dann liefert due benutzererstellte Funktion mit der Angabe der Zelle, in dem der zu untersuchende Test steht, genau die eine gewünschte Zahl.
Gruß,
Uwe

Anzeige
Dann müssen halt die "=" gezählt wdn,...
27.05.2007 03:10:00
Luc:-?
...Uwe,
aber das ist mir auch wurscht, da das hier ja nicht interessiert... ;-)
Ich schreibe udFktt (mittlerweile über 100), die universell einsetzbar sind, und dem Nutzer so erlauben, mit/ohne Kombination von diesen (und Standardfktt) auf ellenlange Formelbandwürmer zu verzichten. So toll ich bspw auch excelformeln.de finden mag, so gibt es doch mehr Menschen als man glaubt, die schon mit einer einfachen Formel Probleme haben...
Frohe Pfingsten!
Gruß Luc :-?
PS: Nebenbei, von CountOn gibt's auch noch eine Erweiterung... ;-)

@Luc: Wer stellt die Fragen zu den Antworten?
27.05.2007 08:21:14
ingUR




Was soll das bringen?
Habe ich versäumt den Beitrag zu lesen, so es um das Zählen von Gleicheitszeichen ging?
Hallo, @Luc,
Du fragst: «aber das ist mir auch wurscht, da das hier ja nicht interessiert... ;-)» und ich kann nun nicht erkennen, auf was Deine "Feststellung" hier nun zutreffen soll, was Dir also wurscht ist, auf das Du dennoch antwortest oder was es ist, dass hier niemanden interessiert.
Auch der Hinweis, dass es von CountOn eine Erweiterung gibt, bringt mich, so allein stehend formuliert, auch nicht wirklich schnell in meinem Erkenntnisstand weiter, und ich hoffe, dass es nicht das ist, was Du meinst, wenn Du uns mitteilst, dass es Dir auch wurscht sei, nämlich wie leicht man aus Deine Anwtorten die nützliche Information umsetzen kann.
Aber Du wirst schon indem Recht haben, dass es keinen hier interessiert, welche Probleme ich mit Deinen Antworten habe.
Dir auch angenehme Pfingsttage!
Uwe

Anzeige
Aber Uwe, das bezog sich doch nur...
30.05.2007 00:17:52
Luc:-?
...auf deine Bemerkung, dass CountOn das Problem nicht lösen würde und 2 rauskommen müsste... Deine Korrektur habe ich erst später gelesen... ;-)
...und jetzt interessiert mich das wirklich nicht mehr... ;-)
Gruß Luc :-?
PS: Hier nur noch die Hilfe zur erwähnten Erweiterung, die zeigt, was damit möglich ist...
CountAll( SuchZf ; Total ; FindZfnTz {… } )
Gesamt-/Einzelanzahl des Auftretens 1/mehrerer FindZfolge/n in 1er SuchZfolge
Trennzchn MUSS NUR bei Total=0 als letztes Element v.FindZfnTz angegeben wdn!
Bsp1: 5 =CountAll("Altmeister, Altmann, Mannesalter";1;"Alt";"alt";"Mann";"mann")
Bsp2: 2+1+1+1 =CountAll("Altmeister, Altmann, Mannesalter";0;"Alt";"alt";"Mann";"mann";"+")
Bsp3: 2 1 1 1 (horizont-|vertikaler Vektor) {=CountAll("Altmeister, Altmann, Mannesalter";0;"Alt";"alt";"Mann";"mann";"")}

Vs 1.0a -Autor: LSr -1Pub: s.CountOn -CDate: 200603 -LUpd: 20060802t

Anzeige
AW: Warum machst du dir denn dann die Mühe,...
04.06.2007 15:40:53
asz
Hallo an alle,
ganz herzlichen Dank für die vielen Antworten!!!!! - zum Testen brauche ich wohl noch ein wenig Zeit,
danke nochmal & viele Grüße
Andre

AW: @Andre: Aufgabenspezifische Korrektur:
26.05.2007 08:49:00
ingUR
Hallo, Andre,
beim Verfassen meiner Antwort an @Luc, ist mir aufgefallen, dass Du natürlich nicht nach vier sondern nach mehr als drei Leerzeichen fragst, um zu erkennen, dass mehr als vuer Begriffe im Wort enthalten sind; so hat auch jeder Beitrag seinen Sinn.
Bitte ersetze in If Len(T(n)) - Len(Replace(T(n), " ", "")) > 4 Then pos = pos + 1 die 4 durch eine 3.
Übrigens wird hier nicht untersucht, ob mehr als ein Leerzeihen aufeinader folgen.
Gruß,
Uwe

Anzeige
AW: @Andre: Aufgabenspezifische Korrektur:
22.06.2007 09:59:37
asz
Hallo Uwe,
die selbstgeschriebene Funktion funktioniert super - ganz herzlichen Dank noch einmal!!!
Viele Grüße
Andre

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:19:00
Erich
Hallo Andre,
wenn ich richtig verstanden habe, was du zählen möchtest, kannst du eine der drei Formeln in F12 bis H12
verwenden und nach oben und unten kopieren:
 EFGH
12'331="riding the waves of culture"'111
13'(331="initia") & (100="grünbart")'222

Formeln der Tabelle
ZelleFormel
F12=1+LÄNGE(E12)-LÄNGE(WECHSELN(E12;"&";""))
G12=1+(LÄNGE(E12)-LÄNGE(WECHSELN(E12;") & (";"")))/5
H12=LÄNGE(E12)-LÄNGE(WECHSELN(E12;"=";""))
F13=1+LÄNGE(E13)-LÄNGE(WECHSELN(E13;"&";""))
G13=1+(LÄNGE(E13)-LÄNGE(WECHSELN(E13;") & (";"")))/5
H13=LÄNGE(E13)-LÄNGE(WECHSELN(E13;"=";""))

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:27:52
asz
Hallo Erich,
herzlichen Dank für die schnelle Antwort - aber, wenn ich richtig verstehe, was Du verstanden hast, dann hast Du falsch verstanden, was ich zählen will... :-) Öhm... Also: In einer Zelle könnte folgendes stehen:
'331="riding the waves of culture"' & '100="mueller meier schmidt schmid schmitt"'
Dann müsste ich die 4 Leerzeichen zwischen den ersten Anführungszeichen und die 4 Leerzeichen zwischen den zweiten Anführungszeichen zählen - als jeweils 1 Vorkommnis von 4 Leerzeichen oder mehr. Als Suchergebnis müsste also neben dieser Zelle eine 2 stehen.
Kannst Du mir helfen?
Danke noch mal & viele Grüße
Andre

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 15:46:00
Erich
Hallo Andre,
das hatte ich gerade auch gemerkt. Geht das hier?
In Spalte J steht die Anzahl der Suchbegriffe mit mehr als 4 Wörtern:
 EFGHIJ
1'(331="Europarecht") & (1145="zs")''(331="Europarecht"(1145="zs")'110
2'(331="allotria") & (9902="0910*")''(331="allotria"(9902="0910*")'110
3'(331="mythos") & (100="scholder")''(331="mythos"(100="scholder")'110
4'(331="neuzeit") & (100="ottmann")''(331="neuzeit"(100="ottmann")'110
5'(902="neuzeit") & (100="ottmann")''(902="neuzeit"(100="ottmann")'110
6'(100="judith butler") & (-2="10")''(100="judith butler"(-2="10")'210
7'331="empathisches Erzählen im RU"''331="empathisches Erzählen im RU"' 410
8'331="wissenschaftliches Arbeiten"''331="wissenschaftliches Arbeiten"' 210
9'(412="catedra") & (100="cernuda")''(412="catedra"(100="cernuda")'110
10'(331="politeia") & (100="platon")''(331="politeia"(100="platon")'110
11'(331="reichsidee") & (100="bock")''(331="reichsidee"(100="bock")'110
12'331="riding the waves of culture"''331="riding the waves of culture"' 511
13(331="initia") & (100="grünbart")'(331="initia"(100="grünbart")'110
14331="rid the wav of cul") & (100="mue mei sch sch sch"'331="rid the wav of cul"(100="mue mei sch sch sch"'552
15'(331="schenken") & (100="adloff")''(331="schenken"(100="adloff")'110
16'331="Georg Christoph Lichtenberg"''331="Georg Christoph Lichtenberg"' 310
17'331="das konzil und seine Folgen"''331="das konzil und seine Folgen"' 511
18(331="St a t i stik") & (100="R ü g er")'(331="St a t i stik"(100="R ü g er")'541
19'(331="words") & (100="aitchison")''(331="words"(100="aitchison")'110
20'(-1="homosexualität") & (-2="10")''(-1="homosexualität"(-2="10")'110
21'331="Neues von der Kaiserkrönung"''331="Neues von der Kaiserkrönung"' 410
22'(331="medienrecht") & (1145="zs")''(331="medienrecht"(1145="zs")'110
23'331="hebrew union college annual"''331="hebrew union college annual"' 410
24'331="einführung in die phonetik."''331="einführung in die phonetik."' 410
25'331="einführung in die phonetik."''331="einführung in die phonetik."' 410

Formeln der Tabelle
ZelleFormel
F1=WENN(ISTZAHL(FINDEN(") & (";E1)); LINKS(E1;FINDEN(") & (";E1)-1); E1)
G1=WENN(LÄNGE(F1)<LÄNGE(E1); RECHTS(E1;LÄNGE(E1)-FINDEN(") & (";E1)-3); "")
H1=1+LÄNGE(F1)-LÄNGE(WECHSELN(F1;" ";""))
I1=1+LÄNGE(G1)-LÄNGE(WECHSELN(G1;" ";""))
J1=(H1>4)+(I1>4)
F2=WENN(ISTZAHL(FINDEN(") & (";E2)); LINKS(E2;FINDEN(") & (";E2)-1); E2)
G2=WENN(LÄNGE(F2)<LÄNGE(E2); RECHTS(E2;LÄNGE(E2)-FINDEN(") & (";E2)-3); "")
H2=1+LÄNGE(F2)-LÄNGE(WECHSELN(F2;" ";""))
I2=1+LÄNGE(G2)-LÄNGE(WECHSELN(G2;" ";""))
J2=(H2>4)+(I2>4)

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Anzahl Leerzeichen in Strings zählen
25.05.2007 21:56:58
FP
Hallo Andre,
ist eine "Monsterformel", aber sollte das machen was Du willst.
in Spalte C steht, wieviele Teilstrings die gewünschte Anzahl an Worten enthalten - in diesem Fall müssen es 5 Worte sein ( 4 Leerstellen = 5 Worte )
in Spalte D steht in diesem Fall, wieviele Leerzeichen der Teilstring haben muss, das kannst Du aber auch fix einbauen
Tabelle3
 ABCD
1331="riding the waves of culture"' & '100="mueller meier schmidt schmid schmitt"'824
2331="riding the waves of culture"' & '100="mueller meier schmidt schmid schmitt"' & '200="ist das dann so ok ?"'1334
3('331="riding the waves of culture 1"') & ('331="riding the waves of culture 2"') & ('331="riding the waves of"') & ('331="riding the waves of culture 3"')1834
Formeln der Tabelle
B1 : =LÄNGE(WECHSELN(A1;" & ";" "))-LÄNGE(WECHSELN(A1;" ";))
C1 : {=SUMME(N(KKLEINSTE((KGRÖSSTE((TEIL("="&WECHSELN($A1;" & ";)&"=";SPALTE(1:1); 1)="=")*SPALTE(1:1); {1.2.3.4.5})-KGRÖSSTE((TEIL("="&WECHSELN(WECHSELN($A1;" & ";" "); " ";)&"=";SPALTE(1:1); 1)="=")*SPALTE(1:1); {1.2.3.4.5}))/D1;{2.3.4.5})-KKLEINSTE((KGRÖSSTE((TEIL("="&WECHSELN($A1;" & ";)&"=";SPALTE(1:1); 1)="=")*SPALTE(1:1); {1.2.3.4.5})-KGRÖSSTE((TEIL("="&WECHSELN(WECHSELN($A1;" & ";" "); " ";)&"=";SPALTE(1:1); 1)="=")*SPALTE(1:1); {1.2.3.4.5}))/D1;{1.2.3.4})>=1))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Servus aus dem Salzkammergut
Franz

etwas kürzer...
25.05.2007 23:05:00
FP
Hallo Andre,
... geht es noch :-)
Tabelle3
 ABCD
1331="riding the waves of culture"' & '100="mueller meier schmidt schmid schmitt"'824
2331="riding the waves of culture"' & '100="mueller meier schmidt schmid schmitt"' & '200="ist das ok ?"'1324
3('331="riding the waves of culture 1"') & ('331="riding the waves of culture 2"') & ('331="riding the waves of"') & ('331="riding the waves of culture 3"')1834
Formeln der Tabelle
B1 : =LÄNGE(WECHSELN(A1;" & ";" "))-LÄNGE(WECHSELN(A1;" ";))
C1 : {=SUMME(N(MMULT(KKLEINSTE((KGRÖSSTE((TEIL("="&WECHSELN($A1;" & ";)&"=";SPALTE(1:1); 1)="=")*SPALTE(1:1); {1.2.3.4.5})-KGRÖSSTE((TEIL("="&WECHSELN(WECHSELN($A1;" & ";" "); " ";)&"=";SPALTE(1:1); 1)="=")*SPALTE(1:1); {1.2.3.4.5})); {1.2;2.3;3.4;4.5}); {-1;1})/D1>=1))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Servus aus dem Salzkammergut
Franz

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige