Vba: come aggiungere se tra due date
È possibile utilizzare la seguente sintassi in VBA per calcolare la somma se le celle si trovano tra due date:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Questo particolare esempio sommerà i valori nell’intervallo B2:B9 solo quando la data nell’intervallo A2:A9 rientra tra la data di inizio nella cella E1 e la data di fine nella cella E2 .
La somma verrà quindi visualizzata nella cella E3 .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come aggiungere Se tra due date in VBA
Supponiamo di avere il seguente set di dati contenente informazioni sul numero totale di prodotti venduti in date diverse in un negozio al dettaglio:
Supponiamo di voler calcolare la somma delle vendite solo per le date comprese tra il 07/01/2023 e il 26/01/2023 .
Per fare ciò possiamo creare la seguente macro:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Tieni presente che la cella E3 contiene il valore 16 .
Questo rappresenta la somma dei valori nella colonna vendite dove la data è compresa tra il 07/01/2023 e il 26/01/2023.
Possiamo verificare che ciò sia corretto calcolando manualmente la somma dei valori nella colonna Vendite dove il valore corrispondente nella colonna Data è compreso tra 07/01/2023 e 26/01/2023:
Somma delle vendite: 3 + 7 + 6 = 16 .
Ciò corrisponde al valore calcolato da VBA.
Tieni presente che se modifichi i valori delle date di inizio e fine rispettivamente nelle celle E1 ed E2 ed esegui nuovamente la macro, verrà calcolata la somma delle vendite per le nuove date.
Nota : si presuppone che i valori nella colonna della data siano già formattati come date in Excel.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come scrivere le funzioni SOMMA.SE e SOMMA.FS
VBA: come scrivere le funzioni COUNTIF e COUNTIFS
VBA: come scrivere le funzioni MEDIA.SE e MEDIA.SE