Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

SumIf vereinfachen?





Frage

Hallo, ich habe folgenden VBA-Code erstellt: Sub Summe_ZS() Range("V3").Value = Application.WorksheetFunction _ .SumIf(Range("D4:D22", "G4:G22"), "D", Range("C4:C22", "F4:F22")) Range("V4").Value = Application.WorksheetFunction _ .SumIf(Range("J4:J22", "M4:M22"), "D", Range("I4:I22", "L4:L22")) Range("V5").Value = Application.WorksheetFunction _ .SumIf(Range("P4:P22", "M4:M22"), "D", Range("O4:O22", "S4:S22")) Range("V7").Value = Application.WorksheetFunction _ .SumIf(Range("D4:D22", "G4:G22"), "E", Range("C4:C22", "F4:F22")) Range("V8").Value = Application.WorksheetFunction _ .SumIf(Range("J4:J22", "M4:M22"), "E", Range("I4:I22", "L4:L22")) Range("V9").Value = Application.WorksheetFunction _ .SumIf(Range("P4:P22", "M4:M22"), "E", Range("O4:O22", "S4:S22")) Range("Q25").Value = Application.WorksheetFunction _ .Sum(Range("V3:V5")) Range("Q26").Value = Application.WorksheetFunction _ .Sum(Range("V7:V9")) End Sub Dieser funktioniert. Allerdings suche ich nach einer Lösung ohne Hilfsspalten. Ist es möglich die Summe in Q25 bzw.in Q26 direkt zu lösen. Ich benutze hier die Zelle V3,V4, V5 bzw.V7,V8, V9 um Zwischensummen zu bilden, da ich keine Möglichkeit gefunden habe bei SumIf mehr als zwei nicht zusammenhängende Bereiche anzugeben. Gruss sas

Antwort 1 von rainberg

Hallo sas,

nach meinem Verständnis ist die Syntax Deiner SumIf-Formeln falsch.
Es wird laut Onlinehilfe immer nur eine Spalte abgefragt und summiert.

Mach´s mal so:

Sub Summe_ZS()
Range("Q25").Value = Application.WorksheetFunction.Sum _
(WorksheetFunction.SumIf(Range("D4:D22"), "D", Range("C4:C22")), _
WorksheetFunction.SumIf(Range("G4:G22"), "D", Range("F4:F22")), _
WorksheetFunction.SumIf(Range("J4:J22"), "D", Range("I4:I22")), _
WorksheetFunction.SumIf(Range("M4:M22"), "D", Range("L4:L22")), _
WorksheetFunction.SumIf(Range("P4:P22"), "D", Range("O4:O22")), _
WorksheetFunction.SumIf(Range("M4:M22"), "D", Range("S4:S22")))

Range("Q26").Value = Application.WorksheetFunction.Sum _
(WorksheetFunction.SumIf(Range("D4:D22"), "E", Range("C4:C22")), _
WorksheetFunction.SumIf(Range("G4:G22"), "E", Range("F4:F22")), _
WorksheetFunction.SumIf(Range("J4:J22"), "E", Range("I4:I22")), _
WorksheetFunction.SumIf(Range("M4:M22"), "E", Range("L4:L22")), _
WorksheetFunction.SumIf(Range("P4:P22"), "E", Range("O4:O22")), _
WorksheetFunction.SumIf(Range("M4:M22"), "E", Range("S4:S22")))
End Sub


Gruß
Rainer

Antwort 2 von sas

Hallo Rainer,

danke für die Hilfe und den Hinweis.

Gruss Sarah

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: