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)))
我正在尝试在一个单元格中编写一个公式,该公式使用另外 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)))