Excel Formel: Wenn Zelle enthält substring "das" UND "enthält nicht" substring ", die"
Ich versuche zu schreiben, eine Funktion, in der eine Spalte enthält einen substring und nicht enthalten eine andere Zeichenfolge.
Im Beispiel wurde möchte ich meine Funktion gibt 1 zurück, wenn meine Zeile enthält "Projekt" UND " NICHT ENTHALTEN "overhead".
row| example strings | desired return value
0 |some project,other project | 1
1 |some project | 1
2 |overhead | 0
3 |some project, overhead | 0
4 |some project, other, boo | 1
War ich versucht, es zu formulieren erste mit Zeichenfolgen wie:
=IF(AND((E3="some project"),NOT(E3="overhead")),1,0)
Aber das gibt nur richtige Ergebnisse für Zeile 1 und 2, weil es nur tut genau das mach der string anstelle des übereinstimmenden auf die Teilzeichenfolge.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie brauchen, ist eine Art Substring-Funktion. Ich denke
FIND
arbeiten könnte. Schauen Sie sich diese Seite: https://exceljet.net/excel-functions/excel-find-functionIhre Funktion wie:
=IF(AND(ISERROR(FIND("some project", E3))=FALSE,ISERROR(FIND("overhead",E3))),1,0)
EDIT: Oben-Funktion arbeitet nach der Prüfung
Schwierige Teil hier ist, dass
FIND
gibt die Startposition der Zeichenfolge, und wenn es scheitert, es gibt#VALUE
, die ich glaube, Sie fangen mit derISERROR()
Funktion. Dies ist in keiner Weise eine schöne Lösung. Ich würde versuchen, zu nutzen, um die code-behind und schreiben, das ist VBA, wie ich bin sicher, es ist eine richtigesubstring
Funktion in VBA.Wenn Sie können, legen Sie ein wenig VBA-code, dann Sie können verwenden einer benutzerdefinierten Funktion so auf:
Und diese zurück
True
wenn der Wert in E3 enthält beide dieser Teilfolgen. Diese Funktion setzt vor allem auf VBA istInstr
- Funktion, dieFunktion code:
Könnten Sie ändern diese relativ problemlos auf die groß- /Kleinschreibung nicht beachtet, oder zu akzeptieren, die teilweise übereinstimmungen Optional, etc. Hier ist, wie es aussieht, verlängert sich für diese beiden Konzepte:
Funktion Code:
Können Sie tatsächlich nutzen Sie die SUCHE-Funktion, wie diese:
Überlegungen:
=IF(ISNUMBER(FIND("some project",B2)),NOT(ISNUMBER(FIND("overhead",B2)))*1,0)
Hoffe, dass hilft