缩短Excel“IF”公式?

bat*_*cmd 3 worksheet-function microsoft-excel

这个公式确实有效,但它是巨大的:

=IF(X3=B2,K2,IF(X3=B3,K3,IF(X3=B4,K4,IF(X3=B5,K5,IF(X3=B6,K6,IF(X3=B7,K7,IF(X3=B8,K8,IF(X3=B9,K9,IF(X3=B10,K10,IF(X3=B11,K11,IF(X3=B12,K12,IF(X3=B13,K13,IF(X3=B14,K14,IF(X3=B15,K15,IF(X3=B16,K16,IF(X3=B17,K17,IF(X3=B18,K18,IF(X3=B19,K19,IF(X3=B20,K20,IF(X3=B21,K21))))))))))))))))))))

这是它正在做的事情:

If X3 is the same as B2, show the contents of cell K2.
If X3 is the same as B3, show the contents of cell K3.
If X3 is the same as B4, show the contents of cell K4.
...etc etc etc all the way to...
If X3 is the same as B21, show the contents of cell K21.
Run Code Online (Sandbox Code Playgroud)

由于 B2:B21 只是一列单元格,而 K2:K21 也只是一列单元格,有什么办法可以缩短上面的公式,这样它就不会很大了?

我不知道如何将其变成B细胞和K细胞的2个范围。

尝试这样的事情是行不通的: =IF(X3=B2:B21,K2:K21)

因为告诉 Excel 使用:就是告诉它将从 B2 到 B21 以及 K2 到 K21 的所有内容相加。我想知道是否有其他分隔符(不是:)告诉 Excel 单独处理每个单元格而不是将它们相加?

这不起作用: =IF(X3=B2-B21,K2-K21)

结果是:#VALUE!

问题是,无论 B 单元格是哪个数字,也必须与 K 单元格中相应的数字(水平)保持匹配。

预先感谢任何可能知道答案的人,如果 Excel 中存在该功能,我相信这真的很简单。

Fle*_*ata 7

根据您的 Excel 版本,您可以使用XLOOKUP,VLOOKUPINDEX/MATCH

在此输入图像描述

=XLOOKUP($X$3,$B$2:$B$22,$K$2:$K$22,"")
=VLOOKUP($X$3,$B$2:$K$22,10,FALSE)
=INDEX($K$2:$K$22,MATCH($X$3,$B$2:$B$22))
Run Code Online (Sandbox Code Playgroud)