Scomporre Stringa Cognome Nome

giovedì 01 settembre 2005 - 15.42

LeonDom Profilo | Senior Member

Salve ragazzi,
non mi era mai capitato di imbattermi in una cosa del genere...

qualche FFFenomeno con uno stipendio che si aggira su cifre superiori a 2.500 Euro/Mese, si inventò questa cosa qualche anno fa.... Cognome e Nome tutti su un unico campo... credo che siano dati provenienti da vecchi sistemi AS/400 ... importati in Excel e messi in database Access... in fatto è che sono rimasti invariati...

Io ho questo problema... come faccio a dividere in nome e cognome.... mi spiego: secondo la mia progettazione dati, il nome e il cognome sono due campi separati, quindi ho la necessità di dividerli.
Ora quando mi trovo:
Mario Rossi non ho problemi
Mario Di Rossi ho già qualche problemino in più, ma il più delle volte mi va bene, e se voglio essere sicuro potrei utilizzare un controllo sul codice fiscale e questo è già un bel filtro...
ma quando mi trovo:
Mario Domenico ALvarez de Puta Madre????? Non mi rimane che farlo a manina...

Voi vi siete mai imbattuti in una cosa del genere???
Grazie a tutti

byebye

Brainkiller Profilo | Guru

Ciao LeonDom,
LOL è un bel problemino questo che hai :) Roba da matti :)
Allora, tanto per cominciare, il Database quanti record ha in anagrafica ?

La prima cosa che mi viene in mente è lanciare una scansione e:

1) Applicare dove certo le modifiche quindi scomporre nome e cognome (nel caso migliore Mario Rossi, il primo è il nome e il secondo cognome)
2) Farti avere una lista dettagliata di tutte le altre anomalie cioè chi ha più di 3 nomi. E non è detto che Mario De Rossi, sia De Rossi cognome e Mario Nome, perchè potrebbe anche essere che uno si chiama Francesco Paolo Rossi e quindi che fai ? Se l'algoritmo ti prende "Paolo Rossi" come "De Rossi" sbaglia.

Una volta che hai la lista verifichi a mano... :)
Per questo ti chiedo quanti sono.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

LeonDom Profilo | Senior Member

Ciao Brainkiller,
ti ringrazio innanzitutto per le indicazioni... sono più di 100.000 record, si hai letto bene... più di 100.000 record... diciamo che di casi estremi ce ne sono pochi, ma di doppi nomi o doppi cognomi ce ne sono un bel po'... quindi non mi resta che filtrare dove c'è un solo spazio, il resto lo metto a manina quando l'importazione me lo segnala....

Non vedo altra soluzione...

LeonDom

totti240282 Profilo | Guru

la vedo l'unica soluzione a meno che e ci sono 3 nomi tipo diego armando maradona ,tu controlli se sono tre elementi agganci il primo col secondo e il terzo è il cognome.

C'è solo un capitano !!!!!!

Cteniza Profilo | Guru

A me quella situazione è capitata moltissime volte con aggravanti.
Prova a prendere qualche decina di migliaia di anagrafiche in cui c'è (oltre a quello che hai chiesto) anche da separare in campi diversi la descrizione della via:
Esempio:
Via San Francesco, 21
Tu devi separare tutti gli elementi
Dirai è facile.
Prova allora a ricondurre alla stessa codifica (visto che si tratta della stessa via):
Via s.Francesco
V.S.Francesco
V. S.Francesco
V. Francesco d'assisi
Viale San Francesco d'assisi
Piazza San Francesco D'assisi
S.Francesco
Hai tutta la mia solidarietà.
Se ti posso dare un consiglio: fai un programma che prende il primo cognome (o almeno quello che tu pensi sia il primo cognome es: mario rossi il cognome è mario), spezza i campi e dai tutto all'utente che se lo corregga a mano.
Se vuoi elminare alcuni errori (ma non tutti) ti devi fare un database di nomi di persona (nel nostro caso mario rossi sarebbe separato correttamente tra il cognome rossi ed il nome mario) ed un secondo elenco di cognomi consolidati.
Purtroppo il database non può contenere tutto e può anche generare degli errori: ti dico questa ho conosciuto due persone che si chiamavano Fiore Federico, il primo aveva "Fiore" di cognome e l'altro invece "Federico".

LeonDom Profilo | Senior Member

Ringrazio tutti per l'interessamento...

X totti240282--- c'è solo un capitano...

X cteniza: non penso proprio che sia un compito facile.
Fortunatamente l'indirizzo è esatto così e si trova su un'unico campo... mi devo scontrare solo con il nome, ma alla fine lo metto io a mano, faccio sicuramente prima... perderò una giornata se mi va bene, ma sarò più sicuro!!!

Non finirò mai di ringraziare ed osannare quel FFFenomeno che ha fatto questa base dati... taccisua!!!

Grazie a tutti....

ByeBye





LeonDom

androlone Profilo | Newbie

Ragazzi ho ricavato una soluzione niente male per SEPARARE i COGNOMI DAI NOMI, scritti nell'ordine CCC NNN (ossia prima cognome e poi nome), raggruppa la maggioranza delle eccezioni per nomi doppi o con preefissi italiani, PROVATELO!!!

IN A1 abbiamo ad esempio: ROSSI MARIA LUISA, oppure DE GENNARO ANNA o ancora D' ANNA DARIO o ancora D'ANNA DARIO(la differenza è con e senza spazio dopo l'apostrofo)

IN B1 scriviamo:

=SE(SINISTRA(A1;2)="De";STRINGA.ESTRAI(A1;1;TROVA(" ";A1;TROVA(" ";A1)+1));SE(SINISTRA(A1;2)="Di";STRINGA.ESTRAI(A1;1;TROVA(" ";A1;TROVA(" ";A1)+1));SE(SINISTRA(A1;3)="D' ";STRINGA.ESTRAI(A1;1;TROVA(" ";A1;TROVA(" ";A1)+1));SE(SINISTRA(A1;2)="D'";STRINGA.ESTRAI(A1;1;TROVA(" ";A1;TROVA(" ";A1)));STRINGA.ESTRAI(A1;1;TROVA(" ";A1;TROVA(" ";A1)))))))

IN B2 scriviamo:

=DESTRA(A1;(LUNGHEZZA(A1)-LUNGHEZZA(B1)))

alexmed Profilo | Guru

Figo!
Ci vinci anche il mondiale Rally!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5