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

问题描述:

我想写一个Excel公式计算基于列标题的区域的数据集。基本上,我使用它来帮助自动化我所做的一些世俗对账。Excel使用sumifs或另一个公式来计算基于列标准

该数据:我想要搜索“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"))` 

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

感谢您的帮助!

式唯一的解决办法,假设你所需的列报头,以寻找在片“过滤片”细胞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))) 
+0

谢谢我其实,只是想通了。我现在遇到的问题是为具有部门的行合并匹配。由于部门在大多数情况下重复,我不相信这场比赛可以处理它。你知道一种将行标准并入其中的方法,它将返回一个特定部门的总和吗? – James

+0

@James您需要编辑您的原始文章(或开始一个新问题)以包含样本数据和预期结果。当我们不知道您的数据设置时,很难给出正确答案。 – tigeravatar

您可以在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)