如何使用Excel Switch函數比較數值範圍

如何使用Excel Switch函數比較數值範圍

我想使用 SWITCH 函數來檢測一個數字是否在其他兩個數字之間,如果不測試下一個數字範圍,依此類推。

目標是獲得一個單元格答案,然後將公式複製到一列(本例中為日期)。

我試過這個:

=SWITCH(MONTH(44562);{1;2;3};"T1";{4;5;6};"T2";{7;8;9};"T3";{10;11;12};"T4")

但是該函數會溢出數組的每個元素,並且比較是按數組的級別完成的:

我可以透過使用 IFS 函數來解決這個問題,但這需要為每對參數編寫(並評估)邏輯測試,這就是我想避免的。

也許我從錯誤的角度解決這個問題,但我仍然想知道 SWITCH 的這種用法是否可能。先感謝您。


答案:

Reddy Lutonadio 的一個對於不同值的列表非常靈活。這是我接受的。

Ron Rosenfeld 的一個非常緊湊、高效,可以處理實數,但清單必須具有相同的長度。

我的觀點:對於更複雜的情況使用 IFS(也許可以在組合中加入 LET 函數)。

答案1

您可以嘗試組合LETSWITCHFILTER和函數NOTISERROR如下面的公式所示

=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 函數:允許只計算x一次(這是 SWITCH 公式)。
  • NOT (ISERROR) 函數:傳回沒有錯誤的行。
  • FILTER 函數:傳回唯一正確的值。

在此輸入影像描述

答案2

更簡單的可能不夠靈活以滿足您的需求。但要傳回相同的結果,請使用SWITCH

=SWITCH(INT((MONTH(A1)-1)/3)+1,1,"T1",2,"T2",3,"T3",4,"T4")

您可以使用更簡單的公式來獲得相同的結果:

=TEXT(INT((MONTH(A1)-1)/3)+1,"\T0")    
=CHOOSE(INT((MONTH(A1)-1)/3)+1,"T1","T2","T3","T4")

相關內容