Hallo zusammen,
wie erstelle ich eine "funstion", die mir als Boolschen Wert ein "TRUE" übergibt, wenn ein bestimmter Wert im Sheet enthalten ist.
D.h. die "function" soll eine Spalte (z.B.: 2) String durchsuchen, bis zum ersten mal der gesuchte Wert auftritt. Ist der Wert gefunden, soll die "function" beendet werden und ein "TRUE" zurückgeben, wird der Wert nicht gefunden, wird "FALSE" zurückgegeben.
Wie realisiere ich das?
Grüßle
Alex
function Suche_String (Makro)
Moderator: Moderatoren
Ich habe eine ganze Zeit probiert und ich bin nicht sicher ob das Folgende die eleganteste Möglichkeit ist, aber es funktioniert zunächst mal.
Das hier liefert Wahr/Falsch (boolsche Werte):
=NICHT(ISTFEHLER(VERWEIS("dein_text";B1:B100)))
Das hier liefert 1/0 als boolsche Werte:
=N(NICHT(ISTFEHLER(VERWEIS("dein_text";B1:B100))))
Das hier liefert True/False als Strings:
=WENN(N(NICHT(ISTFEHLER(VERWEIS("dein_text";B1:B100))))=1;"TRUE";"FALSE")
Das Ergebnis aller 3 Formeln ist immer wahr wenn der gesuchte String mindestens einmal in der Spalte vorhanden ist.
Ich weiß nicht ob diese Art des Vorgehens für Deine Zwecke explizit nötig ist:
Gruß
Stephan
Das hier liefert Wahr/Falsch (boolsche Werte):
=NICHT(ISTFEHLER(VERWEIS("dein_text";B1:B100)))
Das hier liefert 1/0 als boolsche Werte:
=N(NICHT(ISTFEHLER(VERWEIS("dein_text";B1:B100))))
Das hier liefert True/False als Strings:
=WENN(N(NICHT(ISTFEHLER(VERWEIS("dein_text";B1:B100))))=1;"TRUE";"FALSE")
Das Ergebnis aller 3 Formeln ist immer wahr wenn der gesuchte String mindestens einmal in der Spalte vorhanden ist.
Ich weiß nicht ob diese Art des Vorgehens für Deine Zwecke explizit nötig ist:
denn die 3 Formeln prüfen alle Zellen (B1 bis B100) komplett durch, ohne Rücksicht ob der String schon z.B. in Zelle B2 gefunden wird. Sollte es Dir darauf ankommen nur solange zu suchen bis der String erstmalig gefunden wird müßtest Du wohl eine benutzerdefinierte Funktion dafür selber schreiben.D.h. die "function" soll eine Spalte (z.B.: 2) String durchsuchen, bis zum ersten mal der gesuchte Wert auftritt.
Gruß
Stephan
In Basic ist das doch viel einfacher als als Formel in einer Zelle. Was bedeutet denn Suchen - doch nur einen Vergleich des vorhandenen Wertes mit dem gesuchten Wert (klar gibt es auch einen Code für Suchen ist doch aber garnicht nötig). Verwebnde z.B.:
Das ist schon alles.
Gruß
Stephan
Code: Alles auswählen
Sub Main
a = zellwert()
msgbox a
End Sub
function zellwert()
wert = thisComponent.Sheets(1)
'erhöhe den Endwert bei Bedarf
for i = 0 to 100
'gesucht wird in Spalte B
if wert.getCellByPosition(1,i).string = "mein_string" Then
zellwert = "True"
exit function
end if
Next i
zellwert = "False"
end function
???der jetzt mal probiert, ob der Makrorecorder ein Ergebnis mit Deinen Formeln bringt
Gruß
Stephan