Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 De unde cumparati suspensii / gar...

[UNDE] Reconditionare obiecte lemn

Infiltratii casa noua

sugestie usa interior
 ANAF si plata la selfpay

Imprimanta ciss rezista perioade ...

Garmin fēnix 7 / PRO / Saphi...

Care sunt cele mai mari regrete a...
 

microsoft word [2000] formula = extragere an din CNP

- - - - -
  • Please log in to reply
15 replies to this topic

#1
onlyone

onlyone

    - - - GAME MASTER - - -

  • Grup: Senior Members
  • Posts: 12,845
  • Înscris: 08.10.2005
Salut
Poate stie cineva cum se face:
Am nevoie sa extrag anul din o lista cu CNP uri, lista este intrun tabel care contine
Nume si Prenume | Loc Nastere | CNP | Anul Nasterii |
Toti din lista fiind salariati si sunt nascuti inainte de 2000 deci din CNP trebuie extrase caracterele 2 si 3 si concatenate (prefixate) cu "19"
Are cineva idee cum se poate proceda pentru automatizarea procesului? Presupun ca se foloseste visual basic?

Nu stiu daca are importanta - este word din office 2000

Edited by onlyone, 23 July 2014 - 21:09.


#2
_-_

_-_

    - Magister Ludi -

  • Grup: Moderators
  • Posts: 22,901
  • Înscris: 21.03.2013
Importi lista in Excel.
Sa presupunem ca primul CNP este in celula B3.
Atunci in celula B5 care este goala scrii formula urmatoare:

=1900 + MID(B3,2,2)

Dupa aceea copiezi formula pe intreaga coloana.

Coloana cu CNP-urile trebuie sa fie de tip text.

#3
onlyone

onlyone

    - - - GAME MASTER - - -

  • Grup: Senior Members
  • Posts: 12,845
  • Înscris: 08.10.2005
multumesc pentru idee dar problema e ca as avea nevoie de automatizarea asta in word
e o cerinta a ministerului unde ajung listele si listele se modifica constant ca structura

#4
alexandru_viorel

alexandru_viorel

    Active Member

  • Grup: Members
  • Posts: 1,938
  • Înscris: 16.07.2010
Nu poti sa faci ceva de genu CNP / 10^10 % 100? Si iti returneaza fix anul nasterii?

#5
onlyone

onlyone

    - - - GAME MASTER - - -

  • Grup: Senior Members
  • Posts: 12,845
  • Înscris: 08.10.2005
@ alexandru -> in word merge chestia aia?
ce inseamna formula asta mai exact? cum extrage anul nasterii? nu e cam empirica?
in sensul ca greselile nu sunt permise, e important sa fie 100% reliable metoda de extractie a anului.

#6
alexandru_viorel

alexandru_viorel

    Active Member

  • Grup: Members
  • Posts: 1,938
  • Înscris: 16.07.2010
CNP-ul este format din 13 cifre, imparti cu 10^10 ramai cu primele 3, de exemplu 186 (86 fiind anul nasterii). %100 inseamna restul impartirii unui numar la 100, adica ultimele 2 cifre ale sale => iti va da 86.
Din pacate nu stiu cum se implementeaza asa ceva in word, dar daca ai nevoie de o formula pentru extractia anului din CNP, eu asta as folosi.

#7
The0nly0ne

The0nly0ne

    Member

  • Grup: Members
  • Posts: 847
  • Înscris: 16.11.2010
Cred ca ar fi ok sa pui si un exemplu cu tabelul respectiv.

#8
alexandru_viorel

alexandru_viorel

    Active Member

  • Grup: Members
  • Posts: 1,938
  • Înscris: 16.07.2010
Incearca ceva de genu' la formula:  =INT(MOD((SUM(LEFT)/10000000000),100)) in ideea in care in stanga ai CNP-ul.
Ceva asa vrei tu?
Attached File  Captură.PNG   63.25K   42 downloads

Edited by alexandru_viorel, 23 July 2014 - 22:42.


#9
onlyone

onlyone

    - - - GAME MASTER - - -

  • Grup: Senior Members
  • Posts: 12,845
  • Înscris: 08.10.2005
@alexandru - exact asa ceva, insa concatenat cu 19

#10
alexandru_viorel

alexandru_viorel

    Active Member

  • Grup: Members
  • Posts: 1,938
  • Înscris: 16.07.2010
=INT(19*100+MOD((SUM(LEFT)/10000000000),100))

#11
onlyone

