避免 Excel 函数中嵌套较长的 IF

避免 Excel 函数中嵌套较长的 IF

我有一个依赖于两个不同输入的公式:第一个是 0 到 5 之间的整数值,第二个是数组中值的四舍五入总和。我希望让用户输入这两个值,然后让公式确定所需的输出。问题是现在我有 6 个第一个变量的组合,每个组合都会导致第二个变量的使用方式发生变化。因此,我需要大量的 IF 语句才能使其正常工作。

我在其他地方设置了表格,每个表格对应 0 到 5 的值,用于确定正确的值。我的问题是,有没有办法让 Excel 执行以下操作?

  1. 检查单元格中是否已放入 0 至 5 的值A2

  2. 转到包含该号码的工作表。

  3. INDEX(...,MATCH())根据数组中放置的值的数量以及值的内容,从该工作表中的表格中找到。

我想知道是否更有意义的做法是完全避免使用表格,而是尝试直接计算,但我看不出有什么方法可以做到这一点而不导致大量嵌套IF。如果这里有任何不清楚的地方,请告诉我,我会尽力解释。

答案1

如果我理解正确,您需要创建一个公式,针对不同工作表中的表执行索引/匹配操作,用户选择要搜索哪个工作表

听起来您可能想使用 CHOOSE 和 INDIRECT 根据 A2 中的值动态构建到适当工作表的路径。

例如,下面将使用 B2 中的值对相应工作表上的 A1:A3 单元格运行匹配,其中工作表基于用户在 A2 中输入的值 (1,2,3)

=MATCH(A2,(INDIRECT(CHOOSE(B2,"Sheet1","Sheet2","Sheet3") & "!" & "A1:A3")),0)

这里使用 CHOOSE 来监视单元格 (A2),并根据输入的值输出具有相应索引的对象,在本例中是工作簿名称。

INDIRECT 允许您动态构建单元格路径,因此将正确的工作表名称嵌入到 SUM 函数要使用的路径中。

当然,如果您的表格是命名范围或大小不同,您可以随时将上例中的静态“A1:A3”更改为另一个 CHOOSE,它将根据用户在另一个单元格中的输入输出路径的正确部分。

如果这与您要做的事情完全不符,请原谅我 - 我不确定我是否理解您列表中的第 3 步...

相关内容