0

用过这样的公式:

=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))))))))

但是现在需要检查更多,否则上面的公式不能工作(s太多if)。

试过这种公式:

=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) 并且在单元格中(例如单元格M1包含上述公式)显示 number 2。那没问题。但是,例如在单元格中M2写入公式=IF(M1=2;2;0)时,它会显示数字0而不是2

问题出在哪里?
如何获取2单元格中的数字M2
可能有替代解决方案吗?

4

2 回答 2

3

使用命名范围(比如arrLook包含一列单元格 A>H 并立即向右 2>10 这应该适用于 L63 中的任何 A>H:

=VLOOKUP(L63,arrLook,2,FALSE)

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

编辑以澄清

如果您想要更多“条件”,只需扩展数组。
PS 请使用分号而不是逗号(以符合您的区域设置)。

于 2013-08-14T20:35:59.630 回答
0

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

=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 版本。

于 2013-08-14T20:36:47.023 回答