是否有与CASE类似的excel功能?如果没有,我将如何解决

时间:2013-08-20 20:09:20

标签: excel function case vlookup

我正在试图弄清楚用什么函数来帮助我解决我的困境。它的基础是:

我需要在Excel工作表中输入“类别编号”。这个“类别编号”取决于两件事。

  1. 结算代码
  2. 和CPM一样。
  3. 结算代码可以有多个类别编号,具体取决于每千次展示费用的范围。例如:

    结算代码4具有以下类别编号:37,80,85。

    IF CPM for this company is > 5000 use category number 37 IF CPM for this company is > 10000 use category number 80 IF CPM for this company is > 20000 use category number 85.

    这是一个非常基本的例子,但目前我正在使用VLOOKUP来引入所有相关的类别编号。

    也就是说,我会

    Company || Billing Code || Category Number || CPM

    ABC || 4 || 37,80,85 || 5250

    我的VLOOKUP带来了“37,80,85”,但我真正需要它做的是首先查看帐单代码,确定相应的类别编号,然后将其缩小到只有1个类别编号,具体取决于CPM。

    使用VLOOKUP这仍然可行吗?我必须以不同的方式构建我的表数组吗?有关如何处理它的任何想法。似乎如果我有一个CASE功能它会让我的生活更轻松......有什么建议吗?

2 个答案:

答案 0 :(得分:0)

=IF(BillingCode<5000,"BillingCode too low",LOOKUP(BillingCode,{5000,10000,20000},{37,80,85}))

其中BillingCode是包含结算代码的单元格的单元格引用。 例如,如果它应该引用单元格B2,那么:

=IF(B2<5000,"BillingCode too low",LOOKUP(B2,{5000,10000,20000},{37,80,85}))

答案 1 :(得分:0)

CASE结构实际上只是一堆链接在一起的 else if 语句。你当然可以使用excel中的IF()函数复制它。我认为它只能深入七个IF()语句。

=IF(AND(A4>5000,A4<=10000),"37",IF(AND(A4>10000,A4<=20000),"80",IF(A4>20000,"A4","")))

虽然我有一种感觉,有更好的方法来解决你的问题。也许使用某种范围内的vlookup系统。这样你可以检查七个以上的范围。

修改/ ADDITION

是的,看起来这个功能已经内置到VLOOKUP()中。您可以使用具有最高限额的单独表格及其相应的类别# - 即:

=IFERROR(VLOOKUP(A2,$F$2:$G$4,2,TRUE),"")

示例:

Example1