在 Excel 中获取“您为该函数输入了太多参数”

在 Excel 中获取“您为该函数输入了太多参数”

我试图这样使用INDEXandMATCH函数:

=INDEX(G2,I2,K2,S2:T2,Y2:AB2,0,MATCH(MAX(G3,I3,K3,S3:T3,Y3:AB3),G3,I3,K3,S3:T3,Y3:AB3,0))

然后我收到错误信息:You have entered too many arguments for this function

有什么办法可以解决这个问题吗?

答案1

你的公式是错误的,因为它确实有太多参数。


INDEX函数的工作原理如下:

=INDEX(<area where you're searching something>, <row number>, [<column number>])

所以:

  • 第一个参数必须是一个范围,例如G5:L10
  • 第二个参数必须是您想要在范围内返回的行号。使用范围G5:L10和参数2,您将返回该范围的第二行,即6:6
  • 第三个参数与第二个参数相同,但指的是列号。它是可选的。

查看Excel 的文档了解更多信息。


这里使用函数MATCH是因为我们不知道在 中使用哪个行/列号INDEX。但是,表格通常有一个带有人性化名称的标题,或者第一个单元格包含 ID、日期、名称等。最好询问 Excel:“请提供包含日期 2018-05-24 的行号”, 代替“使用行号 634”

幸运的是,该函数MATCH(<what>,<where>,<how>)可以做到这一点。它只是返回什么您正在搜索的值数组(在哪里)。 这如何让您配置函数的行为方式(参见Excel 的文档)。

换句话说,如果您的范围包含:

1  Apple
2  Pear
3  Banana
4  Orange

公式MATCH("Banana", A1:A4, 0)将返回2


通过组合INDEXMATCH,您可以让 Excel 在给定的可能值区域内给出行和列的交点。

我建议您查阅有关如何使用 INDEX andMATCH 的这篇文章:

Excel 公式:使用 INDEX 和 MATCH 进行双向查找在 ExcelJet 上

答案2

看起来您正在尝试在同一行中的一组不连续范围中查找具有最大值的单元格上方单元格中的值。

考虑到你的范围集,该问题的实际解决方案是:

=INDEX(2:2,MATCH(MAX(G3,I3,K3,S3:T3,Y3:AB3),3:3,0))

相关内容