Excel 多IF函数的替代方案

Excel 多IF函数的替代方案,excel,if-statement,excel-formula,vlookup,worksheet-function,Excel,If Statement,Excel Formula,Vlookup,Worksheet Function,我们使用了这样的公式: =IF(L63=$AA$3;2;IF(L63=$AA$4;3;IF(L63=$AA$5;4;IF(L63=$AA$6;5;IF(L63=$AA$7;6;IF(L63=$AA$8;7;IF(L63=$AA$9;8;IF(L63=$AA$10;9;0)))))))) 但是现在需要检查更多的if-else,这样上述公式就不能工作了(太多的ifs) 试过这样的公式: =IF(L25=$AA$3;2;"")&IF(L25=$AA$4;3;"")&IF(L25=$A

我们使用了这样的公式:

=IF(L63=$AA$3;2;IF(L63=$AA$4;3;IF(L63=$AA$5;4;IF(L63=$AA$6;5;IF(L63=$AA$7;6;IF(L63=$AA$8;7;IF(L63=$AA$9;8;IF(L63=$AA$10;9;0))))))))
但是现在需要检查更多的if-else,这样上述公式就不能工作了(太多的
if
s)

试过这样的公式:

=IF(L25=$AA$3;2;"")&IF(L25=$AA$4;3;"")&IF(L25=$AA$5;4;"")&IF(L25=$AA$6;5;"")&IF(L25=$AA$7;6;"")&IF(L25=$AA$8;7;"")&IF(L25=$AA$9;8;"")&IF(L25=$AA$10;9;"")&IF(L25=$AA$11;10;"")&IF(L25=$AA$12;11;"")&IF(L25=$AA$13;12;"")&IF(L25=$AA$14;13;"")&IF(L25=$AA$15;14;"")&IF(L25=$AA$16;15;"")&IF(L25=$AA$17;16;"")&IF(L25=$AA$18;17;"")&IF(L25=$AA$19;18;"")&IF(L25=$AA$20;19;"")
但有一个问题。例如,
L25=$AA$3
(true)和in-cell(例如cell
M1
包含上述公式)显示数字
2
。没关系。但是,例如,如果在单元格
M2
中写入公式
=if(M1=2;2;0)
,它将显示数字
0
,而不是
2

问题在哪里?
如何在单元格
M2
中获取编号
2

可能有替代解决方案吗?

具有指定范围(例如
arrLook
包含一列单元格a>H,并紧靠右侧2>10这应适用于L63中的任何a>H:

=VLOOKUP(L63,arrLook,2,FALSE)

在M2中,L63包含A时(arrLook中的第一项)

编辑以澄清

如果需要更多“条件”,只需扩展阵列。
PS请使用分号而不是逗号(以符合您的语言环境设置)。

具有命名范围(例如
arrLook
包含一列单元格a>H,右侧2>10这应适用于L63中的任何a>H:

=VLOOKUP(L63,arrLook,2,FALSE)

在M2中,L63包含A时(arrLook中的第一项)

编辑以澄清

如果需要更多“条件”,只需扩展阵列。

PS请使用分号而不是逗号(以符合您的区域设置)。

翻译您的特定问题(查找值并返回递增数字),您可以使用匹配公式:

=IF(COUNTIF($AA$3:$AA$20,L25)=0,"",MATCH(L25,$AA$3:$AA$20,0)+1)
一般来说,您可以创建一个查找表,然后使用VLOOKUP函数。这很有用,因为它可以返回非递增数字的结果:

    __AA__  _AB_
1
2
3   Value1     2
4   Value2     3
5   Value2     4
6   Value2     5
7   Value2     6
8   Value2     7
9   Value2     8
10  Value2     9
11  Value2    10
12  Value2    11
13  Value2    12
14  Value2    13
15  Value2    14
16  Value2    15
17  Value2    16
18  Value2    17
19  Value2    18
20  Value2    19
公式:

=IF(COUNTIF($AA$3:$AA$20,L25)=0,"",VLOOKUP(L25,$AA$3:$AB$20,2,FALSE))

注意:您可能需要将逗号改为分号;为了使公式在您的Excel版本上工作。

翻译您的特定问题(查找值并返回递增的数字),您可以使用匹配公式:

=IF(COUNTIF($AA$3:$AA$20,L25)=0,"",MATCH(L25,$AA$3:$AA$20,0)+1)
一般来说,您可以创建一个查找表,然后使用VLOOKUP函数。这很有用,因为它可以返回非递增数字的结果:

    __AA__  _AB_
1
2
3   Value1     2
4   Value2     3
5   Value2     4
6   Value2     5
7   Value2     6
8   Value2     7
9   Value2     8
10  Value2     9
11  Value2    10
12  Value2    11
13  Value2    12
14  Value2    13
15  Value2    14
16  Value2    15
17  Value2    16
18  Value2    17
19  Value2    18
20  Value2    19
公式:

=IF(COUNTIF($AA$3:$AA$20,L25)=0,"",VLOOKUP(L25,$AA$3:$AB$20,2,FALSE))

注意:您可能需要将逗号改为分号,以便公式在您的Excel版本上运行。

l25和aa3中的数据是什么?@pnuts这是一个很好的简单解决方案,但只有在目标区域中的值已排序时才有效。(MS Excel帮助):“查找向量中的值必须按升序排列”.
I25
aa3
姓名姓氏
l25和aa3中的数据是什么?@pnuts是一个很好且简单的解决方案,但只有在对目标区域中的值进行排序时才有效。(MS Excel帮助):“查找向量中的值必须按升序排列”.
I25
aa3
姓名
和以前一样没有使用过
VLOOKUP
并且不知道如何使用它,然后将此作为示例阅读,就像以前一样没有使用过
VLOOKUP
并且不知道如何使用它,然后将其作为示例阅读