带范围的 Excel Switch 语句

带范围的 Excel Switch 语句

我需要根据另一列(例如 B)中的值填充一列(例如 A)。但是,B 可以有一系列值,我需要根据 B 中的值所在的位置填充 A。我尝试了以下操作,它只返回 TRUE。关于如何在一系列值上切换,您有什么想法吗?

=SWITCH(BT2,AND(BT2>MIN(0), BT2<MAX(1.4)),"LOW",
AND(BT2>MIN(1.5),BT2<MAX(4.4)),"LIMITED",AND(BT2>MIN(4.5), BT2<MAX(9.4)),
"MODERATE", 
AND(BT2>MIN(9.5), BT2<MAX(19.4)),"CONSIDERABLE", 
AND(BT2>MIN(19.5), BT2<MAX(25)), "HIGH", "?")

列示例

谢谢!

答案1

使用选择/匹配:

=CHOOSE(MATCH(BT2,{0,1.5,4.5,9.5,19.5}),"Low","Limited","Moderate","Considerable","High")

Match 将返回1234或 ,5具体取决于它在{0,1.5,4.5,9.5,19.5}数组中的位置。然后 CHOOSE 将返回与该数字相等的文本。

或者只是将值放在另一个表中:

在此处输入图片描述

然后使用 VLOOKUP:

=VLOOKUP(BT2,A:B,2,TRUE)

VLOOKUP 执行 VLOOKUP 所执行的操作,即找到数字的合适位置并返回该位置的值。

答案2

不幸的是,我仍然不确定您想要实现什么。我尝试添加针对 B 列的公式,但所有结果都是?,但如果我使用嵌套的 If 语句,我会得到以下结果。在此处输入图片描述

希望这能让事情朝着正确的方向发展

答案3

在我看来,这个任务对于以下人来说更自然IFS()

=IFS(AND(BT2>MIN(0), BT2<MAX(1.4)),"LOW",
     AND(BT2>MIN(1.5),BT2<MAX(4.4)),"LIMITED",
     AND(BT2>MIN(4.5), BT2<MAX(9.4)),"MODERATE",
     AND(BT2>MIN(9.5), BT2<MAX(19.4)),"CONSIDERABLE",
     AND(BT2>MIN(19.5), BT2<MAX(25)), "HIGH",
     TRUE,"?")

SWITCH()对您不起作用的原因是您对每个子句的测试都返回TRUEFALSE,而 Excel 可能会将其评估为 1 或 0(在这种情况下似乎并非如此,尽管您可以通过稍加修改来强制发生这种情况,但当然没有意义),并且这四个值都不可能为 BT2 中的值,因此永远不会匹配,也永远不会执行切换,因此将返回公式末尾的默认值。

如果您放入FALSEBT2 并观察它转换为布尔值(Excel 将其居中并将其更改为FALSE),您将看到您的公式现在返回“LOW”,因为它现在与第一个开关对匹配。

我不确定你为什么在测试中使用MIN()and MAX()。它们似乎不是必需的。如果这看起来是个好主意,你可以放弃它们,只比较直接值。如果它们确实有意义……也许你的实际用途更复杂,它们是必要的,也许它们执行了我没有意识到的强制,它有帮助……某事……或者它也适合更复杂的实际用途,也许……好吧,如果由于某些明确的原因没有必要,你可能想放弃它们并直接进行比较。

相关内容