我想使用 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
答案2
Simpler 可能不够灵活,无法满足您的需求。但要返回相同的结果,请使用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")