'------------------------------
Ciao Saro,
Prova:
Menu | Dati | Testo in Colonne
---
Regards,
Norman
Saro ha scritto:
> avrei bisogno di un vostro autorevole aiuto. In un file excel 2003,
Per il futuro, se hai necessità su questo programma specifico utilizza il
newsgroup dedicato:
microsoft.public.it.office.excel
> una colonna contiene i cognomi e i nomi di un gran numero di persone
> (circa 3000), in lettere maiuscole, separati da uno spazio. Io vorrei
> invece dividere, automaticamente, i cognomi dai nomi, cioè estrapolare
> i nomi ed inserirli in una nuova colonna.
Questo è molto semplice. Seleziona la colonna che attualmente contiene nome
e cognome, poi usa il comando "Dati-->Testo in colonne...". Comparirà una
procedura guidata. Imposta i parametri: DELIMITATI, abilita tra i
delimitatori l'opzione "Spazio" e poi conferma. Attenzione che ad ogni
spazio Excel interromperà la colonna e proseguirà nella cella successiva,
per cui se hai nominativi in cui ci sono più nomi o più parole per il
cognome dovrai intervenire manualmente a sistemare.
> vorrei poter trasformare i cognomi e i nomi con l'iniziale maiuscola e
> le altre lettere minuscole
Anche qui non c'è problema: esiste la funzione =MAIUSC.INIZ() che prende il
contenuto di una cella e ne converte il testo formattando la prima lettera
in maiuscolo ed il resto in minuscolo.
Potresti procedere in questo modo, ammesso che alla fine del passaggio
precedente tu abbia due colonne (diciamo la colonna A con il nome e B con il
cognome o viceversa).
Nella colonna C, ad esempio in C1 inserisci la segunte funzione:
=MAIUSC.INIZ(A1)
(dove A1 indica la cella che contiene il primo nome/cognome da convertire)
Ora *trascina* questa cella (C1) in tutte quelle sottostanti ed in quella di
fianco (D1), oppure effettua un copia&incolla; poi da D1 trascina o
copia&incolla nelle sottostanti.
Alla fine di questa fase avrai 4 colonne piene: le prime due con nome e
cognome in maniuscolo, e le ultime due con nome e cognome con formato
maiuscolo+minuscolo.
Siccome queste ultime due colonne sono funzione delle prime due e
probabilmente quello che serve a te è il testo vero e proprio dovrai
procedere con un ulteriore passaggio:
- seleziona le due colonne C e D che al momento contengono le funzioni;
- usa il comando Copia
- usa il comando "Modifica-->Incolla Speciale..." (senza cambaire la
selezione). Comparirà una finestra di dialogo.
- dalla finestra di dialogo attiva l'opzione "Valori" (al posto di "Tutto"
che è il default).
A questo punto potrai cancellare le prime due colonne, mentre le ultime due
conterranno quello che ti serve.
Ciao
Roberto
--
Roberto Restelli
Microsoft MVP - Office Systems - Outlook
************************************************
La prima raccolta delle FAQ del newsgroup Microsoft di Outlook:
http://erredue.altervista.org
> Ciao Saro.
>
> Saro ha scritto:
>> avrei bisogno di un vostro autorevole aiuto. In un file excel 2003,
>
> Per il futuro, se hai necessità su questo programma specifico
> utilizza il newsgroup dedicato:
> microsoft.public.it.office.excel
>
Ciao Roberto,
Forse hai fatto un po' di confusione...
Qui *siamo* su m.p.i.o.e...
--
Ciao
Franz Verga
Franz Verga ha scritto:
> Forse hai fatto un po' di confusione...
> Qui *siamo* su m.p.i.o.e...
Oooops!
Forse sto lavorando troppo... :-D
Funziona a meraviglia. Peccato che tantissimi nominativi, specie di
donne, hanno nomi composti, Maria Luisa, Anna Franca ecc. il che mi
comporta un lungo lavoro manuale, trattandosi di circa 4000 soci della
nostra associazione.
Ringrazio tantissimo, sia te che Norman Jones, che sostanzialmente mi
ha dato la stessa risposta, evitandomi un lavoro che manualmente
avrebbe richiesto giornate intere.
Saro ha scritto:
> Peccato che tantissimi nominativi, specie di
> donne, hanno nomi composti, Maria Luisa, Anna Franca ecc. il che mi
> comporta un lungo lavoro manuale, trattandosi di circa 4000 soci della
> nostra associazione.
Anche qui si puň trovare qualche "trucco" per facilitare il compito.
Ad esempio potresti accertarti che almeno il Cognome sia presente in una
colonna unica (se ci sono cognomi con piů parole sistema solamente questo).
Alla fine avrai una colonna per il Cognome e due o tre colonne per il Nome
(o quelle che sono). A questo punto, potresti utilizzare una colonna vuota
per *concatenare* queste due o tre colonne, in maniera tale da raggruppare
solamente i nomi in un solo campo. Se ad esempio le colonne "B", "C" e "D"
contengono parti del nome potresti creare in "E" una formula del tipo:
=ANNULLA.SPAZI(CONCATENA(B1;" ";C1";" ";D1"))
dove la funzione CONCATENA non fa altro che creare una nuova stringa
aggiungendo le singole celle ed una serie di spazi e la funzione
ANNULLA.SPAZI elimina gli eventuali spazi residui in testa ed in coda alla
nuova stringa
Questo funziona anche se un nome č formato da una sola parola.
Poi con un meccanismo analogo a quello che ho descritto nell'altro post
sostituisci la funzione con il valore dell'"Incolla Speciale".
Grazie ancora per la tua disponibilità e competenza
> Ciao Franz.
>
> Franz Verga ha scritto:
>> Forse hai fatto un po' di confusione...
>> Qui *siamo* su m.p.i.o.e...
>
> Oooops!
> Forse sto lavorando troppo... :-D
Beato te...
Io ahimè ho tanto, troppo, tempo libero... :-(
--
Ciao
Franz Verga
"Saro" ha scritto:
Ciao saro e cordiali saluti a Roberto.
Della serie non c'è trucco, non c'è inganno, ma solo prove (non allergiche),
prova con questa macro:
Sub anagrafico()
Dim A, B, R
Dim cl As Range
Sheets("Foglio2").Select
R = 1
For Each cl In Range("A1:A100")
If Cells(R, 1) = "" Then Exit Sub
A = Cells(R, 1)
B = InStrRev(A, " ")
Cells(R, 2) = Left(A, B - 1)
Cells(R, 3) = Mid(A, B + 1)
R = R + 1
Next
End Sub
che dovrebbe darti un risultato simile a questo
A B C
MARIA GRAZIA ELMI MARIA GRAZIA ELMI
MARIA GIOVANNA ELMI MARIA GIOVANNA ELMI
CARLO ALBERTO REX CARLO ALBERTO REX
ALBERTO SECONDO LIEGI ALBERTO SECONDO LIEGI
Saluti
Eliano
> prova con questa macro:
> Sub anagrafico()
> Dim A, B, R
> Dim cl As Range
> Sheets("Foglio2").Select
> R = 1
> For Each cl In Range("A1:A100")
> If Cells(R, 1) = "" Then Exit Sub
> A = Cells(R, 1)
> B = InStrRev(A, " ")
> Cells(R, 2) = Left(A, B - 1)
> Cells(R, 3) = Mid(A, B + 1)
> R = R + 1
> Next
> End Sub
Ciao Eliano.
Solo per una questione di forma, permettimi di
riscriverla (è più forte di me!) senza nulla
togliere alla funzionalità della tua routine.
-------------------------------------------
Sub anagrafico()
Dim A As String 'stringa corrente
Dim B As Integer 'posizione ultimo spazio
Dim R As Long 'riga corrente
R = 1
While Cells(R, 1).Value <> ""
A = Cells(R, 1).Value
B = InStrRev(A, " ")
Cells(R, 2).Value = Left(A, B - 1)
Cells(R, 3).Value = Mid(A, B + 1)
R = R + 1
Wend
End Sub
------------------------------------------
()---cucchiaino
"cucchiaino" ha scritto:
Ciao cucchiaino.
Ti ringrazio per l'estensione tecnica e coerente per la quale non devi
chiedermi il permesso; dati i miei limiti, che conosco perfettamente, è una
cosa che gradisco comunque.
Grazie infinite.
Eliano
Ciao, Saro.
Un po' di archeologia non fa mai male:
http://www.google.it/groups?threadm=Ofb8anVvAHA.2000@tkmsftngp03
--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)
Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- RIO - http://www.riolab.org/
?SPQR(C)
X
--------
> Un po' di archeologia non fa mai male:
> http://www.google.it/groups?threadm=Ofb8anVvAHA.2000@tkmsftngp03
ma come fai a scovare thread del 2001? come interroghi google?