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

Formel "finden" mehere Suchbegriffe splitten.

Formel "finden" mehere Suchbegriffe splitten.
chris
Hallo Excelexperten,
ich habe eine Formel die ich ändern müsste.
Weiß aber nicht wie und ob es überhaupt geht.
Ich denke vielleicht mit einer Array Formel aber ... ?

=WENN(UND($S7"";X$3"");WENN(ISTFEHLER(FINDEN(X$3;$S7;1)>0);"";"x");"")
Mit dieser Formel suche in ich einer Zelle S7 ob der Wert aus zelle X3 vorhanden ist.
Aktuell können in zelle S7 ein längerer String sein Hauptsache der wert der in zelle X3 steht ist darin vorhanden.
Das soll auch etwa so bleiben.
Mit dem unterschied ich möchte in Zelle X3 mehrere Werte eingeben die gesucht werden sollen in Zelle S7.
Also aktuell wird dieser Wert gefunden
in X3 steht "test"
Zelle S7 = "dfk|0gk|js|testdf|klgnkj"
Würde in Zelle X3 aber stehen "chris,test,alf"
Würde der Wert test nicht gefunden werden da ja die ganze zeichenfolge aus Zelle X3 gesucht wird.
Kann man die suche irgendwie Splitten nach Komma ?
Ich hoffe ihr habt verstanden was ich meine?Würde mich sehr über Hilfe freuen.
Vielen Dank Gruß Chris
AW: Formel "finden" mehere Suchbegriffe splitten.
11.10.2010 11:30:14
Tino
Hallo,
versuch mal so.
Erstelle Dir einen Namen der eine Matrix aus dem Text in X3 ausgibt.
http://www.excelformeln.de/formeln.html?welcher=210
Diesen kannst Du in einer weiteren Matrixformel einbauen.
Beispiel:
 STUVWX
3     chris,test,alf
4      
5      
6      
7dfk|0gk|js|testdf|klgnkjx    

Formeln der Tabelle
ZelleFormel
T7{=WENN(MAX(ZÄHLENWENN(S7;"*"&INDEX(Teil_TxT;ZEILE($1:$100)-1)&"*"))>0;"x";"")}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen
Namen in Formeln
ZelleNameBezieht sich auf
T7Teil_TxT=AUSWERTEN("{"&""""&WECHSELN(Tabelle1!$X$3;",";""""&"."&"""")&""""&"}")
Namen verstehen

Gruß Tino
Anzeige
AW: Formel "finden" mehere Suchbegriffe splitten.
11.10.2010 11:41:26
chris
Hää Tino,
sorry komme nicht mit.
Muss ich dann wenn ich Z.b mehere Spalten habe mit Zeichen die durch komma getrennt sind mehere Namen vergeben ?
Also wenn in x und y und z 3 werte stehen die gesplittet werden müssen ?
Könntest ja mal anrufen Tino.
AW: Formel "finden" mehere Suchbegriffe splitten.
11.10.2010 11:50:23
Tino
Hallo,
anrufen ist zurzeit schlecht, bin nicht in der Firma.
Wenn es mehrere gibt müsste man schon wissen wie viele es sind?
Welche davon sollen zur Auswertung herangezogen werden, alle oder nur bestimmte?
Je nach dem könnte die Aufgabe mehr oder weniger kompliziert oder komplex werden und
ich den Einsatz von VBA vorziehen würde.
Vielleicht sollten wir einfach mal mit der konkreten Aufgabenstellung anfangen und
dann mal schauen was dabei raus kommt. ;-)
Gruß Tino
Anzeige
AW: Formel "finden" mehere Suchbegriffe splitten.
11.10.2010 12:01:41
chris
OK also gut.
Super das du mir hilfsT !
Es geht uim diese Daten.
IN Zelle X3 bis AH3 stehen mit komma getrennte Begriffe.
Diese sollen gesucht werden in Spalte S (Spalte S7 bis S500)
steht nun in Zelle X3 = "chris,michael,test.anton"
und mindestens 1 Name von diesen 4 Namen in Zelle S7 steht soll in Spalte X7 ein "x" erscheinen.
Also Beispiel
X3 = "chris,michael,test.anton"
und
S7 = "meik,steffen,julia,haha"
Dann soll Kein x erscheinen in zelle X7
Steht aber
Y3 = "chris,michael,test.schaschlik"
und
S7 = "test,klaus,fritz,haha,chris"
Dann soll Ein x erscheinen weil der name chris auch in Zelle S7 vorhanden ist.
suchbegriffe stehen in X3 bis AH3
Gesucht sollen diese in Spalte S
Verstehst Du mich ?
Anzeige
AW: Formel "finden" mehere Suchbegriffe splitten.
11.10.2010 12:21:57
chris
Und Tino könntest Du mir daas mit dem Namen erstellen kurz mit erklären ? Anhand des Beispiels auf der anderen Seite blicke ich den zusammenhang nicht ?
Danke
AW: hier ein Beispiel
11.10.2010 12:54:37
chris
Hallo Tino,
also vielen Dank für deine mühen.
es klappt zwar so einigermaßen aber irgendwie steige ich da nicht durch...
Sind ja trotz allem Makros weil ich am Anfang gefragt werde ob ich die Makros aktivieren will.
Wenn ich dann in zeile 3 einen Wert ändere sind alle x verschwunden.
ich glaube ich schreibe was per VBA.
Danke Dir trotzdem und schönen Tag Tino
Anzeige
AW: hier ein Beispiel
11.10.2010 13:09:08
Tino
Hallo,
ich versuche es mal mit meinen Worten zu erklären.
Also in einen Namen kann man Zellbereiche definieren, Formel hinterlegen oder wie in diesem Fall ein Excel4Makro ausführen, dass den Text in einen Matrix- String zusammensetzt (dies sind die geschweiften Klammern), diese einzelnen Fächer der Matrix (stecken nun in diesen Namen) lassen sich in einer weiteren Matrixformel rausziehen und entsprechend in einer passenden Formel einbauen.
Ja "Auswerten" ist ein Excel4Makro, aber eine andere Lösung habe ich nicht.
Excel4Makros sind Überbleibsel aus alten Zeiten.
Ich hoffe, dass ich dies so einigermaßen richtig erklärt habe und die Formelexperten
nicht mit dem Kopf schütteln.
Gruß Tino
Anzeige
VBA Variante (Function)
11.10.2010 14:00:05
Tino
Hallo,
eine VBA Funktion könnte so funktionieren.
In ein Standard Modul diese Funktion.
Option Explicit

