2012-05-10 48 views
17

Wymagania:IF - ELSE IF - ELSE Struktura w Excelu

Jeżeli łańcuch w komórce A1 zawiera "ABC" jako część ciągu

następnie przypisać wartość "zielony"

Else jeśli ciąg w komórce A1 zawiera „xyz” jako część ciągu

Następnie przypisz wartość „żółty”

Else

wartość Assign "Red"

Próbowałem to:

=IF(FIND("~",SUBSTITUTE(A1,"abc","~",1))<>"#VALUE!", "Green", IF(FIND("~",SUBSTITUTE(A1,"xyz","~",1))<>"#VALUE!", "Yellow", "Red"))

Działa jeśli pierwszy IF jest prawdziwe w innych przypadkach daje #ARG! jako wynik.

Nie mogę stwierdzić, co jest nie tak.

Odpowiedz

28

Kiedy FIND powraca #VALUE!, że jest to błąd, a nie ciąg znaków, więc nie można porównać FIND(...) z "#VALUE!", trzeba sprawdzić, czy FIND zwraca błąd z ISERROR. Również FIND może działać na wielu znakach.

więc uproszczona i działa wersja formule byłoby:

=IF(ISERROR(FIND("abc",A1))=FALSE, "Green", IF(ISERROR(FIND("xyz",A1))=FALSE, "Yellow", "Red")) 

Lub, aby usunąć podwójne negacji:

=IF(ISERROR(FIND("abc",A1)), IF(ISERROR(FIND("xyz",A1)), "Red", "Yellow"),"Green") 
+1

+ 1 miło i prosto :) –

+0

Słodko! Pracował jak urok. – RazrBoy

6
=IF(CR<=10, "RED", if(CR<50, "YELLOW", if(CR<101, "GREEN"))) 

CR = ColRow (Cell) To jest przykład. W tym przykładzie, gdy wartość w komórce jest mniejsza niż lub równa 10, słowo RED pojawi się w tej komórce. W ten sam sposób inny jeśli warunki są prawdziwe, jeśli pierwszy, jeśli jest fałszywy.