
Formula generica
=SUMPRODUCT((holidays>=start)*(holidays<=end))
Sommario
Per contare le festività che si verificano tra due date, è possibile utilizzare la funzione SUMPRODUCT.
Nell'esempio mostrato, la formula in F8 è:
=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))
Spiegazione
Questa formula utilizza due espressioni in una singola matrice all'interno della funzione SUMPRODUCT.
La prima espressione verifica ogni data di festività per vedere se è maggiore o uguale alla data di inizio in F5:
(B4:B12>=F5)
Questo restituisce un array di valori VERO / FALSO come questo:
(FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; TRUE)
La seconda espressione verifica ogni data di festività per vedere se è minore o uguale alla data di fine in F6:
(B4:B12<=F6)
che restituisce un array di valori VERO / FALSO come questo:
(TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; FALSE)
La moltiplicazione di questi due array costringe automaticamente i valori VERO / FALSO a uno e zero, risultando in array che assomigliano a questo:
=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))
Dopo la moltiplicazione, abbiamo solo un array come questo:
=SUMPRODUCT((0;0;0;0;1;1;1;1;0))
Infine, SUMPRODUCT somma gli elementi nell'array e restituisce 4.
Festivi solo nei giorni feriali
Per contare le festività che si verificano solo nei giorni feriali (lunedì-venerdì), puoi estendere la formula in questo modo:
=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))
dove rng è un intervallo contenente le date delle festività.