Wie staffele ich FIND- und IF-Funktionen in Microsoft Excel?

...komplette Frage anzeigen

4 Antworten

wenn  eine Verschachtelung nicht nötig ist, sollte man sie vermeiden. Probiers mal mit:

=if(iserror(find("ground freight",D2,1),"","ground freight")

&if(iserror(find("air freight",D2,1),"","air freight")

&if(iserror(find("sea freight",D2,1),"","sea freight")

das ist übersichtlicher und der Fehlersuche leichter zugänglich (Formelteil markieren und F9 drücken: Teilformelergebnis). Zelle danach wieder mit Esc verlassen

Wenn Du das aber als Muster zum Verständnis brauchst:

Find liefert Fehler(#WERT! = #value!), wenn das Argument NICHT gefunden wird.

Deine Formel würde also in den Fällen B und C liefern:

=if(Error;....da kann dann nichts gescheites mehr rauskommen)

iserror() liefert dagegen einen Wahrheitswert. Ggf noch in der Umkehrung:

=if(Not(iserror(find("ground freight",D2,1)));find("ground freight",D2,1);0)

damit kannst Du dann zB die Findeposition ermitteln (0 bei nicht vorhanden)

Selbstverständlich KANNST du die obigen 3 Funktionen auch verschachteln:

=if(iserror(find("ground freight",D2,1)),if(iserror(find("air freight",D2,1)),if(iserror(find("sea freight",D2,1)),"","sea freight"),"air freight"),"ground freight")

wird eben unübersichtlich.


Sehe grade, dass ich in der Hauptantwort je eine Klammer vergessen habe, also richtig:

=if(iserror(find("ground freight",D2,1)),"","ground freight")

&if(iserror(find("air freight",D2,1)),"","air freight")

&if(iserror(find("sea freight",D2,1)),"","sea freight")

im übrigen würde ich nicht mit Finden() = find() arbeiten, sondern mit der Groß-/klein-toleranten Formel Suchen() = Search() bei gleicher Syntax!



0

Ich kenne das englische Excel nicht so, aber im deutschen müsste man das Semikolon als Parametertrenner nehmen und nicht das ",+" wie bei dir.

Wobei du manchmal ",+" schreibst, manchmal nur ",".

PS: In der deutschen Version würde man außerdem das #WERT noch versuchen, abzufangen: WENN(ISTZAHL(FINDEN(...

0

Das hier sollte funktionieren:

=WENN(WENNFEHLER(FINDEN("ground freight";D2);0)>0;"ground freight";WENN(WENNFEHLER(FINDEN("sea freight";D2);0)>0;"sea freight";WENN(WENNFEHLER(FINDEN("air freight";D2);0)>0;"air freight";"")))

Viele Grüße!

Chazsmyr

Das müsste es auf englisch sein:

=IF(IFERROR(FIND("ground freight";D2);0)>0;"ground freight";IF(IFERROR(FIND("sea freight";D2);0)>0;"sea freight";IF(IFERROR(FIND("air freight";D2);0)>0;"air freight";"")))

0

Alternativ kannst du die Suchwerte auch auf einem zweiten Tabellenblatt (Tabelle2) eingeben und dann über VERWEIS suchen lassen. So ist die Formel einfach erweiterbar:

=VERWEIS(2;1/FINDEN(Tabelle2!$A$1:$A$3;D2);Tabelle2!$A$1:$A$3)

Auf Tabelle2 in Zelle A1 "ground freight", in A2 "sea freight" und in A3 "air freight" schreiben.

So kannst du später einfach die Tabelle2 um weitere Punkte erweitern, passt nur die Formel an den Stellen :$A$3 auf die letzte Zeile an und ziehst sie runter. Leider funktioniert Tabelle2!A:A nicht.

0

nachtrag: es kommt fuer sea freight oder air freight die Meldung #value

Was möchtest Du wissen?