onlyone

    - - - GAME MASTER - - -

  • Grup: Senior Members
  • Posts: 12,845
  • Înscris: 08.10.2005
super, merci
esti tare

inca o chestie
ai idee cum se copiaza in jos formula in toate randurile tabelului - sunt cam 1000 de pozitii
in excel e usor de multiplicat formula in jos cu drag de colt dar in word?

Am rezolvat se face cu copy paste dar trebuie apoi selectat si apasat F9 pentru recalculare

Edited by onlyone, 23 July 2014 - 23:19.


#12
easy90rider

easy90rider

    Senior Member

  • Grup: Senior Members
  • Posts: 8,980
  • Înscris: 01.07.2007
@onlyone, vezi ca acea formula nu merge si cu cei nascuti dupa 2000...

#13
onlyone

onlyone

    - - - GAME MASTER - - -

  • Grup: Senior Members
  • Posts: 12,845
  • Înscris: 08.10.2005

View Posteasy90rider, on 23 iulie 2014 - 23:12, said:

@onlyone, vezi ca acea formula nu merge si cu cei nascuti dupa 2000...
nu e problema, lista este cu salariati si deocamdata in 2014 nu avem salariati minori deci este okay atata vreme cat formula calculeaza corect anul nasterii celor nascuti intre 1901 si 1999

#14
alexandru_viorel

alexandru_viorel

    Active Member

  • Grup: Members
  • Posts: 1,938
  • Înscris: 16.07.2010

View Posteasy90rider, on 23 iulie 2014 - 23:12, said:

@onlyone, vezi ca acea formula nu merge si cu cei nascuti dupa 2000...
Se poate face foarte usor din cate am vazut cu niste IF-uri asta, dar onlyone a specificat ca nu are CNP-uri cu anul nasterii > 1999 deci nu m-am complicat.

#15
easy90rider

easy90rider

    Senior Member

  • Grup: Senior Members
  • Posts: 8,980
  • Înscris: 01.07.2007
@alexandru_viorel, da, stiu. Parca primul numar din CNP e 5/6 si nu 1/2.

#16
_-_

_-_

    - Magister Ludi -

  • Grup: Moderators
  • Posts: 22,901
  • Înscris: 21.03.2013
Sexul
Prima cifră din CNP reprezintă sexul şi secolul în care s-a născut o persoană. Persoanelor de sex masculin li se atribuie numere impare, iar celor de sex feminin numerele pare, astfel:
3 - persoane de sex masculin născute între 1 ianuarie 1800 şi 31 decembrie 1899
4 - persoane de sex feminin născute între 1 ianuarie 1800 şi 31 decembrie 1899

1 - persoane de sex masculin născute între 1 ianuarie 1900 şi 31 decembrie 1999
2 - persoane de sex feminin născute între 1 ianuarie 1900 şi 31 decembrie 1999
5 - persoane de sex masculin născute între 1 ianuarie 2000 şi 31 decembrie 2099
6 - persoane de sex feminin născute între 1 ianuarie 2000 şi 31 decembrie 2099
7 - persoane străine de sex masculin rezidente în România
8 - persoane străine de sex feminin rezidente în România
9 - persoanele străine


Mai multe detalii la: http://www.scientia....c-personal.html

Este suficient sa se testeze daca prima cifra este <= 2 sau < 3 si daca nu este, atunci sa afiseze, de exemplu, '0'.
Prima cifra se pote extrage cu ajutorul formulei:
=INT(SUM(LEFT)/1000000000000)

Deci, din formula lui alexandru_viorel, rezulta formula:
=IF(INT(SUM(LEFT)/1000000000000)<3,INT(1900+MOD((SUM(LEFT)/10000000000),100)),0)

Formula de mai sus se poate copia in locul lui '0' de la sfarsit, obtinand un if in if si inlocuind '<3' prin '<7' si 1900 prin 2000:
=IF(INT(SUM(LEFT)/1000000000000)<3,INT(1900+MOD((SUM(LEFT)/10000000000),100)),IF(INT(SUM(LEFT)/1000000000000)<7,INT(2000+MOD((SUM(LEFT)/10000000000),100)),0))

Formula de mai sus zic eu ca este suficienta, deoarece calculeaza anul pe baza CNP-ului pt. cetatenii romani nascuti intre 1900 si 2099 (pentru CNP-urile care incep cu 1,2 sau 5,6).

Mi-ar fi placut sa se poata utiliza aceasta formula si in LibreOffice Writer...

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate