Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Come convertire una colonna di dati in più righe

Ultimo Aggiornamento: 12/10/2018 18:27
Post: 25
Registrato il: 03/09/2018
Città: GROTTAGLIE
Età: 25
Utente Junior
Microsoft Office Professional Plus 2019 64 bit
OFFLINE
08/10/2018 16:54

Buon pomeriggio!
Avrei bisogno di convertire dei dati (riportati in un'unica colonna) in più righe.
Come potete vedere sul file, da quell'unica colonna ho ottenuto più righe:
scorrendo i dati della colonna, ogni orario rappresenta il dato con cui inizierà una nuova riga.
Siccome la colonna di dati sarà molto lunga, non credo mi sia conveniente usare il copia e incolla speciale.
Grazie a tutti
Post: 1.943
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
08/10/2018 17:12

ciao
gli orari mostrati nel tuo file sono in realtà stringhe.

Pertanto, se sei certa che solo tali celle contengano i ":" (due punti) si potrebbe ricercare cella per cella la presenza dei ":" ed agire di conseguenza.

Se sei sicura di quanto esposto ci si può provare, altrimenti è un lavoro a vuoto.

saluti



Domenico
Win 10 - Excel 2016
Post: 25
Registrato il: 03/09/2018
Città: GROTTAGLIE
Età: 25
Utente Junior
Microsoft Office Professional Plus 2019 64 bit
OFFLINE
08/10/2018 19:35

Ciao Dodo47, innanzitutto grazie per il tuo aiuto!
Nella colonna dei dati quelle stringhe contenenti i : per me saranno gli orari (magari cambierò il formato successivamente dopo la conversione in righe). Ci saranno quindi altre stringhe con - oppure con , o . ( o ) o numeri o lettere ma solo quelle con i : rappresenteranno il primo termine di ogni riga.
Post: 1.944
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
09/10/2018 09:18

Ciao

puoi provare:
Sub trasponi()
r = 10 'riga inizio trasposizione
c = 5 'colonna inizio trasposizione
r1 = 10 'riga inizio dati col. B DEVE CONTENERE ORA
ur = Range("B" & Rows.Count).End(xlUp).Row 'ultima riga col. B
CelStart = r1
CelEnd = 0
For j = r1 + 1 To ur
    If InStr(Cells(j, 2), ":") > 0 Then
        CelEnd = j - 1
        Range(Cells(CelStart, 2), Cells(CelEnd, 2)).Copy
        Cells(r, c).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
        r = r + 1
        CelStart = CelEnd + 1
    End If
Next
Stop
Range(Cells(CelStart, 2), Cells(ur, 2)).Copy
Cells(r, c).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
End Sub


Saluti




[Modificato da dodo47 09/10/2018 09:18]
Domenico
Win 10 - Excel 2016
Post: 26
Registrato il: 03/09/2018
Città: GROTTAGLIE
Età: 25
Utente Junior
Microsoft Office Professional Plus 2019 64 bit
OFFLINE
09/10/2018 14:36

Grazie dodo47! La macro va benissimo, dovevo solo cancellare quello stop al rigo 18 che ne bloccava l'esecuzione (ho fatto qualche prova per capirlo).
Poichè su di una colonna di 10000 dati la macro incomincia a rallentare molto ovvierò lavorando a blocchi più piccoli.
😊
[Modificato da Melissa2018 09/10/2018 14:40]
Post: 5.511
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
10/10/2018 08:25

Dati da colonna a righe
Ciao Melissa, un saluto a Domenico, per i tempi d'esecuzione su 10000 dati, prova questa, e formatta le colonne da E-U in Generale, ho previsto di cancellare 1000 righe, nel caso aumentale.

Sub Disponi()
Dim r, c, x, rng

Range("E10:U1000").ClearContents
r = Cells(Rows.Count, 2).End(xlUp).Row
rng = Range("B10:B" & r)
r = 9
For x = 1 To UBound(rng)
    If InStr(rng(x, 1), ":") > 0 Then r = r + 1: c = 5: Cells(r, c) = rng(x, 1)
    If InStr(rng(x, 1), ":") = 0 Then
        c = c + 1
        If IsNumeric(rng(x, 1)) Then Cells(r, c) = Val(rng(x, 1)) Else Cells(r, c) = rng(x, 1)
    End If
Next
End Sub


Ciao By Sal [SM=x423051]



[Modificato da by sal 10/10/2018 08:33]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 27
Registrato il: 03/09/2018
Città: GROTTAGLIE
Età: 25
Utente Junior
Microsoft Office Professional Plus 2019 64 bit
OFFLINE
10/10/2018 16:22

Buon pomeriggio By Sal! Ho appena eseguito la macro che mi hai gentilmente realizzato, ed è istantanea!
Un grazie+++++++++! 😊
Siete fortissimi! 💪
[Modificato da Melissa2018 10/10/2018 16:23]
Post: 0
Registrato il: 11/10/2018
Età: 32
Utente Junior
Excel 15.0
OFFLINE
11/10/2018 09:21

converting data
From last few days, I am trying to convert the data into multiple lines and I am not being able to do that. To know the solution I came here and got the process of doing it. It really helped me. I was doing a work for the Apple iPad Support and I am very new to Excel.
Post: 28
Registrato il: 03/09/2018
Città: GROTTAGLIE
Età: 25
Utente Junior
Microsoft Office Professional Plus 2019 64 bit
OFFLINE
11/10/2018 21:00

Hi johnwright, you are welcome! 😊
Post: 5
Registrato il: 16/09/2018
Età: 39
Utente Junior
2007
OFFLINE
12/10/2018 18:27

Macro che traspone valori
Ciao,

ho voluto dare il mio contributo.. :-)

Un saluto a tutti

Roberto

Excel 2007
Roby=85
Excel 2007
Vota: 15MediaObject5,00410 4
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:28. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com