Herbers Excel-Forum - das Archiv

Anzahl einer Zeichenfolge in Zelle finden

Bild

Betrifft: Anzahl einer Zeichenfolge in Zelle finden
von: Mike

Geschrieben am: 08.12.2006 12:51:55
Hallo Ex(cel)perten,
Folgendes Problem -
Ich habe eine Zelle mit Inhalt(z.B.)"XOOXXOOOXOOXXOOOOOOXXOOOX".
Wie bekomme ich jetzt(mit Formel) die Anzahl der Kombination OXXO aus dieser Zelle(also Ergebnis = 3)????
Vielen Dank und sonnige Grüße aus Bayern
Mike
Bild

Betrifft: AW: Anzahl einer Zeichenfolge in Zelle finden
von: ransi

Geschrieben am: 08.12.2006 12:57:41
Hallo Mike
Vesuch es mal so:
Tabelle1

 AB
1XOOXXOOOXOOXXOOOOOOXXOOOXOXXO
2 3

Formeln der Tabelle
ZelleFormel
B2=(LÄNGE(A1)-LÄNGE(WECHSELN(A1;B1;"")))/LÄNGE(B1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
ransi
Bild

Betrifft: AW: Anzahl einer Zeichenfolge in Zelle finden
von: Mike
Geschrieben am: 08.12.2006 13:30:17
Danke!
Aber wie funktioniert die formel bei dieser Zeichenfolge:
OXXOXXOOXOXXO
Nochmals VIELEN DANK
Bild

Betrifft: anderer Ansatz
von: ransi

Geschrieben am: 08.12.2006 14:00:02
Hallo Mike
Zitat:
Aber wie funktioniert die formel bei dieser Zeichenfolge:
OXXOXXOOXOXXO

Da greifen wir dann gaaanz tief in die Trickkiste,
Teste mal:
Tabelle1

 AB
1OXXOXXOOXOXXOOXXO
2 3
3  

Formeln der Tabelle
ZelleFormel
B2=SUMMENPRODUKT((TEIL(A1;ZEILE(INDIREKT("A1:A"&LÄNGE(A1)-LÄNGE(B1)+1));LÄNGE(B1))=B1)*1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
ransi
ransi
Bild

Betrifft: AW: anderer Ansatz
von: Mike
Geschrieben am: 08.12.2006 14:09:38
Ahhhhhhh . . . . .
Wunderbar! Kannst Du mir die Funktion mit 2 Sätzen erklären?
Dann kann ich sie mir beim nächsten Versuch selbst "basteln"!
VIELEN VIELEN DANK
Gruß
Mike
Bild

Betrifft: AW: anderer Ansatz
von: ransi

Geschrieben am: 08.12.2006 14:23:43
Hallo MIke
Erklären kann ich sowas ganz schlecht.
Bin nämlich nicht so der Erklärbär.
Hilft dir dies hier zum Verständniss der Formel weiter ?
Tabelle1

 AB
1OXXOXXOXXO XX
2 3
3  
4 =SUMMENPRODUKT((TEIL(A1;ZEILE(INDIREKT("A1:A"&LÄNGE(A1)-LÄNGE(B1)+1));2)=B1)*1)
5 =SUMMENPRODUKT((TEIL(A1;{1;2;3;4;5;6;7;8;9;10};2)=B1)*1)
6 =SUMMENPRODUKT(({"OX";"XX";"XO";"OX";"XX";"XO";"OX";"XX";"XO";"O "}=B1)*1)
7 =SUMMENPRODUKT({FALSCH;WAHR;FALSCH;FALSCH;WAHR;FALSCH;FALSCH;WAHR;FALSCH;FALSCH}*1)
8 =SUMMENPRODUKT({0;1;0;0;1;0;0;1;0;0})
9  

Formeln der Tabelle
ZelleFormel
B2=SUMMENPRODUKT((TEIL(A1;ZEILE(INDIREKT("A1:A"&LÄNGE(A1)-LÄNGE(B1)+1));LÄNGE(B1))=B1)*1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
ransi
Bild

Betrifft: AW: anderer Ansatz
von: Mike
Geschrieben am: 08.12.2006 14:30:40
;o)
okay!
Nochmal VIELEN DANK und schönes Wochenende
Gruß
Mike
Bild

Betrifft: Erklärung
von: Yal

Geschrieben am: 08.12.2006 15:27:37
Ich glaub' ich hab's (ich bin weiterhin beeindruckt!):
Ziel ist es (wie in meiner Prog., aber in VBA ist es eh einfach) die gesamte String in einzel String zu teilen, um Sie gegen die Referenz zu vergleichen.
Da es in Formeln keine For-Schleife gibt, wird dieser Effekt durch die Erzeugung einer Pseudo-Bereich (= Matrix) erzeugt:
INDIREKT("A1:A"&LÄNGE(A1)-LÄNGE(B1)+1)
Aus diese Matrix entnehmen wir die ZeilenNr, um die einzel Strings zu erzeugen
TEIL(A1;ZEILE( ... );Länge(B1))
jener gegen die Referenz vergliechen werden
=B1
und aus diese Ergebnis-Matrix wird eine Summe gebildet. Dabei ist das Produkt mit *1 notwendig, um keine boolsche (Wahr + Wahr = Wahr) sondern decimal Summierung (1 + 1 = 2) zu forcieren.
Ich glaube nicht, dass Microsoft in seine Werbung ("Where do you want to go today?") gedacht hat, an solche Reise zur Stellen der Excel-Galaxie, die nie ein Mensch zuvor gesehen hat!
Yal (Beam me up, ransi!)
Bild

Betrifft: OXXOXXO als 1 oder 2 Treffer?
von: Yal
Geschrieben am: 08.12.2006 13:31:05
es ist dabei zu prüfen, ob eine Basis-Zeichenkette wie
OXXOXXOXXO
als 1 Treffer oder 3 aus OXXO zu bewerten ist. Unsere Lösungen bringen jeweils verschiedene Ergebnis.
@ransi: respect! ich wäre nicht darauf gekommen!
Yal
Bild

Betrifft: AW: OXXOXXO als 1 oder 2 Treffer?
von: Mike
Geschrieben am: 08.12.2006 13:37:06
Genau das war meine nächste Frage.
Ich möchte also die XX ausgezählt haben!
Vielen Dank und sonnige Grüße aus Bayern!!
Mike
Bild

Betrifft: AW: OXXOXXO als 1 oder 2 Treffer?
von: Yal

Geschrieben am: 08.12.2006 14:13:18
Da ich gesagt habe, dass es vermutlich nur mit eigener "Function" gehen soll, muss ich jetzt mich im Zeug legen! Besonders nachdem ransi sich so demonstrativ war (Hut ab!).
Diese muss in einem Modul angelegt werden, um wie eine Formel verwendet werden zu können
Public Function AnzahlTreffer(Text, Treffer) As Long
Dim i%, L%, T1$, T2$
T1 = LCase(Text)
T2 = LCase(Treffer)
L = Len(Treffer)
For i = 1 To Len(T1) - L + 1
If Mid(T1, i, L) = T2 Then AnzahlTreffer = AnzahlTreffer + 1
Next i
End Function

Viel Spass
Yal
Bild

Betrifft: AW: OXXOXXO als 1 oder 2 Treffer?
von: Mike
Geschrieben am: 08.12.2006 14:32:21
Auch Dir VIELEN DANK FÜR DIE HILFE!
Schönes Wochenende und Gruß aus Bayern
Mike
Bild

Betrifft: AW: Anzahl einer Zeichenfolge in Zelle finden
von: Yal

Geschrieben am: 08.12.2006 13:17:46
Hi,
ich habe eine lustige Lösung mit Verwendung von "WECHSELN", da diese das "n-tes" Auftreten eines Matching verwendet.
Die erste Lösung passt nicht in nur einer Zelle:
=NICHT(ISTFEHLER(FINDEN("!";WECHSELN($A$2;B$4;"!";$A6))))*$A6
Die zweite habe ich auf 3, bzw. mehr als 3 begrenzt. 'Ist schon in diese bescheidene Umfang irrsinnig:
=WENN(ISTFEHLER(FINDEN("!";WECHSELN($A$2;B$4;"!";1)));0;WENN(ISTFEHLER(FINDEN("!";WECHSELN($A$2;B$4;"!";2)));1;WENN(ISTFEHLER(FINDEN("!";WECHSELN($A$2;B$4;"!";3)));2;WENN(ISTFEHLER(FINDEN("!";WECHSELN($A$2;B$4;"!";1)));3;"mehr als 3"))))
Um das zu kürzen ist wahrscheinlich die Programmierung eine eigene Funktion notwendig.
Schwer zu verstehen? Siehe:
https://www.herber.de/bbs/user/38829.xls
Viel Erfolg
Yal
 Bild
Excel-Beispiele zum Thema "Anzahl einer Zeichenfolge in Zelle finden"
Seitenanzahl eintragen Funktion ANZAHL2 ohne ausgeblendete Spalten
Anzahl der über ParamArray festgelegten Parameter Anzahl eines bestimmten Wochentages im Monat
Anzahl der einzufügenden Zeilen abfragen Bestimmte Anzahl von Zeichen zulassen
Seitennummer und Seitenanzahl per VBA in Kopfzeile Nur AJM in TextBox akzeptieren und Anzahl zählen
Anzahl von CheckBoxes in einer UserForm ermitteln Anzahl der gelb hinterlegten Zellen ermitteln