Function FindString(rngVerketten As Range, rngSucheIn As Range, sDel$) As String
Dim sDoppel$, tmpRng As Range
Static Regex As Object, strAdress$, sDeli$, sPattern$

If sPattern = "" Or sDeli <> sDel Or strAdress <> rngVerketten.Address Or Regex Is Nothing Then
    
    sDeli = sDel
    strAdress = rngVerketten.Address
    With Application
        For Each tmpRng In rngVerketten.Rows
            sPattern = sPattern & Join(.Transpose(.Transpose(rngVerketten)), sDel) & sDel
        Next tmpRng
    End With
    sDoppel = sDel & sDel
    sPattern = Replace(sPattern, sDoppel, sDel)
    
    Do While InStr(sPattern, sDoppel) > 0
      sPattern = Replace(sPattern, sDoppel, sDel)
    Loop


    If Left$(sPattern, 1) = sDel Then _
        sPattern = Right$(sPattern, Len(sPattern) - 1)
        
    If Right$(sPattern, 1) = sDel Then _
        sPattern = Left$(sPattern, Len(sPattern) - 1)
        
    sPattern = Replace(sPattern, sDel, "|")

    Set Regex = CreateObject("Vbscript.Regexp")

    With Regex
        .IgnoreCase = True
        .MultiLine = True
        .Pattern = sPattern
        .Global = True
    End With
End If

If Regex.test(rngSucheIn.Value) Then
    FindString = "X"
End If


End Function
In Excel kannst Du dies wie eine Formel verwenden.
 ST
7dfk|0gk|js|test1df|klgnkjchriX
8dfk|0gk|js|test1df|klgnkjchriX
9dfk|0gk|js|test2df|klgnkjchriX
10dfk|0gk|js|tesdf|klgnkjchri 
11dfk|0gk|js|tesdf|klgnkjchri 

Formeln der Tabelle
ZelleFormel
T7=FindString($X$3:$AH$3;S7;",")
T8=FindString($X$3:$AH$3;S8;",")
T9=FindString($X$3:$AH$3;S9;",")
T10=FindString($X$3:$AH$3;S10;",")
T11=FindString($X$3:$AH$3;S11;",")

=FindString(Zellen mit den Suchwerten;Zelle wo gesucht werden soll;Trennzeichen das verwendet wird) 
Gruß Tino
Anzeige
AW: VBA Variante (Function)
11.10.2010 18:47:36
chris
Super danke Dir Tino.
Schönen Abend noch !

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige