微软Excel中有类似switch case的东西吗?

问题描述 投票:0回答:6

我必须准备一份产品库存表。所以我有小号、中号和大号三种尺寸。我们从供应商处收到的详细信息包含一栏,其中包含缩写尺寸 S/M/L。但我用小/中/大来准备我的表格版本。

那么我如何简单地检查是否:

case "S": Small
case "M": Medium
case "L": "Large"
default
excel excel-formula excel-2013
6个回答
1
投票

从 Excel 2016 开始,使用 SWITCH 可以轻松解决这个问题。但最近我不得不再次使用Excel 2010一段时间,那里没有SWITCH功能。使用您的示例,这是一个不使用 SWITCH 的解决方案:

=IFERROR(CHOOSE(SUM((A1={"S";"M";"L"})*ROW(INDIRECT(1&":"&3))),"SMALL","MEDIUM","LARGE"),"else case")

由于是数组公式,所以必须按CTRL+SHIFT+ENTER才能生效。

其工作原理如下:

  • Cond={"c1";"c2";...;"cn"} 返回 TRUE 或 FALSE 的 N 向量(其行为类似于 1 和 0)
  • ROW(INDIRECT(1&":"&n)) 返回有序数字的 N 向量:1;2;3;...;n
  • 两个向量的乘法将返回大量零和条件匹配的数字(位置)
  • SUM 只是将这个带有零和位置的向量转换为一个数字,然后选择可以使用它
  • 如果您想添加另一个条件,只需记住增加 INDIRECT 中的最后一个数字即可
  • 如果您多次提供相同的条件,公式将无法正常运行,但我想无论如何都没有人愿意这样做

0
投票
Select Case sizeString
    Case Is = "S"
        Size = "Small"
    Case Is = "M"
        Size = "Medium"
    Case Is = "L"
        Size = "Large"
    Case Else
        MsgBox ("There was an error with sizeString- did not contain an expected value.")
End Select

-TheSilkCode


0
投票

选择相关列(此处假定为

A
),然后开始 > 样式 - 条件格式、新规则...,使用公式确定要设置格式的单元格格式化此公式为真的值::

=A1="S"

格式...,数字,类别:

Custom
,类型:
@"mall"
OKOK

然后以类似的方式为“M”和“L”添加规则。


0
投票

Microsoft 将 SWITCH、IFS 和 IFVALUES 替换为仅 CHOOSE 功能。

=CHOOSE($L$1,"index_1","Index_2","Index_3")

L1 必须等于系列的某个索引号部分。


0
投票

Excel 引入了一个新的 SWITCH 函数,其基本上具有

=SWITCH(Expression, value1, result1, value2, result2.....)
的形式。应该有帮助。


0
投票

如果您有 Excel 2010,请执行以下操作:

=IFERROR(VLOOKUP(Target, {"S","Small"; "M","Medium"; "L","Large"}, 2, FALSE), "else case")

本质上它所做的就是,它在数组的第一列中找到

Target
值,并且
2
告诉它返回相应行的第二列。
FALSE
参数告诉它除了精确匹配之外不要返回任何内容(否则,条目“S”,“M”,“L”必须按字母顺序排序才能工作),并且当有
IFERROR
不处理任何精确匹配。

事实证明它比我想象的要简单得多。 只需使用正确的参数调用正确的函数即可。 事实上,它是如此简单,以至于我根本考虑不发布它 - 但后来我意识到其他解决方案都不能在 Excel 2010 中工作;最好的是 Froha 的答案,它从 Excel 2013 开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.