Codice fiscale inverso
Hai un problema con Excel? 
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!!
Vuoi Approfondire?