In questo articolo, impareremo come utilizzare la funzione SUMIF in VBA con più criteri in Excel utilizzando il codice VBA.

Per ottenere l’output, utilizzeremo una combinazione di funzioni OFFSET e COUNTA per creare l’elenco di Name Manager.

Facci capire con un esempio:

  • Abbiamo un rapporto sulle vendite per venditore, regione e prodotto per gli anni dal 2012 al 2014.

img1

  • Vogliamo scoprire la cifra di vendita che soddisfa le seguenti condizioni: –

img2

  • Per tutte le condizioni; dobbiamo creare intervalli di nomi Per creare intervalli di nomi dinamici per il venditore:

Premi il tasto di scelta rapida CTRL + F3> Fai clic su Nuovo e inserisci la formula come = OFFSET (Foglio1! $ B $ 1,1,0, COUNTA (Foglio1! $ A: $ A) -1)

img3

Allo stesso modo, crea intervalli denominati per altre condizioni * Premi CTRL + F3 per aprire la finestra Gestione nomi (fai riferimento agli elenchi già creati)

img4

  • Utilizzando la funzione Incolla nomi nella scheda Formule, otterremo l’intero elenco di intervalli di nomi definiti nelle celle.

img5

  • Fare clic su Paste List

img6

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

nProduct * = OFFSET (Foglio1! $ D $ 1,1,0, COUNTA (Foglio1! $ A: $ A) -1)

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

nVendite * = OFFSET (Foglio1! $ E $ 1,1,0, COUNTA (Foglio1! $ A: $ A) -1)

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

Dobbiamo seguire i passaggi indicati di seguito per avviare l’editor VB Fare clic sulla scheda Sviluppatore Dal gruppo Codice, selezionare Visual Basic

img7

  • Fare clic su Inserisci, quindi su Modulo

img8

  • Questo creerà un nuovo modulo.

  • Inserisci il seguente codice nel modulo Sub VBASumifs () mysalesman = [H3] myregion = [H4] myproduct = [H5]

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

[H6] = tsales End Sub

img9

Fare clic su Inserisci barra multifunzione> Forme> Disegna un’immagine Fare clic con il tasto destro sull’immagine e fare clic su Assegna macro

img10

img11

  • Dopo aver assegnato la macro; fare clic sul pulsante Aggiorna vendite e otterremo l’output nella cella H6

img12

Nota: – Dopo aver cambiato il nome del venditore, la regione e il prodotto, fare clic su Aggiorna vendite.

Per scoprire le vendite che soddisfano le condizioni tra 2 date; seguente è l’istantanea dei criteri:

img13

Useremo il seguente codice:

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

  • Premendo il tasto di scelta rapida ALT + F8 per aprire la finestra Macro e quindi selezionare la macro.

  • In alternativa, puoi premere F5 per eseguire il codice nella schermata VBA.

  • Dopo aver eseguito la macro otterremo l’output nella cella H8

img15

È così che possiamo utilizzare SUMIF più criteri in VBA per calcolare le vendite totali tra 2 date.