DIVIDERE DATI DA CE...
 
Notifiche
Cancella tutti

La consultazione del forum è libera per tutti.

Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).

Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.

DIVIDERE DATI DA CELLA

8 Post
3 Utenti
0 Reactions
850 Visualizzazioni
Forum 1
(@nikle)
Post: 0
New Member
Avviatore di Topic
 

Un saluto a tutti, 

vi scrivo perchè avrei esigenza di dover suddividere in più colonne numerosi dati contenuti in una stessa riga di un database. In particolare dalla colonna C del file in allegato vorrei parcellizzare in singole colonne le diverse informazioni ( ragione sociale, indirizzo, n civico, cap, città, km)

 

 

Sono a conoscenza delle varie funzioni trova, destra, sinistra, stringa estrai... ma mi sto trovando in difficoltà su quali funzioni esattamente scegliere e come nidificarle dal momento che le informazioni che vorrei estrarre sono diverse e non omogenee tra le diverse righe.

 

Grazie in anticipo in caso qualcuno possa aiutarmi

 

Un saluto

Versione di Excel
Sistema operativo
 
Postato : 26/02/2022 16:10
Etichette discussione
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

prima parte

mettila in D2 da tirare a destra e in basso

=ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:A$1);100))

 

ma dividere ancora è un affare 

 
Postato : 26/02/2022 17:53
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao

Prova con la macro  seguente (da associare ad un pulsante Modulo, non ActiveX)

Sub dividi()
Dim ur As Long, i As Long, testo
ur = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ur
  testo = Split(Trim(Range("C" & i)), Chr(10))
  For j = 0 To UBound(testo)
    Cells(i, j + 4) = testo(j)
  Next j
  Erase testo
Next i
End Sub

Fai sapere. Ciao,

Mario

 
Postato : 26/02/2022 18:13
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

Ciao

fatta in fretta se poi riesco vedo se si può accorciare

e ancora non ci siamo

hai una miriade di variabili

 

 

D2

=ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:A$1);100))

E2

=SINISTRA(ANNULLA.SPAZI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:B$1);100)));TROVA("~";SOSTITUISCI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:B$1);100));" ";"~";LUNGHEZZA(ANNULLA.SPAZI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:B$1);100))))-LUNGHEZZA(SOSTITUISCI(ANNULLA.SPAZI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:B$1);100)));" ";""))))-1)

F2

=ANNULLA.SPAZI(DESTRA(SOSTITUISCI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:B$1);100));" ";RIPETI(" ";100));100))

G2

=ANNULLA.SPAZI(SINISTRA(SOSTITUISCI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:C$1);100));" ";RIPETI(" ";100));100))

H2

=ANNULLA.SPAZI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:C$1);100));1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;"");"-";""))

I2

=ANNULLA.SPAZI(SINISTRA(SOSTITUISCI(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(ANNULLA.SPAZI(CODICE.CARATT(10)&$C2);CODICE.CARATT(10);RIPETI(" ";100));100*COLONNE($A$1:D$1);100));" ";RIPETI(" ";100));100))

 
Postato : 26/02/2022 18:16
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao

@Gianfranco55

Hai provato la mia macro? Se sì, dimmi che te ne sembra.

Ciao,

Mario

 
Postato : 26/02/2022 18:24
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

marius

prima formula e macro fanno la stessa cosa

 

è un lavoraccio dividere come vuole Nikle

perchè le stringhe non sono uguali

qualcuna ha il numero civico

altre no

gli spazi sono messi alla carlona ecc...

 

comunque se alla tua macro aggiungi un annulla spazi

me la copio?

 
Postato : 26/02/2022 18:26
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao

Gli "annulla spazi" non l'ho messo volutamente perchè la macro esegue lo split in base al carattere "a capo" che c'è in tutte le righe.

Ciao,

Mario

 
Postato : 26/02/2022 18:57
Marius44
(@marius44)
Post: 0
Moderatore
 

Buongiorno a tutti

La macro "completa" è questa

Sub dividi()
Dim ur As Long, i As Long, testo

ur = Cells(Rows.Count, 1).End(xlUp).Row
Range("D2:I" & ur).ClearContents
For i = 2 To ur
  testo = Split(Trim(Range("C" & i)), Chr(10))
  For j = 0 To UBound(testo)
    Cells(i, j + 4) = Trim(testo(j))
  Next j
  Erase testo
Next i
'per km
Range("G2:G" & ur).Copy
Range("I2").PasteSpecial
Range("G2:G" & ur).ClearContents
'per città e cap
For i = 2 To ur
  num = Split(Cells(i, 6), " ")
  On Error Resume Next
  Range("H" & i) = num(1)
  Range("G" & i) = num(0)
  On Error GoTo 0
Next i
Range("F2:F" & ur).ClearContents
'indirizzo e n.civico
For i = 2 To ur
  adr = Split(Cells(i, 5), " ")
  On Error Resume Next
  Range("F" & i) = adr(UBound(adr))
  For k = 0 To UBound(adr) - 1
    ind = ind & " " & adr(k)
  Next k
  Range("E" & i) = ind
  ind = ""
  On Error GoTo 0
Next i
Cells(1, 4).Select
End Sub

Fai sapere. Ciao,

Mario

 
Postato : 27/02/2022 07:16
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download