In diesem Artikel erfahren Sie, wie Sie die SUMIF-Funktion in VBA mit mehreren Kriterien in Excel mithilfe von VBA-Code verwenden.

Um die Ausgabe zu erhalten, verwenden wir eine Kombination von OFFSET- und COUNTA-Funktionen, um eine Namensmanagerliste zu erstellen.

Lassen Sie uns anhand eines Beispiels verstehen:

  • Wir haben einen Verkaufsbericht für Verkäufer, Region und Produkt für die Jahre 2012 bis 2014.

img1

  • Wir möchten die Verkaufszahl ermitteln, die die folgenden Bedingungen erfüllt: –

img2

  • Für alle Bedingungen; Wir müssen Namensbereiche erstellen. So erstellen Sie einen dynamischen Namensbereich für Salesman:

Drücken Sie die Tastenkombination STRG + F3> Klicken Sie auf Neu und geben Sie die Formel als = OFFSET (Blatt1! $ B $ 1,1,0, COUNTA (Blatt1! $ A: $ A) -1)

img3

ein Erstellen Sie auf ähnliche Weise benannte Bereiche für andere Bedingungen. * Drücken Sie STRG + F3, um das Namensmanager-Fenster zu öffnen (siehe bereits erstellte Listen).

img4

  • Wenn Sie die Funktion „Namen einfügen“ auf der Registerkarte „Formeln“ verwenden, wird die gesamte Liste der definierten Namen in Zellen angezeigt.

img5

  • Klicken Sie auf Liste einfügen

img6

nDate * = OFFSET (Sheet1! $ A $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

nProdukt * = OFFSET (Blatt1! $ D $ 1,1,0, COUNTA (Blatt1! $ A: $ A) -1)

nRegion * = OFFSET (Blatt1! $ C $ 1,1,0, COUNTA (Blatt1! $ A: $ A) -1)

nSales * = OFFSET (Sheet1! $ E $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

nSalesman * = OFFSET (Blatt1! $ B $ 1,1,0, COUNTA (Blatt1! $ A: $ A) -1)

Wir müssen die unten aufgeführten Schritte ausführen, um den VB-Editor zu starten. Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Gruppe Code die Option Visual Basic

img7

aus * Klicken Sie auf Einfügen und dann auf Modul

img8

  • Dadurch wird ein neues Modul erstellt.

  • Geben Sie den folgenden Code in das Modul Sub VBASumifs () ein mysalesman = [H3] myregion = [H4] myproduct = [H5]

tsales = Application.WorksheetFunction.SumIfs ([nsales], [nsalesman], mysalesman, [nregion], myregion, [nproduct], myproduct)

[H6] = tsales End Sub

img9

Klicken Sie auf Multifunktionsleiste einfügen> Formen> Bild zeichnen. Klicken Sie mit der rechten Maustaste auf das Bild und klicken Sie auf Makro zuweisen

img10

img11

  • Nach dem Zuweisen des Makros; Klicken Sie auf die Schaltfläche „Verkauf aktualisieren“ und wir erhalten die Ausgabe in Zelle H6

img12

Hinweis: – Nachdem Sie den Namen, die Region und das Produkt des Verkäufers geändert haben, müssen Sie auf Verkauf aktualisieren klicken.

Um herauszufinden, welche Verkäufe die Bedingungen zwischen zwei Daten erfüllen; Das Folgende ist die Momentaufnahme der Kriterien:

img13

Wir werden den folgenden Code verwenden:

Sub Sumifs2Dates ()

mysalesman = [H3] myregion = [H4] myproduct = [H5]

stdate = [H6]

EndDate = [H7]

tsales = Application.WorksheetFunction.SumIfs ([nsales], [nsalesman], mysalesman, [nregion], myregion, [nproduct], myproduct, [ndate], „> =“ & stdate, [ndate], „⇐“ & EndDate)

[H8] = tsales End Sub

img14

  • Drücken Sie die Tastenkombination ALT + F8, um das Makrofenster zu öffnen, und wählen Sie dann das Makro aus.

  • Alternativ können Sie F5 drücken, um den Code im VBA-Bildschirm auszuführen.

  • Nach dem Ausführen des Makros erhalten wir die Ausgabe in Zelle H8

img15

Auf diese Weise können wir SUMIF mehrere Kriterien in VBA verwenden, um den Gesamtumsatz zwischen zwei Daten zu berechnen.