Se vuoi farlo con formule, allora viene un po' lungo...
Ad esempio:
In S7 metti la formula
- Codice: Seleziona tutto
=SE.ERRORE(SOMMA((MESE(RIF.RIGA(INDIRETTO($G6&":"&$H6)))=RIF.COLONNA(A1))*(GIORNO.SETTIMANA(RIF.RIGA(INDIRETTO($G6&":"&$H6));2)<6)*(ANNO(RIF.RIGA(INDIRETTO($G6&":"&$H6)))=$L$7)*(CONTA.SE($P$7:$P$30;RIF.RIGA(INDIRETTO($G6&":"&$H6)))=0));0)
Questa ti conta i giorni di ferie di Gennaio relativi al range G6:H6
Copiala fino ad AD7 e avrai i giorni dei mesi fino a Dicembre, sempre relativamente al range G6:H6
Copia S7:AD7 verso il basso, per quante righe di input pensi di avere in G:H, e cosi' avrai lo split Genn-Dic per ogni periodo segnato in colonne G:H
Ora ti bastera' fare la somma in verticale, quindi S7:Sxx, T7:Txx, etc etc per avere finalmente i giorni totale di ferie per ogni mese, per tutti i periodi indicati in colonna G:H
Oppure si va con una "funzione" specializzata. Esempio:
In un modulo standard inserisci questo codice
- Codice: Seleziona tutto
Function FerieSplit(ByRef aDati As Range, ByRef aFeste As Range, ByVal Anno As Long) As Variant
Dim oArr(1 To 12, 1 To 1), wArr, wHoli(), I As Long, J As Long
Dim cMese As Long
'
wArr = aDati.Value
ReDim wHoli(1 To aFeste.Count)
For I = 1 To aFeste.Rows.Count
wHoli(I) = CLng(aFeste.Cells(I, 1))
Next I
For I = 1 To UBound(wArr)
For J = wArr(I, 1) To wArr(I, 2)
If Weekday(J, vbMonday) < 6 And _
IsError(Application.Match(CLng(J), wHoli, False)) Then
cMese = Month(J)
If Year(J) = Anno Then
oArr(cMese, 1) = oArr(cMese, 1) + 1
End If
End If
Next J
Next I
FerieSplit = oArr
End Function
Ora seleziona L8:L19 e scrivi nella barra della formula:
- Codice: Seleziona tutto
=FerieSplit(G6:H20;P7:P22;L7)
Conferma la formula con Contr-Maiusc-Enter, non il solo Enter, e avrai il frazionamento delle ferie per mese.
La sintassi generale e':
- Codice: Seleziona tutto
=FerieSplit(AreaDelleDate;AreaDelleFestività;Anno)
AreaDelleDate e' l'area di colonna G:H dedicata alla registrazione delle ferie; 2 colonne in formato Data
AreaDelleFestività e' l'area dedicata all'elenco delle giornate festive; 1 colonna in formato Data o vuota
Anno e' intuitivo; numero in formato esteso, es 202; o riferimento alla cella che lo contiene.
Prova...