Calcolo dell’ultimo giorno in un numero di settimana (Microsoft Excel)
Probabilmente sai che puoi usare la funzione WEEKNUM per restituire il numero della settimana in un anno per una determinata data. E se volessi fare il contrario, per determinare l’ultimo giorno di una particolare settimana, se tutto ciò che hai è il numero della settimana entro l’anno? Ad esempio, se dovessi specificare la settimana 37, vorresti capire la data dell’ultimo giorno in quella particolare settimana.
Non esiste una funzione integrata per determinare la data desiderata, ma ci sono diversi modi in cui puoi affrontare il problema e capirlo. In questi esempi supporremo che l’anno sia nella cella A1 e il numero della settimana desiderato sia nella cella B1.
Il primo approccio consiste nel calcolare il primo giorno dell’anno desiderato, aggiungere sette giorni per ciascuna delle settimane e quindi sottrarre il numero del giorno della settimana per il primo giorno dell’anno.
=DATE(A1,1,1)+B1*7-WEEKDAY(DATE(A1,1,1))
Questa formula restituisce una data che rappresenta sempre l’ultimo giorno della settimana, se la settimana termina di sabato. Se vuoi che la settimana finisca in un giorno diverso della settimana, la formula diventa più complessa. Se vuoi che la settimana finisca di domenica, devi semplicemente aggiungere 1 alla formula:
=DATE(A1,1,1)+B1*7-WEEKDAY(DATE(A1,1,1))+1
Applicando la stessa logica, potresti pensare di poter calcolare le settimane che terminano venerdì semplicemente sottraendo 1 dalla formula. Questo non è il caso poiché stai usando l’inizio dell’anno come base.
Se sottrai 1, ti imbatti nel problema in cui il 1 gennaio di qualsiasi anno è un sabato; se sottrai 1 non finisci con il primo venerdì dell’anno ma invece finisci con il 31 dicembre dell’anno precedente. Per calcolare le settimane che terminano il venerdì hai bisogno di una formula molto più complessa:
=DATE(A1,1,6-WEEKDAY(DATE(A1,1,1)) ((6-WEEKDAY(DATE(A1,1,1))<0)7)+1)+((B1-1)7)
Dal momento che alcuni anni hanno 52 settimane e altri 53, sempre a seconda che le settimane finiscano di venerdì, sabato o domenica, è una buona idea modificare le formule in modo che controllino per vedere se la data restituita è entro lo stesso anno che stai analizzando. Se non lo selezioni, le formule fornite finora restituiranno felicemente le date per la settimana 73, la settimana 89 o la settimana 123 di un dato anno: semplicemente aggiustano la data nell’anno futuro appropriato.
Ecco la formula per le settimane che terminano con venerdì:
=IF(YEAR(DATE(A1,1,6-WEEKDAY(DATE(A1,1,1)) ((6-WEEKDAY(DATE(A1,1,1))<0)7)+1)+((A1-1)7))=A1, DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))+((6-WEEKDAY(DATE( A1,1,1))<0)7)+1)+((B1-1)7),"")
Se la data calcolata non è nello stesso anno di quella specificata nella cella A1, la formula non restituisce nulla. Ecco la formula per le settimane che terminano con sabato:
=IF(YEAR(DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1)))=A1, DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1)),"")
Infine, ecco la formula per le settimane che terminano con domenica:
=IF(YEAR(DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1))+1)=A1, DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1))+1,"")
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (12603) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: