Excel: SUMIF 参考动态范围
Excel: SUMIF refered to dynamic range
我需要编写一个引用动态列的 SUMIF 公式。
举个例子。
在单元格 G7 中,我需要从单元格 D3 中存储的列(在本例中为 H)到单元格 D4 中存储的列(在这种情况 L)。此公式的结果给出单元格 G7 中的数字 7 和 G8 中的数字 8。
我想尽可能不使用 VBA 来解决这个问题。
我想到了类似的东西:
G7 = =SUMIF(F:F;F7;<the value stored in D3>:<the value stored in D4>)
希望问题解释的很好
两个 INDEX/MATCH 的简单求和即可:
=SUM(INDEX(:000,MATCH(F7,F:F,0),CODE(UPPER($D))-64):INDEX(:,MATCH(F7,F:F,0),CODE(UPPER($D))-64))
请注意,这仅适用于 Z 列,如果您的数据已过去,我们将需要找到不同于 CODE(UPPER($D))-64
的内容来表示列范围。
我们需要使用 INDIRECT,如果可以避免,应该使用。应避免使用,因为它易挥发。因此,如果您的数据超过 Z 列,则使用:
=SUM(INDEX(INDIRECT($D&":"&$D),MATCH(F7,F:F,0)):INDEX(INDIRECT($D&":"&$D),MATCH(F7,F:F,0)))
我需要编写一个引用动态列的 SUMIF 公式。
举个例子。
在单元格 G7 中,我需要从单元格 D3 中存储的列(在本例中为 H)到单元格 D4 中存储的列(在这种情况 L)。此公式的结果给出单元格 G7 中的数字 7 和 G8 中的数字 8。
我想尽可能不使用 VBA 来解决这个问题。
我想到了类似的东西:
G7 = =SUMIF(F:F;F7;<the value stored in D3>:<the value stored in D4>)
希望问题解释的很好
两个 INDEX/MATCH 的简单求和即可:
=SUM(INDEX(:000,MATCH(F7,F:F,0),CODE(UPPER($D))-64):INDEX(:,MATCH(F7,F:F,0),CODE(UPPER($D))-64))
请注意,这仅适用于 Z 列,如果您的数据已过去,我们将需要找到不同于 CODE(UPPER($D))-64
的内容来表示列范围。
我们需要使用 INDIRECT,如果可以避免,应该使用。应避免使用,因为它易挥发。因此,如果您的数据超过 Z 列,则使用:
=SUM(INDEX(INDIRECT($D&":"&$D),MATCH(F7,F:F,0)):INDEX(INDIRECT($D&":"&$D),MATCH(F7,F:F,0)))