IF Bedingungen in EXCEL (VBA) erstellen
Hallo Leute,
ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ja dann soll er mir in der Spalte daneben das Wort hinschreiben, aber nur die ersten 6 Buchstaben
ich schaffe nur eine IF Bedingung, aber ich möchte sie gerne verschachteln...es sollten 5 if Bedingungen am Ende dann dastehen
hier meine IF Bedingung => =IF(ISNUMBER(SEARCH("Mount Everest",CB3)),LEFT(CB3,6)), es funktioniert, aber wie kann ich mehrere IF Bedingungen dort einbauen, geht wahrscheinlich mit VBA oder? wie würde das dann aussehen?
thanks
ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ja dann soll er mir in der Spalte daneben das Wort hinschreiben, aber nur die ersten 6 Buchstaben
ich schaffe nur eine IF Bedingung, aber ich möchte sie gerne verschachteln...es sollten 5 if Bedingungen am Ende dann dastehen
hier meine IF Bedingung => =IF(ISNUMBER(SEARCH("Mount Everest",CB3)),LEFT(CB3,6)), es funktioniert, aber wie kann ich mehrere IF Bedingungen dort einbauen, geht wahrscheinlich mit VBA oder? wie würde das dann aussehen?
thanks
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 233475
Url: https://administrator.de/contentid/233475
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo,
F1 in Excel hilft dir dabei.
Gruß,
Peter
Zitat von @user2k14:
aber wie kann ich mehrere IF Bedingungen dort einbauen, geht wahrscheinlich mit VBA oder? wie würde das dann aussehen?
In VBA mit einer oder mehrerer If...Then...Else-Anweisung(en) oder in dein (deutsches?) Excel in einer Zelle mit =Wenn(Prüfung;[Dann_Wert;[Sonst_Wert]) und du dir eben in einen Dann oder Sonst Feld dir weitere Wenn(Prüfung; [Dann];[Sonst]) aufbaust. Das verschachteln von wenn ... dann bedingungen hat aber seine Grenzen.aber wie kann ich mehrere IF Bedingungen dort einbauen, geht wahrscheinlich mit VBA oder? wie würde das dann aussehen?
F1 in Excel hilft dir dabei.
Gruß,
Peter
Hallo Dani,
du solltest dazu die CASE Select Funktion nehmen.
Wie du sieh verwendest, ist hier: http://www.office-loesung.de/ftopic177172_0_0_asc.php schön beschrieben.
Einfach Tabelle nach der Spalte sortieren, die auf den bestimmten Text geprüft werden soll.
Anschließend hast du alle Zeilen mit deinen Suchkriterien untereinander und brauchst nur noch über Excel Funktion RECHTS das rausschneiden was du haben willst.
Sollte eine Sache von max. 10 min sein.
grüße vom it-frosch
du solltest dazu die CASE Select Funktion nehmen.
Wie du sieh verwendest, ist hier: http://www.office-loesung.de/ftopic177172_0_0_asc.php schön beschrieben.
ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ja dann soll er mir in der Spalte daneben das Wort
hinschreiben, aber nur die ersten 6 Buchstaben
Eigentlich brauchst du dazu kein VBA.hinschreiben, aber nur die ersten 6 Buchstaben
Einfach Tabelle nach der Spalte sortieren, die auf den bestimmten Text geprüft werden soll.
Anschließend hast du alle Zeilen mit deinen Suchkriterien untereinander und brauchst nur noch über Excel Funktion RECHTS das rausschneiden was du haben willst.
Sollte eine Sache von max. 10 min sein.
grüße vom it-frosch
Hallo Dani,
Hier ist eine Formel, die deinen Ansprüchen gerecht werden könnte:
Gruß,
@Snowman25
€dit:
Jetzt auch mit RECHTS() anstelle von TEIL()
Hier ist eine Formel, die deinen Ansprüchen gerecht werden könnte:
=WENN(A1="HEUTE";TEIL(B1;4;LÄNGE(B1)-3);WENN(A1="Morgen";TEIL(B1;3;LÄNGE(B1)-2);WENN(A1="Übermorgen";TEIL(B1;7;LÄNGE(B1)-6);WENN(A1="JAHR";TEIL(B1;5;LÄNGE(B1)-4);B1))))
Gruß,
@Snowman25
€dit:
Jetzt auch mit RECHTS() anstelle von TEIL()
=WENN(A1="HEUTE";RECHTS(B1;LÄNGE(B1)-3);WENN(A1="Morgen";RECHTS(B1;LÄNGE(B1)-2);WENN(A1="Übermorgen";RECHTS(B1;LÄNGE(B1)-6);WENN(A1="JAHR";RECHTS(B1;LÄNGE(B1)-4);B1))))
Hi user2k14,
und wenn's VBA sein soll:
Für das Beispiel werden hier die Zellen "A1:A100" auf dem ersten Worksheet überprüft, und dann die Werte in die Zelle daneben geschrieben.
Grüße Uwe
-edit- Reihenfolge korrigiert. Merci @Biber, da hat das Fieber von heute doch Konsequenzen gehabt
und wenn's VBA sein soll:
Für das Beispiel werden hier die Zellen "A1:A100" auf dem ersten Worksheet überprüft, und dann die Werte in die Zelle daneben geschrieben.
Sub stripChars()
Set ws = Worksheets(1)
For Each cell In ws.Range("A1:A100")
Set nachbarzelle = cell.Offset(0, 1)
If InStr(1, cell.Value, "Heute", 1) Then
nachbarzelle.Value = Mid(cell.Value, 4)
ElseIf InStr(1, cell.Value, "Übermorgen", 1) Then
nachbarzelle.Value = Mid(cell.Value, 7)
ElseIf InStr(1, cell.Value, "Morgen", 1) Then
nachbarzelle.Value = Mid(cell.Value, 3)
ElseIf InStr(1, cell.Value, "Jahr", 1) Then
nachbarzelle.Value = Mid(cell.Value, 5)
Else
nachbarzelle.Value = cell.Value
End If
Next
End Sub
-edit- Reihenfolge korrigiert. Merci @Biber, da hat das Fieber von heute doch Konsequenzen gehabt
[OT]
Moin Snowman25 und colinardo,
ich nehme es seit Jahrzehnten schon stillschweigend hin, dass andere Mitmenschen mit Montagen weniger Probleme haben als ich.
Und das den meisten montags nicht ganz so viele Denkfehler passieren wie mir.
Aber wie ihr beide mit eurer Prüf-Reihenfolge jemals den String "Übermorgen" finden könnt - das ist nicht spielerische Leichtigkeit, das ist Zauberei.
Ich würde besser die Reihenfolge der WENNs bzw IFs abändern und zuerst auf "übermorgen" und erst danach auf "morgen" prüfen.
...weil wegen.... kleiner Tipp ... dieses proof-of-concept hier ,liefert die Anzahl der im Text "ein Test für übermorgen" gefundenen 4 Worte in der Array-Klammer.
Bitte als Matrixformel eingeben mit Ctrl-Shift-Enter
-> Ergebnis 2 Treffer in dem String.
Da die WENN/IF-Strukturen aber nur einen Treffer anzeigen, nämlich den zuerst geprüften.....
Grüße
Biber
[/OT]
Moin Snowman25 und colinardo,
ich nehme es seit Jahrzehnten schon stillschweigend hin, dass andere Mitmenschen mit Montagen weniger Probleme haben als ich.
Und das den meisten montags nicht ganz so viele Denkfehler passieren wie mir.
Aber wie ihr beide mit eurer Prüf-Reihenfolge jemals den String "Übermorgen" finden könnt - das ist nicht spielerische Leichtigkeit, das ist Zauberei.
Ich würde besser die Reihenfolge der WENNs bzw IFs abändern und zuerst auf "übermorgen" und erst danach auf "morgen" prüfen.
...weil wegen.... kleiner Tipp ... dieses proof-of-concept hier ,liefert die Anzahl der im Text "ein Test für übermorgen" gefundenen 4 Worte in der Array-Klammer.
Bitte als Matrixformel eingeben mit Ctrl-Shift-Enter
=SUMME(--ISTZAHL(SUCHEN({"heute"."morgen"."übermorgen"."Jahr"};"ein Test für übermorgen")))
-> Ergebnis 2 Treffer in dem String.
Da die WENN/IF-Strukturen aber nur einen Treffer anzeigen, nämlich den zuerst geprüften.....
Grüße
Biber
[/OT]
Hey @Biber,
naja, wenn man den kompletten Zelleninhalt vergleicht, ist das MATCH einzigartig und die Reihenfolge damit vernachlässigbar.
Ausserdem haben wir strikt nach Vorgabe gearbeitet. Die Aufgabenstellung war bloß falsch .
Gruß,
@Snowman25
naja, wenn man den kompletten Zelleninhalt vergleicht, ist das MATCH einzigartig und die Reihenfolge damit vernachlässigbar.
Ausserdem haben wir strikt nach Vorgabe gearbeitet. Die Aufgabenstellung war bloß falsch .
Gruß,
@Snowman25
Moin Snowman25,
ja nee... wenn du den kompletten Zellenunhalt vergleichst, dann machst du das in deinem Beispiel in Spalte A und bildest einen Teilstring der Nachbarzelle in Spalte B.
Ich habe aber den TO so verstanden, dass er, falls ein bestimmter Text in Spalte A, Zeile x vorhanden ist, einen Teilstring dieser Zelle Ax in eine andere Zelle schreiben will.
Sollte deine Interpretation mit dem Komplett-Match stimmen, dann können wir auch mit Index()/Vergleich arbeiten.
Grüße
Biber
ja nee... wenn du den kompletten Zellenunhalt vergleichst, dann machst du das in deinem Beispiel in Spalte A und bildest einen Teilstring der Nachbarzelle in Spalte B.
Ich habe aber den TO so verstanden, dass er, falls ein bestimmter Text in Spalte A, Zeile x vorhanden ist, einen Teilstring dieser Zelle Ax in eine andere Zelle schreiben will.
Sollte deine Interpretation mit dem Komplett-Match stimmen, dann können wir auch mit Index()/Vergleich arbeiten.
Grüße
Biber