首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Excel中等效的Case函数

Excel中等效的Case函数
EN

Stack Overflow用户
提问于 2011-03-30 23:45:43
回答 7查看 360K关注 0票数 49

我有一个有趣的挑战-我需要在Excel中对以下数据运行检查:

代码语言:javascript
复制
|   A  -   B  -   C  -  D   |
|------|------|------|------|
|  36  |   0  |   0  |   x  |
|   0  |  600 |  700 |   x  |
|___________________________|

你得原谅我糟糕的ASCII技艺。因此,我需要D列(x)对相邻的单元格运行检查,然后在必要时转换值。以下是标准:

如果B列大于0,那么一切都很好,我可以喝咖啡了。如果它不满足这个要求,那么我需要根据一个表转换A1 -例如,将32 = 1420和place转换为D。不幸的是,A和它需要转换成什么之间没有关系,所以创建一个计算是不可能的。

在这种情况下,case或switch语句将是完美的,但我不认为它是Excel中的本机函数。我还认为将一堆=IF()语句链接在一起会有点疯狂,我做了大约四次,然后才决定这是一个坏主意(我的生活故事)。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-03-31 04:31:36

听起来像是VLOOKUP的工作!

您可以将32个VLOOKUP 1420类型映射放在几个列中,然后使用->函数执行查找。

票数 57
EN

Stack Overflow用户

发布于 2015-03-14 01:47:16

不考虑最初的问题(我怀疑这个问题早就解决了),我最近发现了一个巧妙的技巧,它使Choose函数的工作方式与select case语句完全一样,不需要修改任何数据。只有一个问题:在任何时候,只有一个选择条件可以为真。

语法如下:

代码语言:javascript
复制
CHOOSE( 
    (1 * (CONDITION_1)) + (2 * (CONDITION_2)) + ... + (N * (CONDITION_N)),
    RESULT_1, RESULT_2, ... , RESULT_N
)

假设条件1到N中只有一个为真,其他条件都为0,这意味着数值将对应于适当的结果。

如果您不能100%确定所有条件都是互斥的,您可能更喜欢这样的条件:

代码语言:javascript
复制
CHOOSE(
    (1 * TEST1) + (2 * TEST2) + (4 * TEST3) + (8 * TEST4) ... (2^N * TESTN)
    OUT1, OUT2, , OUT3, , , , OUT4 , , <LOTS OF COMMAS> , OUT5
)

也就是说,如果Excel对一个函数可以接受的参数数量有一个上限,那么你很快就会达到这个上限。

老实说,不敢相信我花了几年时间才弄明白,但我以前没有见过它,所以我想我应该把它留在这里帮助别人。

编辑:通过使用以下形式的公式,可以消除愚蠢的逗号数量(因此,choose语句最多可用于254种情况):

代码语言:javascript
复制
CHOOSE(
    1 + LOG(1 + (2*TEST1) + (4*TEST2) + (8*TEST3) + (16*TEST4),2), 
    OTHERWISE, RESULT1, RESULT2, RESULT3, RESULT4
)

请注意LOG子句的第二个参数,它将其设置为基数2,并使整个过程正常工作。

编辑:根据David's answer,现在有一个实际的switch语句,如果你足够幸运地在office 2016上工作。除了阅读困难之外,这也意味着你得到了switch的效率,而不仅仅是行为!

票数 21
EN

Stack Overflow用户

发布于 2011-03-30 23:58:02

试试这个;

代码语言:javascript
复制
=IF(B1>=0, B1, OFFSET($X$1, MATCH(B1, $X:$X, Z) - 1, Y)

哪里

X=要索引到的列

Y=索引列左侧(-Y)或右侧(Y)的列数,以获取要查找的值

如果精确匹配,则z=0(如果要处理错误)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5488692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档