To stara sprawa, ale to rozwiązanie dla tych, którzy za pomocą programu Excel 2016 lub nowszy jest można usunąć potrzebę zagnieżdżone, jeśli struktury za pomocą nowego warunkowego warunku są IFS(condition1, return1 [,condition2, return2] ...)
.
Mam sformatowany to, aby wizualnie jaśniejszy od tego, jak wykorzystać go w przypadku tego pytania:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Od SEARCH
zwraca błąd, jeśli ciąg nie zostanie znaleziony owinąłem go z ISERROR(...)=FALSE
do sprawdź prawdę, a następnie zwróć pożądaną wartość. Byłoby wspaniale, gdyby SEARCH
zwrócił 0 zamiast błędu dla czytelności, ale to tylko jak działa niestety.
Kolejna ważna uwaga jest taka, że IFS
zwróci wynik, który znajdzie jako pierwszy, a zatem kolejność jest ważna. Na przykład, jeśli moje ciągi były Surf, Surfing, Surfs
jako String1,String2,String3
powyżej, a ciąg moich komórek był Surfing
, to pasowałoby do pierwszego terminu zamiast drugiego, ponieważ podciąg to Surf
. Zatem wspólne mianowniki muszą znajdować się na końcu listy. Mój IFS
musiałby być zamawiany, aby Surfing, Surfs, Surf
działał poprawnie (zamienianie Surfing
i Surfs
również działałoby w tym prostym przykładzie), ale Surf
musiałby być ostatni.
Przebieg! Dzięki gwin003 :) Wciąż jestem nieco zaskoczony, że nie ma bardziej intuicyjnej funkcji. – geotheory
Tak, zgadzam się, byłoby miło, gdyby istniała funkcja 'CONTAINS (" Text ", cell)'. – gwin003
Coś utknąłem na początku: naprawdę musisz użyć 'ISNUMBER', a także' SEARCH'. Używałem tego wewnątrz 'IF' i wymyśliłem:' = JEŻELI (ISNUMBER (SZUKAJ ($ G 1, A73)), A73, B73) ' – Matthew