在microsoft excel中有没有相当于switch case的东西?

时间:2017-02-04 12:26:06

标签: excel excel-formula excel-2013

我必须准备我的产品的库存表。所以我有三种尺寸,小,中,大。我们从供应商处收到的详细信息包括一个由缩写尺寸S / M / L组成的列。但我准备我的版本的小/中/大表。

那么我该如何检查是否:

case "S": Small
case "M": Medium
case "L": "Large"
default

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

选择相关列(此处为A假设)和HOME>样式 - 条件格式,新规则...,使用公式确定要格式化的单元格格式化此公式的值:

=A1="S"

格式... ,数字,类别:Custom,输入:@"mall"确定确定

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

答案 2 :(得分:0)

Microsoft仅将CHOOSE功能替换为SWITCH,IFS和IFVALUES。 =CHOOSE($L$1,"index_1","Index_2","Index_3")

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

答案 3 :(得分:0)

自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向量(行为类似于1s和0s)
  • ROW(INDIRECT(1&“:”&n))返回有序数字的N向量:1; 2; 3; ...; n
  • 两个向量的相乘将返回大量零和匹配条件的数字(位置)
  • SUM只是将带有零位和位置的向量转换为一个数字,然后可供选择使用
  • 如果要添加其他条件,请记住要增加INDIRECT中的最后一个数字
  • 如果您多次提供相同的条件,则该公式将无法正常运行,但我想没人会愿意这样做