我需要根据另一列(例如 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
答案2
答案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()
对您不起作用的原因是您对每个子句的测试都返回TRUE
或FALSE
,而 Excel 可能会将其评估为 1 或 0(在这种情况下似乎并非如此,尽管您可以通过稍加修改来强制发生这种情况,但当然没有意义),并且这四个值都不可能为 BT2 中的值,因此永远不会匹配,也永远不会执行切换,因此将返回公式末尾的默认值。
如果您放入FALSE
BT2 并观察它转换为布尔值(Excel 将其居中并将其更改为FALSE
),您将看到您的公式现在返回“LOW”,因为它现在与第一个开关对匹配。
我不确定你为什么在测试中使用MIN()
and MAX()
。它们似乎不是必需的。如果这看起来是个好主意,你可以放弃它们,只比较直接值。如果它们确实有意义……也许你的实际用途更复杂,它们是必要的,也许它们执行了我没有意识到的强制,它有帮助……某事……或者它也适合更复杂的实际用途,也许……好吧,如果由于某些明确的原因没有必要,你可能想放弃它们并直接进行比较。