Calcolo dei giorni di malattia retribuiti e non retribuiti

La Signora Anna lavora nell’ufficio del personale di una azienda di produzione del Nord Italia e ha un problema con il programma delle buste paga, che a volte le sbaglia il calcolo dei giorni di malattia retribuiti o non retribuiti. Se non ho capito male, l’algoritmo è questo:

Il contratto prevede che i giorni di malattia vengano pagati fino a un limite che dipende dallo stato di anzianità al momento dell’inizio della malattia:

  • fino a 3 anni di anzianità: 2 mesi di malattia pagata
  • da 3 a 6 anni di anzianità: 3 mesi di malattia pagata
  • oltre i 6 anni di anzianità: 4 mesi di malattia pagata

Il conteggio è effettuato nei tre anni precedenti rispetto all’ultima malattia, ma dopo 6 mesi senza malattia il conteggio riparte da zero.

In caso di malattia prolungata, l’operaio ha diritto alla conservazione del posto se i giorni di malattia (a partire dal 01/01/1987) non superano quelli indicati da questa tabella:

  • fino a 3 anni di anzianità: 6 mesi di malattia
  • da 3 a 6 anni di anzianità: 9 mesi di malattia
  • oltre i 6 anni di anzianità: 12 mesi di malattia

La Signora Anna ha tentato più volte di creare un foglio di Excel i cui valori di input sono la data di assunzione e le date di inizio e fine delle malattie e i risultati vengono calcolati automaticamente; alla fine si è arresa ed esegue i calcoli a mano, con notevoli perdite di tempo e possibilità di errori.

Mi ha quindi chiesto se le riuscivo ad escogitare qualcosa, ed ecco il mio primo abbozzo: Esempio – assenze malattia in cui ho usato le seguenti funzioni:

  • =ANNO() per trovare la differenza in anni tra due date
  • =CERCA.VERT() per trovare un valore in una tabella e restituire il valore corrispondente nella colonna di destra
  • =SE()
  • =DATA(ANNO()-n;MESE();GIORNO()) per trovare la data corrispondente a n anni fa
  • =CONFRONTA() per trovare la posizione di un valore in una colonna
  • =SCARTO() per definire un intervallo di celle
  • =VAL.NON.DISP() per intercettare il messaggio di errore #N/D

Sono sicuro che sia possibile fare di meglio, quindi se hai suggerimenti sono assai benvenuti, come sempre.

giorni_malattia