2017-05-26 82 views
1

我想寫一個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"))` 

如果有更好的方法來做到這一點沒有宏,將不勝感激。

感謝您的幫助!

回答

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))) 
+0

謝謝我其實,只是想通了。我現在遇到的問題是爲具有部門的行合併匹配。由於部門在大多數情況下重複,我不相信這場比賽可以處理它。你知道一種將行標準併入其中的方法,它將返回一個特定部門的總和嗎? – James

+0

@James您需要編輯您的原始文章(或開始一個新問題)以包含樣本數據和預期結果。當我們不知道您的數據設置時,很難給出正確答案。 – tigeravatar

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)