Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
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

bestimmtes Word in Spalte suchen

bestimmtes Word in Spalte suchen
10.02.2019 14:58:54
Werner
Hallo Fachleute,
ich möchte gerne prüfen, ob in einer bestimmten Spalte (ich kann den Bereich bei Bedarf auch eingrenzen; Range-Angabe) ein bestimmtes Wort vorkommt. Wichtig ist mir dabei, dass es sich um ein Wort handelt, und nicht um einen Teil eines anderen Wortes. Als Ergebnis benötige ich nur die Anzahl der gefundenen Wörter. Wenn die Anzahl = 1 ist, dann wird dieses Wort nicht ein weiteres mal benuzt.
Wie kann ich dieses Problem lösen?
Gruß aus dem Schwabenland
Werner

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmtes Word in Spalte suchen
10.02.2019 15:21:44
Nepumuk
Hallo Werner,
so kannst du im Bereich D1:D10 nach dem Wort "test" suchen.
Public Sub Beispiel()
    MsgBox WorksheetFunction.CountIf(Range("D1:D10"), "test")
End Sub

Groß- Kleinschreibung wird nicht beachtet.
Gruß
Nepumuk
Anzeige
Testament Test Attest testieren wäre 1 ?
10.02.2019 15:35:24
WF
.
AW: Testament Test Attest testieren wäre 1 ?
10.02.2019 15:40:51
Nepumuk
Hallo Walter,
wie gewünscht:
dass es sich um ein Wort handelt, und nicht um einen Teil eines anderen Wortes
Gruß
Nepumuk
Dann kann VBA doch was,
10.02.2019 15:47:22
WF
wenn das so einfach funktioniert.
WF
Das ist doch nur Zählenwenn() ! (owT)
10.02.2019 16:53:33
EtoPHG

