我正在尝试编写一个excel公式,该公式将根据区域的列标题计算数据集。从本质上讲,我正在使用它来帮助自动化我所做的一些平凡的对账。
数据:我想在列标题中搜索" Car_ERN"并总结整列。我一直试图找到工作的公式有两个版本。
一个版本正在使用sumifs:
SUMIFS('Sum Payroll Dept Dump'!$Y$2:$CG$85,'Sum Payroll Dept Dump'!$Y$1:$CG$1,"ERN_CAR_AMT")
另一个版本正在整合Sumproduct,但我获得零回报。 " 2"正在搜索其中包含多个2的列,因为我希望所有行都符合此条件。
`SUMPRODUCT('Sum Payroll Dept Dump'!$Y$2:$CG$200,('Sum Payroll Dept Dump'!$Y$1:$CG$1='Filter Sheet'!A8)*('Sum Payroll Dept Dump'!A2:A200="2"))`
如果有更好的方法可以在没有宏的情况下做到这一点。
感谢您的帮助!
答案 0 :(得分:1)
仅限公式解决方案,假设您要查找的所需列标题位于工作表'过滤表'单元格A8(使用您的示例,该单元格将包含" ERN_CAR_AMT"):
=SUMIF('Sum Payroll Dept Dump'!$A:$A,2,INDEX('Sum Payroll Dept Dump'!$Y:$CG,0,MATCH('Filter Sheet'!A8,'Sum Payroll Dept Dump'!$Y$1:$CG$1,0)))
答案 1 :(得分:0)
您可以在VBA中创建用户定义的函数(UDF)。
function sumByHeader(header as string, headerRng as range) as Double
Dim hdr as Range
Dim i as Long
Dim thisSum as Double
for each hdr in headerRng
if hdr.value = header then
thisSum = 0
for i=2 to ActiveSheet.UsedRange.Rows.Count
thisSum = thisSum + cells(i, hdr.Column)
next i
end if
next i
sumByHeader = thisSum
End Function
此函数循环遍历标题行(headerRng)并查找特定标题(标题)。当它找到它时,它会在它所在的列中对它下面的单元格求和,从第2行开始并到达所用范围的最后一个单元格的末尾。
然后在工作表的单元格中,您可以像使用任何其他
一样使用该功能=sumByHeader("Car_ERN", A1:Z1)