我正在尝试在将定期更新的工作表上动态使用Sumproduct。
我的动机是不要手动选择列(即不使用shift键和向下键来选择范围A2:A6,如附图中所示)
我希望公式“= SUMPRODUCT( - (A2:A6 =”TX“))”动态选取A2:A6,因为我在工作表中的数据说A是不变的。因此,当数据增长到A8时,它可以以某种方式动态获取,而不是手动使用键。
可以这样做吗?如果我的问题不明确,请告诉我。
此致 SM
答案 0 :(得分:1)
是的,您可以动态定义范围。但是,鉴于你目前的公式,我认为没有理由不在这里切换到COUNTIF
,即:
=COUNTIF(A:A,"TX")
使用整个列引用(此处为A:A
)对性能没有任何影响的函数(SUMPRODUCT
完全没有这种情况)。
此致
答案 1 :(得分:0)
Shitty推荐人,在这里。
您可以在工作表中首先插入新行吗?你可以把它放在任何你想要的地方,你甚至可以隐藏它,第一行对我来说很有用。
如果可以,只需在整个列上使用“count.values”函数,使用适当的减法将数量调整到正确的数据长度。例如。删除此辅助单元格值加上标题将为“= count.values(A:A)-2”。
稍后,在您的VBA上,您可以将此值检索到变量并将其连接到您的主函数。假设您在单元格A1(坐标1,1)
上创建了辅助 Dim auxLine As Integer
auxLine = cells(1, 1).value
whatever.formular1c1 = "=SUMPRODUCT(--(A2:A" & auxLine & ="TX"))"