Excel使用sumifs或另一个公式来计算基于列标准

我正在尝试编写一个Excel计算公式,它将根据某个区域的列标题计算出一个数据集。 本质上,我正在使用它来帮助自动化一些我所做的世俗对话。

数据:我想要search“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”正在search一个有多个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"))` 

如果有更好的方法来做到这一点,没有macros将不胜感激。

谢谢您的帮助!

公式只有解决scheme,假设你想要的列标题寻找是在工作表“filter表”单元格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))) 

您可以在VBA中创build一个用户定义的函数(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)并寻找一个特定的标题(标题)。 当它find它的时候,它会在它所在的列的下面加上一个单元格,从第2行开始,直到你已经使用的范围的最后一个单元格的末尾。

然后在工作表中的单元格中,可以像使用其他任何函数一样使用该函数

 =sumByHeader("Car_ERN", A1:Z1)