
Ich möchte die SWITCH-Funktion verwenden, um festzustellen, ob eine Zahl zwischen zwei anderen Zahlen liegt, wenn nicht, den nächsten Zahlenbereich testen und so weiter.
Das Ziel besteht darin, eine einzellige Antwort zu erhalten und dann die Formel in eine Spalte (in diesem Beispiel mit Datumsangaben) zu kopieren.
Ich habe Folgendes versucht:
=SWITCH(MONTH(44562);{1;2;3};"T1";{4;5;6};"T2";{7;8;9};"T3";{10;11;12};"T4")
Aber die Funktion wird für jedes Element des Arrays ausgeführt und der Vergleich wird auf Array-Ebene durchgeführt:
Ich könnte dies umgehen, indem ich eine IFS-Funktion verwende, aber dazu müsste ich für jedes Argumentenpaar den logischen Test schreiben (und auswerten) und das möchte ich vermeiden.
Vielleicht gehe ich das Problem aus dem falschen Blickwinkel an, aber ich würde trotzdem gerne wissen, ob diese Verwendung von SWITCH irgendwie möglich ist. Vielen Dank im Voraus.
Die Antworten :
Die Version von Reddy Lutonadio ist sehr flexibel, was Listen mit unterschiedlichen Werten angeht. Diese Version habe ich akzeptiert.
Das von Ron Rosenfeld ist sehr kompakt, effizient und kann mit reellen Zahlen arbeiten, aber die Listen müssen die gleiche Länge haben.
Meine Meinung: Verwenden Sie IFS für komplexere Situationen (und fügen Sie möglicherweise die LET-Funktion hinzu).
Antwort1
LET
Sie können eine Kombination der Funktionen , SWITCH
, FILTER
, NOT
und ausprobieren, ISERROR
wie in der folgenden Formel gezeigt
=LET(x,SWITCH(MONTH(F1),{1,2,3},"T1",{4,5,6},"T2",{7,8,9},"T3",{10,11,12},"T4"),FILTER(x,NOT(ISERROR(x))))
- LET-Funktion: ermöglicht die Berechnung
x
(das ist die SWITCH-Formel) nur einmal. - NOT (ISERROR)-Funktionen: Gibt die Zeilen zurück, die keinen Fehler aufweisen.
- FILTER-Funktion: Gibt den einzigen korrekten Wert zurück.
Antwort2
Simpler ist für Ihre Anforderungen möglicherweise nicht flexibel genug. Um jedoch dasselbe Ergebnis zu erhalten, verwenden Sie SWITCH
:
=SWITCH(INT((MONTH(A1)-1)/3)+1,1,"T1",2,"T2",3,"T3",4,"T4")
Sie können das gleiche Ergebnis mit einer einfacheren Formel erzielen:
=TEXT(INT((MONTH(A1)-1)/3)+1,"\T0")
=CHOOSE(INT((MONTH(A1)-1)/3)+1,"T1","T2","T3","T4")