2017-05-26 5 views
1

Ich versuche, eine Excel-Formel zu schreiben, die einen Datensatz basierend auf der Spaltenüberschrift für einen Bereich berechnet. Im Wesentlichen verwende ich es, um einige der weltlichen Versöhnungen zu automatisieren, die ich mache.Excel mit Sumifs oder einer anderen Formel zur Berechnung basierend auf Spaltenkriterien

Die Daten: Ich möchte die Spaltenüberschrift für "Car_ERN" durchsuchen und die gesamte Spalte summieren. Meine Formel, die ich versucht habe, Arbeit zu bekommen, ist in zwei Versionen.

Eine Version wird mit SUMIFS:

SUMIFS('Sum Payroll Dept Dump'!$Y$2:$CG$85,'Sum Payroll Dept Dump'!$Y$1:$CG$1,"ERN_CAR_AMT")

Die andere Version ist SUMPRODUCT enthält, aber ich erhalte eine Null-Rückkehr. Die "2" sucht eine Spalte, die mehrere 2s enthält, weil ich alle Zeilen für dieses Kriterium haben möchte.

`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"))` 

Wenn es einen besseren Weg gibt, es ohne Makros zu tun, würde das sehr geschätzt werden.

Danke für die Hilfe!

Antwort

1

Formel einzige Lösung, die gewünschte Spaltenüberschrift unter der Annahme, in Blatt ist zu sehen ‚Filter Blatt‘ Zelle A8 (mit Ihrem Beispiel würde diese Zelle "ERN_CAR_AMT" enthalten):

=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

Danke Ich habe das wirklich herausgefunden. Das Problem, das ich jetzt habe, ist ein Match für die Reihe, die die Abteilungen hat. Da Abteilungen in den meisten Fällen wiederholt werden, glaube ich nicht, dass das Spiel damit umgehen kann. Kennen Sie einen Weg, um ein Zeilenkriterium zu integrieren, das die Summe einer bestimmten Abteilung zurückgibt? – James

+0

@James Sie müssen Ihren ursprünglichen Beitrag bearbeiten (oder eine neue Frage beginnen), um Beispieldaten und erwartete Ergebnisse einzubeziehen. Es ist schwierig, Ihnen eine korrekte Antwort zu geben, wenn wir Ihre Datenkonfiguration nicht kennen. – tigeravatar

0

Sie könnten eine benutzerdefinierte Funktion (UDF) in VBA erstellen.

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 

Diese Funktion durchläuft Ihre Kopfzeile (headerRng) und sucht nach einer bestimmten Kopfzeile (Kopfzeile). Wenn es gefunden wird, summiert es die Zelle darunter in der Spalte, in der es sich befindet, beginnend von Zeile 2 bis zum Ende der letzten Zelle des verwendeten Bereichs.

Dann in einer Zelle in Ihrem Arbeitsblatt können Sie die Funktion verwenden, wie würden Sie andere

=sumByHeader("Car_ERN", A1:Z1) 
Verwandte Themen