Extragere date din CNP

Ce este nou in Microsoft Excel 2016?
Informatii despre cum se utilizeaza Microsoft Excel 2016
Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
danailas
Mesaje: 45
Membru din: Lun Noi 02, 2015 2:25 pm

Extragere date din CNP

Mesaj de danailas » Mar Noi 06, 2018 2:11 pm

Pentru extragerea datei de nastere folosesc aceasta formula:
=DATE((IF(VALUE(MID(E14;1;1))<3;1900;IF(VALUE(MID(E14;1;1))<5;"ERR";2000))+VALUE(MID(E14;2;2)));MID(E14;4;2);MID(E14;6;2))
Pentru calcul numar ani folosesc
=CONCATENATE(DATEDIF(O14;TODAY();"y");" ";"Ani")
Problema a aparut odata cu sosirea unor elevi din Republica Moldova. Acestia au pe permisele de sedere 7 pentru baieti si 8 pentru fete. Chestia proasta este aceea ca au 7 sau 8 si cei nascuti pana in 1999 si cei nascuti dupa 2000. Ma puteti ajuta cu o formula macar pentu o parte din ei?

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Extragere date din CNP

Mesaj de IPP » Mar Noi 06, 2018 4:04 pm

Buna ziua

Atasat aveti spre testare o idee in care am plecat de la premisa ca nu aveti elevi nascuti inainte de 1900.
Formula din B1 este:
=DATE(VALUE(MID(A1;2;2))+IF(VALUE(LEFT(A1;1))<3;1900;IF(VALUE(LEFT(A1;1))<7;2000;IF(ISERR(DATEDIF(DATE(2000+VALUE(MID(A1;2;2));VALUE(MID(A1;4;2));VALUE(MID(A1;6;2)));TODAY();"Y"));1900;2000)));VALUE(MID(A1;4;2));VALUE(MID(A1;6;2)))

Adica, in functie de prima cifra din cnp, la cele doua cifre reprezentand anul extrase deja se aduna 1900/2000:
<3 e pentru anul 1900
<7 e pentru anul 2000
>=7 se bazeaza pe faptul ca in cadrul formulei datedif daca data calendaristica de start > data calendaristica finala e returnata o eroare; in formula de mai sus se testeaza daca e eroare crearea unei date de start pornind de la anul 2000 (raportarea ca data finala se face intodeauna la ziua curenta - today) caz in care data finala se compune pornind de la anul 1900, daca nu de la anul 2000.

Partea pentru extragerea lunii si zilei raman neschimbate.

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

danailas
Mesaje: 45
Membru din: Lun Noi 02, 2015 2:25 pm

Re: Extragere date din CNP

Mesaj de danailas » Mie Noi 07, 2018 9:32 am

Va multumesc mult, si indraznesc sa va intreb daca exista o astfel de posibilitate pentru formatul Excel 97-2003 care nu suporta multe IF-uri imbricate. Intreb deoarece nu toti profesorii au Office 2016,

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Extragere date din CNP

Mesaj de IPP » Mie Noi 07, 2018 9:55 am

Buna ziua

Versiunile Excel anterioare 2007 suporta pana la 7 IF-uri imbricate. In formula propusa de mine exista 3. Deci daca aveti o problema cu prea multe if-uri aceasta nu tine strict de formula de mai sus ci, eventual, de ce alte formule mai aveti prin fisier.

Nu am in acest moment acces la o versiune de Excel 2003 dar din ce spun altii functia DATEDIF exista si acolo. Totusi pentru siguranta, ar trebui sa incercati sa salvati o copie a fisierului meu ca .xls si sa il deschideti in Excel 2003 si sa faceti cateva teste.

Celelalte functii folosite in formula de mai sus (VALUE, LEFT, MID, ISERR, TODAY) exista si in Excel 2003 deci nu pun probleme de compatibilitate

Ca recomandare generala: daca stiti ca un fisier va ajunge sa fie folosit si in versiuni anterioare de excel, cel mai bine ar fi sa creati acel fisier in versiunea (si formatul) cel mai vechi, de exemplu in Excel 2003, formatul .xls Daca vorbim strict de formulele folosite, ce functioneaza in Excel 2003 ar trebui sa functioneze si in Excel 2016. Procendand invers, chiar daca salvati ulterior fisierul din formatul .xlsx in cel .xls, exista riscul real sa fi folosit formule care nu mai sunt compatibile (nu exista) in versiunile anterioare.

IP

danailas
Mesaje: 45
Membru din: Lun Noi 02, 2015 2:25 pm

Re: Extragere date din CNP

Mesaj de danailas » Mie Noi 07, 2018 11:02 am

Fisierul trimis de dumneavoastra am incercat sa-l salvez cu Salvare ca.... Registru de lucru Excel 97-2003 si da erori atat la salvare cat si la redeschiderea tot in Excel 2016. Indiferent daca puteti sau nu sa solutionati aceasta problema va multumesc pentru ajutor.

IPP
Moderator
Moderator
Mesaje: 4197
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Extragere date din CNP

Mesaj de IPP » Mie Noi 07, 2018 11:34 am

Incercati sa salvati ca .xls fisierul atasat, in care am inlocuit formula din B1 cu aceasta:
=DATE(VALUE(MID(A1;2;2))+IF(VALUE(LEFT(A1;1))<3;1900;IF(VALUE(LEFT(A1;1))<7;2000;IF(ISERR(DATEDIF(DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));TODAY();"Y"));1900;2000)));MID(A1;4;2);MID(A1;6;2))

sau, mai scurt:
=DATE(MID(A1;2;2)+IF(LEFT(A1;1)<3;1900;IF(LEFT(A1;1)<7;2000;IF(ISERR(DATEDIF(DATE(2000+MID(A1;2;2);MID(A1;4;2);MID(A1;6;2));TODAY();"Y"));1900;2000)));MID(A1;4;2);MID(A1;6;2))
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

danailas
Mesaje: 45
Membru din: Lun Noi 02, 2015 2:25 pm

Re: Extragere date din CNP

Mesaj de danailas » Mie Noi 07, 2018 2:21 pm

Super, multumesc mult!

DR.ACCESS
Moderator
Moderator
Mesaje: 300
Membru din: Lun Sep 05, 2011 5:06 pm

Re: Extragere date din CNP

Mesaj de DR.ACCESS » Vin Noi 09, 2018 9:59 am

danailas scrie:
Mie Noi 07, 2018 11:02 am
Fisierul trimis de dumneavoastra am incercat sa-l salvez cu Salvare ca.... Registru de lucru Excel 97-2003 si da erori atat la salvare cat si la redeschiderea tot in Excel 2016. Indiferent daca puteti sau nu sa solutionati aceasta problema va multumesc pentru ajutor.
Buna,
Imi permit sa intervin cu cateva clarificari ca sa nu va mai confruntati cu aceasta problema pe viitor
Problema la salvarea formulei in formatul XLS survine din specificatiile aplicatiei Excel 2003. Intr-o celula nu se accepta mai mult de 255 de caractere. Acesta este motivul pentru care formula mai scurta functioneaza indiferent de versiune.
Functia DATE nu necesita conversie in valoare a argumentelor si se poate folosi direct rezultatul functiei MID.
D. Tanase
MCT, MCTS
MOS Master Instructor

Scrie răspuns

Înapoi la “Intrebari despre Excel 2016”