Codice fiscale inverso



  • Codice fiscale inverso
    di Gino (utente non iscritto) data: 12/02/2016 15:14:08

    Avevo bisogno di ricavare dal codice fiscale la data di nascita di una serie di soggetti (circa duemila); cercando in rete ho trovato una formula, che funziona bene: tuttavia, se il soggetto è nato tra il 2000 ed il 2009 il risultato è errato, in quanto la formula "legge" la data di nascita come se il soggetto fosse nato nel 1900. Es. Se è nato nel 2007 (per cui nel codice fiscale compare 07) la formula la legge come se fosse nato nel 1907. La formula che uso è:

    =DATA(STRINGA.ESTRAI(F34;7;2);TROVA(STRINGA.ESTRAI(F34; 9;1);"ABCDEHLMPRST");RESTO(STRINGA.ESTRAI(F34;10;2);40))



  • di accordix data: 12/02/2016 15:44:48

    Tratto da wikipedia

    Data di nascita
    Il fatto di indicare solo le ultime due cifre dell'anno di nascita implica che, a parità degli altri dati, i nati a distanza di un secolo hanno lo stesso codice. Ad esempio, un uomo nato il 1º febbraio 1907 ha lo stesso codice di un uomo nato nello stesso giorno nel 2007: 07B01.



  • di Gino (utente non iscritto) data: 12/02/2016 16:48:37

    Quindi non c'è nulla da fare. O mi sbaglio?? Dato che tra i nominativi che ho nessuno ha superato i 100 anni, si può correggere in qualche modo la formula in modo che lo 07 del codice fiscale sia letto come 2007 e non come 1907 ?? Avrei pensato a questa correzione: a me più che la data di nascita interessa l'età, calcolata rispetto ad una data che inserisco manualmente in una cella; quindi si potrebbe utilizzare una formula tale che, se il risultato dell'età calcolata sulla base della data di nascita è > 100 anni, al risultato finale sottrai 100. Ad esempio, se nel codice fiscale c'è 07, come data di nascita viene l'anno 1907, che dà un'età di 108 anni; sottraendo 100 si ha 8 anni, che è l'età giusta. Non so però che formula utilizzare per fare sottrarre 100 solo se il risultato supera i 100 anni.



  • di Gino (utente non iscritto) data: 12/02/2016 16:57:00

    Risolto. La formula da inserire è = SE(A1>100;"a1-100";"a1") ove A1 contiene l'età in anni.




  • di Gino (utente non iscritto) data: 17/02/2016 11:27:26

    Stupidamente pensavo di avere risolto il problema, ma non è così. Infatti, se inserisco in B1 la formula che avevo indicato = SE(A1>100;"a1-100";"a1") ove A1 contiene l'età in anni, se l'età in A1>100 anni, in B1 non mi restituisce il valore di a1-100, bensì mi compare il testo "a1-100" (senza le virgolette). In pratica, io pensavo che inserendo la formula sopra indicata in B1, se in A1 avevo come età 107, in B1 mi avrebbe dato 7 (107-100), mentre mi dà a1-100. Qualcuno ha una soluzione??



  • di Albatros54 data: 17/02/2016 13:37:55

    Prova a togliere le "", nella formula.





  • di Mister_x (utente non iscritto) data: 17/02/2016 15:04:13

    ciao

    ipotizzando che in Italia quelli che hanno superato i 100 anni siano pochi la formula che io utilizzerei sarebbe questa

    =DATA(SE(--(STRINGA.ESTRAI(A1;7;2))<=ANNO(OGGI())-2000;STRINGA.ESTRAI(A1;7;2)+2000;STRINGA.ESTRAI(A1;7;2)+1900);TROVA(STRINGA.ESTRAI(A1;9;1);"ABCDEHLMPRST");RESTO(STRINGA.ESTRAI(A1;10;2);40))


    ciao





  • di Gino (utente non iscritto) data: 17/02/2016 16:03:56

    Grazie!! In effetti togliendo le virgolette """" funziona!!