AW: Testament Test Attest testieren wäre 1 ?
10.02.2019 18:10:07
Werner
Hallo Walter, Hallo Nepumuk,
vielen Dank für Eure Antworten. Leider funktioniert die vorgeschlagene Lösung nur, wenn in der Zelle nur dieses eine Wort steht. Sind noch andere Wörter in dieser Zelle, so wird der Begriff nicht gefunden.
Ich gebe ja zu, dass das in meiner Aufgabenstellung nicht so genau beschrieben war.
Tatsache ist, dass in jeder Zelle mehrere Worte stehen können. Und davon suche ich ein ganz bestimmtes.
Gruß
Werner
Anzeige
AW: Testament Test Attest testieren wäre 1 ?
10.02.2019 18:24:34
Hajo_Zi
Halo Werner,
Public Sub Beispiel()
MsgBox WorksheetFunction.CountIf(Range("D1:D10"), "*test*")
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Testament Test Attest testieren wäre 1 ?
10.02.2019 20:12:04
Nepumuk
Hallo Werner,
was besseres ist mir nicht eingefallen:
Public Sub Zaehlen()
    Const SEARCH_STRING As String = "test"
    Dim objCell As Range
    Dim strFirstAddress As String
    Dim vntItem As Variant
    Dim lngCount As Long
    With Worksheets("Tabelle1").Range("D1:D10")
        Set objCell = .Find(What:=SEARCH_STRING, _
            LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
        If Not objCell Is Nothing Then
            strFirstAddress = objCell.Address
            Do
                For Each vntItem In Split(LCase$(objCell.Text))
                    If vntItem = LCase$(SEARCH_STRING) Then
                        lngCount = lngCount + 1
                        Exit For
                    End If
                Next
                Set objCell = .FindNext(After:=objCell)
            Loop Until objCell.Address = strFirstAddress
        End If
    End With
    MsgBox lngCount
End Sub

Gruß
Nepumuk
Anzeige
Nachfrage
10.02.2019 20:14:39
Nepumuk
Ich nochmal,
was wenn das Wort in einer Zelle mehrfach vorkommt?
Gruß
Nepumuk
konkretes Wort (auch mehrfach) in Spalte zählen
10.02.2019 20:39:29
WF
Hi,
in Spalte A stehen Worte und Sätze
Das darin vorkommende Wort in B1 soll gezählt werden (B1 kann auch mehrfach pro Zelle vorkommen)
=SUMMENPRODUKT((LÄNGE(" "&A1:A99&" ")-LÄNGE(WECHSELN(" "&A1:A99&" ";" "&B1&" ";)))/(LÄNGE(B1)+2))
WF
Das berücksichtigt jetzt keine Satzzeichen. Die müssten dann noch eliminiert werden.
AW: konkretes Wort (auch mehrfach) in Spalte zählen
11.02.2019 09:35:52
Werner
Hallo Hajo.
Dein Vorschlag mit "CountIf" findet auch Worte, in denen der String des gesuchten Wortes enthalten ist. Deshalb scheidet dieser Vorschlag leider aus.
Hallo Nepumuk.
Habe Deine Code probiert. Allerdings findet der den Begriff nur dann, wenn er nicht mit anderen Begriffen zusammengeschrieben ist. Z. B. mit einem nachfolgenden "." oder der Begriff in "()" steht.
Hallo MF.
Bei Deinem Vorschlag habe ich ein Problem: ich möchte es unter VBA benutzen, und nicht als Formel in eine Zelle einfügen. Deshalb habe ich versucht, den Recorder zu benutzen, um mir anzuzeigen, was er aus Deiner Formel macht. Ergebnis: der Recorder hat nichts aufgezeichnet.
Außerdem hat Du selbst erwähnt, dass Satzzeichen noch berücksichtigt werden müssen.
Anscheinend ist es nicht ganz einfach, meine Aufgabe zu lösen. Ich habe mich deshalb dazu entschlossen, das Problem als erledigt zu kennzeichnen und selbst nach einer anderen Lösung zu suchen.
Nochmals "Danke" an alle, die mir Vorschläge gemacht haben.
Gruß Werner
Anzeige
Satzzeichen eliminieren ist kein Problem
11.02.2019 09:54:56
WF
Hi,
=SUMMENPRODUKT((LÄNGE(" "&A1:A99&" ")-LÄNGE(WECHSELN(WECHSELN(WECHSELN(" "&A1:A99&" ";".";" ");","; " ");" "&B1&" ";)))/(LÄNGE(B1)+2))
Ich hab jetzt nur Punkt und Komma rausgeschmissen - weitere nach gleichem Strickmuster.
WF
AW: Satzzeichen eliminieren ist kein Problem
11.02.2019 16:19:25
Werner
Hallo WF,
herzlichen Dank für Deine Erweiterung. Allerdings ist Dein Vorschlag für mich nicht zu durchschauen. Sie mir bitte nicht böse, wenn ich Deinen Vorschlag nicht mehr weiter verfolge.
Ich habe inzwischen eine Lösung erarbeitet. Basis ist der Codiervorschlag von Nepumuk. Von seinem Code lass ich mir die Zeilen ausfiltern, in welcher der "Begriff" vorkommt. Den "Treffer" übernehme ich. Dann ersetzte ich die (störenden) Sonderzeichen jeweils durch ein Leerzeichen, füge vor und nach der Zeile jeweils ein Leerzeichen ein, und vergleiche dann mit meinem Suchbegriff, welchem ich ebenfalls ein Leerzeichen vorangestellt, und hinten eines angefügt habe.
Für mich ist auch von Vorteil, dass ich den Code von Nepumuk (dank Einzelschritt und Debug.Print) inzwischen voll verstanden habe.
Die Leerzeichen zu Beginn der Zeile brauche ich, weil bei meinem (internen) Suchbegriff nun auch ein Leerzeichen vorangestellt ist. Oder ich müsste eine Sonderlösung basteln, wenn der von Nepumuks Routine gefundene Begriff am Zeilenanfang steht. Ebenso brauche ich am Zeilenende das Leerzeichen, sonst würde ich ein gesuchtes Word am Zeilenende nicht erkennen, weil auch meinem (internen) Suchbegriff ein Leerzeichen hinten angefügt wurde.
Nochmals herzlichen Dank.
Gruß Werner
Anzeige
Das scheint analog meines Vorschlags zu sein! owT
12.02.2019 11:24:15
Luc:-?
:-?
AW: Das scheint analog meines Vorschlags zu sein! owT
12.02.2019 16:47:05
Werner
Hallo Luc,
aber als Dein Vorschlag kam, war meine Lösung schon (fast) fertig.
Trotzdem: Danke.
Gruß Werner
Na dann - Glückwunsch! ;-] owT
12.02.2019 20:36:41
Luc:-?
:-?
Bereinigter Text
11.02.2019 14:42:22
Luc:-?
Hallo, Werner;
mit folgender Fml (mit UDF, Text in A1) erhältst du einen von allen anderen Zeichen (außer erzeugte Leerzeichen) bereinigten Text: =MaskOn(A1;"anu")
Es bleiben nur Buchstaben A-ZÄÖÜa-zßäöü und Ziffern übrig. Alle anderen Zeichen wdn durch Leerzeichen, die auf maximal eines als WortZwischenraum reduziert wdn, ersetzt. Wenn du jetzt noch je ein Leerzeichen vor und nach diesen Text setzt (die UDF MaskOn ent­fernt diese sonst ebenfalls, analog GLÄTTEN), =" "&MaskOn(A1;"anu")&" ", könntest du mit Xl-Fktt arbeiten, die Platzhalter zulassen, zB mit der vorhergehenden Fml in einer Hilfsspalte/-zelle (hier B1) auch mit ZÄHLENWENN, falls nur ein Wahrheitswert erforderlich ist (Suchwort in C1): =ZÄHLENWENN(B1;"* "&C1&" *")>0
Oder (nicht mit FINDEN, sondern) mit SUCHEN (ohne Hilfszelle B1):
=WENNFEHLER(SUCHEN("* "&C1&" *";" "&MaskOn(A1;"anu")&" ")>0;FALSCH)
ArchivLink zur UDF:
MaskOn (Vs2.1) https://www.herber.de/forum/archiv/1344to1348/1344962_Initialen_bei_Doppelnamen.html#1345181
Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige