Wenn Wert aus Tabelle in String enthalten - ohne VBA
#1
Hallo zusammen,

ich benötige für eine Abfrage die Möglichkeit, Strings mit einem Bereich (36 Werte) zu vergleichen. Sollte einer der 36 Werte, ein Teilstring in dem zu durchsuchenden String sein, soll WAHR ausgegeben werden.
Beispiel:
  • 1,4B,3,5,8C soll durchsucht werden, ob 5B enthalten ist --> FALSCH
  • 1,4B,3,5,8C soll durchsucht werden, ob 8C enthalten ist --> WAHR
  • 1,4B,3,5,8C soll durchsucht werden, ob 4 enthalten ist --> WAHR
Einfache Werte wie oben dargestellt zu finden ist kein Problem, das geht mit Finden() wunderbar, jedoch reicht es in meinem Fall, wenn einer der 36 Werte in dem String enthalten ist.
Dazu finde ich bisher nichts im Internet.

Die echte Problemstellung: //verkürzt zur Übersichtlichkeit, Werte sind bspw. im Bereich $H$4:$Q$7
  • 1,4B,3,5,8C soll durchsucht werden, ob einer der Werte [1C|2B|2C|3A|5B] enthalten ist --> FALSCH
  • 1,4B,3,5,8C soll durchsucht werden, ob einer der Werte [1B|2|4B|3A|8C|9] enthalten ist --> WAHR
  • 1,4B,3,5,8C soll durchsucht werden, ob einer der Werte [1A|3B|4] enthalten ist --> WAHR

Im Anhang ist eine Excel die genau das Problem nochmals darstellt

Bei der Lösung ist mir wichtig, dass sie keinerlei VBA enthält und im Idealfall mit Excel 2010 kompatibel ist, da ich nicht der alleinige Nutzer dieser Tabelle sein werde.

Habt ihr kreative Lösungsideen?
Gruß


Angehängte Dateien
.xlsx   Test Abfrage.xlsx (Größe: 10,07 KB / Downloads: 10)
Antworten Top
#2
Hallo,

wieso ist denn z.B. in Zelle C3 ein "wahr"? - habs gefunden...

Hallo,

also ich würde Text in Spalten und Zählenwenns wählen...

Ich habe das mal vorbereitet - habe aber Differenzen zu deiner Auswertung... sieh' es dir mal an...


Angehängte Dateien
.xlsx   Test Abfrage.xlsx (Größe: 12,65 KB / Downloads: 3)
Antworten Top
#3
Hi,

ohne Hilfsspalten sollte das hier funktionieren:

C3:
=ANZAHL(WENN($I$4:$Q$7<>"";FINDEN($I$4:$Q$7;$B3)))>0

D3:
=ANZAHL(WENN($I$10:$Q$13<>"";FINDEN($I$10:$Q$13;$B3)))>0

In Deiner Excelversion noch als Arrayformel mit Strg+Shift+Enter abschließen.

Beide Formeln runterkopieren.

Fun Fact am Rande:

Eigentlich sollte es auch ohne die vorgeschaltete WENN-Abfrage funktionieren - tut es aber nicht:

In C3 ergibt
=ANZAHL(FINDEN($I$4:$Q$7;$B3))
im Ergebnis 32 ?!?

Bindet man hingegen den Bereich I4:Q7 als Matrixkonstante ein
=ANZAHL(FINDEN({0.2.0.0.0.0.7.0.9;"1A".0.0.0.0.0.0.0.0;0.0.0.0.0.0.0."8B".0;0.0.0.0.0.0.0.0.0};$B3))
liefert die Formel korrekt 1 als Ergebnis...?!?

Bin gerade etwas irritiert...
Antworten Top
#4
Hi,

danke für eure beiden Antworten, tatsächlich und das beweist mal wieder Dummheit, hatte ich deine Formel @{Boris} bereits, nur nie (bewusst) als Arrayformel, Excel hat sich nicht beschwert und manchmal hats geklappt und manchmal nicht...

Vielen Dank für eure schnellen und präzisen Antworten, das hat mir echt geholfen!

Gruß und schöne Feiertage!
Antworten Top
#5
=ODER(INDEX(ISTZAHL(FINDEN(B4:Q7;A1));))
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#6
@Boris

So paßt's:
Code:
=ANZAHL(FINDEN(--$I$4:$Q$7;$B3))
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#7
Holzwege? Gesucht werden alpha, nicht num
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#8
Hallo shift-del,

bei deiner Formel hätte ich eine Frage:

Bei Person 16 steht 1,7B - in der Kategorie finde ich weder 1 noch 7B...
Antworten Top
#9
@LCohen
@rate mit

Ich hatte mich nur auf die Formel von Boris konzentriert und nicht auf die ursprüngliche Fragestellung.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#10
@LCohen: Funktioniert nicht.

@all: Wenn ich Formelverständnisfragen habe, möchte ich in 100% der Fällen keine Alternativformel, sondern eine Erklärung für ein bestimmtes Verhalten.

[EDIT]99,9%
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste