Excel 动态创建求和范围的公式出错 "a value used in the formula is of the wrong data type"

Excel formula to dynamically create a sum range is erroring "a value used in the formula is of the wrong data type"

我正在尝试在一个单元格中编写一个公式,该公式使用另外 2 个单元格作为来自另一个 sheet 的一系列单元格的开始和结束,然后偏移 1 列并对值求和。我不断收到错误消息“公式中使用的值的数据类型错误”。当我逐步执行公式时,一切似乎都是正确的,直到它到达最终的 Sum() 然后它出错并显示 #Value.

一次尝试(这一次没有偏移一列,因为在它出错之前我从来没有走那么远):

=SUM(CELL("address",INDEX('F Mod'!AQ6:AQ15,MATCH('NC Sign'!E123,'F Mod'!AQ6:AQ15,0)))&":"&CELL("address",INDEX('F Mod'!AQ6:AQ15,MATCH('NC Sign'!E124,'F Mod'!AQ6:AQ15,0))))

评估为:

=SUM("'[CSLT Information Flow Master (version 2).xlsm]F Mod'!$AQ"&":"&"'[CSLT Information Flow Master (version 2).xlsm]F Mod'!$AQ")

然后出错。

另一次尝试(已通过更改地址函数中的列进行偏移):

=SUM(ADDRESS(MATCH(E123,'F Mod'!$AQ:$AQ,0),44)&":"&ADDRESS(MATCH(E124,'F Mod'!$AQ:$AQ,0),44))

评估为:

=SUM("$AR:$AR")

然后出错。

当涉及到 Sum() 函数时,一定是我遗漏了什么,但我迷路了。

B13 中的公式为:

=SUM(OFFSET(INDIRECT("G"&2+MATCH(B6;$F:$F;0));0;0;MATCH(B7;$F:$F;0)-MATCH(B6;$F:$F;0)+1;1))

注意 INDIRECT 部分,我在其中键入 INDIRECT("G"&2+MATCH That 2 comes from one row above data starts。因为数据从第3行开始,所以我输入了2.

你也可以试试

• 单元格 D4

中使用的公式
=SUM(INDEX($H:$H,MATCH($B,$G:$G,0)):
INDEX($H:$H,MATCH($B,$G:$G,0)))

注意:使用INDEX()函数来return一个引用而不是一个值,使用full lookup然后是冒号,然后是另一个full lookup给出 Excel 它需要的提示,它必须 return 一个引用。

因此,它生成了两个单元格的范围,并将其传递给 SUM() 环绕其他所有内容的函数。


此外,请注意,如果您使用的是 O365,那么您也可以使用 XLOOKUP() 功能,

• 单元格 D10

中使用的公式
=SUM(XLOOKUP($B,$G:$G,$H:$H):
XLOOKUP($B,$G:$G,$H:$H))

1] 使用 Sum+Offset 函数

D2中输入公式:

=SUM(OFFSET(H1,MATCH(B5,G:G,0)-1,,RIGHT(B8,4)-RIGHT(B5,4)+1))

或者,

2] 使用 Sum+Indirect 函数

D2中输入公式:

=SUM(INDIRECT("H"&MATCH(B5,G:G,0)&":H"&MATCH(B8,G:G,0)))