【问题标题】:Excel formula error: Too few arguments for INDIRECT() functionExcel 公式错误:INDIRECT() 函数的参数太少
【发布时间】:2012-11-22 05:52:51
【问题描述】:

在空白单元格中输入此公式时,我收到“您为此函数输入的参数太少”错误消息。

 RSQ(INDIRECT("data!"&CHAR(64+ROW())&"1:"&CHAR(64+ROW())&"30"&",data!$"&CHAR(64+ROW())&"1:$"&CHAR(64+ROW())&"30"))

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    RSQ 需要 2 个范围作为参数。每个 INDIRECT 产生 1 个范围,因此需要 2 个范围来为函数提供参数。

    由于ROW() 函数的行为方式,需要对它进行额外的包装(有关详细信息,请参阅this question)。

    =RSQ(INDIRECT("数据!"&CHAR(SUM(ROW())+64)&"1:"&CHAR(SUM(ROW())+64)&"30"),INDIRECT("数据! $"&CHAR(SUM(ROW())+64)&"1:$"&CHAR(SUM(ROW())+64)&"30"))

    另外,我会再看看你的方程式,因为它会比较相同的数据。
    例如在第 1 行中,它将 A1:A30$A1:$A30 进行比较,得到值 1
    在第 2 行中,它会将 B1:B30$B1:$B30 进行比较,这也会导致值 1

    【讨论】:

    • 成功!就像在大多数情况下使用 Excel 一样,正如预期的那样,这是一个简单的修复。我知道它会产生的唯一值是 1 - 这就是我想要的方式。更大计划的一部分。
    • 很好的答案肖恩,我错过了 ROW() 问题
    • @Micky Walia,不确定它是否需要如此复杂,这个公式应该给出相同的答案,也可以复制下来以增加列 - =RSQ(INDEX(data!A$1:Z$30,0,ROW()),INDEX(data!$A$1:$Z$30,0,ROW()))
    • @barryhoudini 你是对的。虽然,我修改了我的公式,将其复制下来以增加列。 RSQ(INDIRECT("data!$"&CHAR(SUM(COLUMN()+64))&"1:$"&CHAR(SUM(COLUMN()+64))&"30"),INDIRECT("data!"&CHAR(SUM(ROW()+64))&"1:"&CHAR(SUM(ROW()+64))&"30"))
    【解决方案2】:

    错误在于 RSQ 函数,我怀疑您需要两个 INDIRECT 函数,一个用于 known_ys,一个用于 known_xs

    =RSQ(INDIRECT("data!"&CHAR(64+ROW())&"1:"&CHAR(64+ROW())&"30"),INDIRECT("data!$"&CHAR(64+ROW())&"1:$"&CHAR(64+ROW())&"30"))

    【讨论】:

    • 这并不能完全解决问题。它返回 #NUM! 错误 - 公式中使用的数字有问题。
    猜你喜欢
    • 1970-01-01
    • 2010-12-16
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    相关资源
    最近更新 更多