Note: The other languages of the website are Google-translated. Back to English

 Come trasporre le celle in una colonna in base a valori univoci in un'altra colonna?

Supponendo che tu abbia un intervallo di dati che contiene due colonne, ora, vuoi trasporre le celle in una colonna in righe orizzontali in base a valori univoci in un'altra colonna per ottenere il seguente risultato. Hai qualche buona idea per risolvere questo problema in Excel?

doc traspone valori univoci 1

Trasponi le celle in una colonna in base a valori univoci con formule

Trasponi le celle in una colonna in base a valori univoci con codice VBA

Trasponi le celle in una colonna in base a valori univoci con Kutools per Excel


Con le seguenti formule di matrice, puoi estrarre i valori univoci e trasporre i loro dati corrispondenti in righe orizzontali, per favore fai come segue:

1. Inserisci questa formula di matrice: = INDICE ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) in una cella vuota, ad esempio D2, e premere Maiusc + Ctrl + Invio tasti insieme per ottenere il risultato corretto, vedi screenshot:

doc traspone valori univoci 2

Note:: Nella formula sopra, A2: A16 è la colonna da cui si desidera elencare i valori univoci e D1 è la cella sopra questa cella della formula.

2. Quindi trascina il quadratino di riempimento sulle celle per estrarre tutti i valori univoci, vedi screenshot:

doc traspone valori univoci 3

3. E poi continua a inserire questa formula nella cella E2: =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0)e ricordati di premere Maiusc + Ctrl + Invio tasti per ottenere il risultato, vedi screenshot:

doc traspone valori univoci 4

Note:: Nella formula sopra: B2: B16 sono i dati della colonna che vuoi trasporre, A2: A16 è la colonna su cui si desidera trasporre i valori in base a, e D2 contiene il valore univoco che hai estratto nel passaggio 1.

4. Quindi trascina il quadratino di riempimento a destra delle celle in cui desideri elencare i dati trasposti fino a visualizzare 0, vedi screenshot:

doc traspone valori univoci 5

5. E poi continua a trascinare il quadratino di riempimento verso il basso nell'intervallo di celle per ottenere i dati trasposti come mostrato nella seguente schermata:

doc traspone valori univoci 6


Potrebbe essere che le formule siano complesse da capire, qui puoi eseguire il seguente codice VBA per ottenere il risultato desiderato di cui hai bisogno.

1. Tieni premuto il ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il codice seguente nel file Modulo Finestra.

Codice VBA: trasponi le celle in una colonna in base a valori univoci in un'altra colonna:

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. Quindi premere F5 chiave per eseguire questo codice e verrà visualizzata una finestra di messaggio per ricordarti di selezionare l'intervallo di dati che desideri utilizzare, vedi screenshot:

doc traspone valori univoci 7

4. E poi clicca OK pulsante, verrà visualizzata un'altra finestra di messaggio per ricordarti di selezionare una cella per inserire il risultato, vedi screenshot:

doc traspone valori univoci 8

6. Clic OK pulsante e i dati nella colonna B sono stati trasposti in base a valori univoci nella colonna A, vedi screenshot:

doc traspone valori univoci 9


Se si dispone di Kutools for Excel, combinando il Combina righe avanzate e Celle divise utilità, è possibile completare rapidamente questa attività senza formule o codice.

Kutools for Excel : con oltre 300 utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni in 30 giorni.

Dopo l'installazione Kutools for Excel, si prega di fare come segue:

1. Seleziona l'intervallo di dati che desideri utilizzare. (Se desideri conservare i dati originali, copia e incolla prima i dati in un'altra posizione.)

2. Quindi fare clic Kutools > Unisci e dividi > Combina righe avanzate, vedi screenshot:

3. Nel Combina righe in base alla colonna finestra di dialogo, eseguire le seguenti operazioni:

(1.) Fare clic sul nome della colonna su cui si desidera trasporre i dati e selezionare Chiave primaria;

(2.) Fare clic su un'altra colonna che si desidera trasporre e fare clic Combinare quindi scegli un separatore per separare i dati combinati, come spazio, virgola, punto e virgola.

doc traspone valori univoci 11

4. Quindi fare clic Ok pulsante, i dati nella colonna B sono stati combinati insieme in una cella basata sulla colonna A, vedi screenshot:

doc traspone valori univoci 12

5. Quindi seleziona le celle combinate e fai clic Kutools > Unisci e dividi > Celle divise, vedi screenshot:

6. Nel Celle divise finestra di dialogo, selezionare Dividi in colonne sotto il Tipologia opzione, quindi scegli il separatore che separa i dati combinati, vedi screenshot:

doc trasporre valori univoci 14 14

7. Quindi fare clic Ok pulsante e seleziona una cella per inserire il risultato della divisione nella finestra di dialogo visualizzata, vedi screenshot:

doc traspone valori univoci 15

8. Clic OKe otterrai il risultato di cui hai bisogno. Vedi screenshot:

doc traspone valori univoci 16

Scarica e prova gratuitamente Kutools per Excel ora!


Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni. Scarica e prova gratuita ora!

I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (56)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Come potrei andare nella direzione opposta? Da più colonne in una singola colonna? Grazie in anticipo! Tim
Questo commento è stato fatto dal moderatore sul sito
Questo è stato fantastico. Avevo un excel con circa 2000 valori univoci nella riga A e non avrei potuto gestire questo esercizio senza il tuo aiuto. Molte molte grazie.
Questo commento è stato fatto dal moderatore sul sito
Il primo passaggio stesso non riesce =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) restituisce l'errore Valore non disponibile
Questo commento è stato fatto dal moderatore sul sito
Voglio solo fare il contrario. Come se avessi già il risultato finale e voglio raggiungere il primo passo.
Questo commento è stato fatto dal moderatore sul sito
Sto cercando la stessa cosa
Questo commento è stato fatto dal moderatore sul sito
Hai trovato una soluzione per lo scenario opposto? Grazie!
Questo commento è stato fatto dal moderatore sul sito
Voglio fare anche il contrario. Avete qualche soluzione, signori?
Questo commento è stato fatto dal moderatore sul sito
Ciao ragazzi,
Per ottenere il risultato opposto in base all'esempio di questo articolo, puoi applicare il seguente codice VBA: (Nota: quando selezioni l'intervallo di dati che desideri trasporre, escludi la riga di intestazione)

Sub TransposeUnique_2()
Dim xLRow, xLCcount As Long
Dim xRg come intervallo
Dim xOutRg come intervallo
Dim xObjRRg come intervallo
Dim xTxt come stringa
Dim x Conte fino a quando
Dim xVRg come intervallo
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("selezionare l'intervallo di dati:", "Ktools for Excel", xTxt, , , , , 8)
Imposta xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Se xRg non è niente, esci da Sub
Se (xRg.Rows.count < 2) Oppure _
(xRg.Areas.count > 1) Quindi
MsgBox "Selezione non valida", , "Ktools per Excel"
Exit Sub
End If
Set xOutRg = Application.InputBox("selezionare l'intervallo di output (specificare una cella):", "Ktools for Excel", xTxt, , , , , 8)
Se xOutRg non è nulla, allora esci da Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
Per xLRow = 1 per xRg.Rows.count
Imposta xObjRRg = Intervallo(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operazione:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Intervallo(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Valore = xRg.Cells(xLRow, 1).Valore
Imposta xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Successiva
Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Come eseguire la trasposizione se la colonna B non ha valori univoci ma ha comunque bisogno di quei valori
KTE 100
KTE 100
Supponendo che siano due transazioni diverse
Questo commento è stato fatto dal moderatore sul sito
Ciao, Didin,

Puoi fornire il tuo problema in modo più chiaro o dettagliato?
Puoi inserire uno screenshot di esempio per il tuo problema.
.
Questo commento è stato fatto dal moderatore sul sito
Hi there,
Potresti per favore aiutarmi con il requisito di seguito.
Prodotto ----- ordine
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
uscita prevista
Prodotto ----- ordine ----- ordine ------ ordine
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Questo commento è stato fatto dal moderatore sul sito
Anch'io ho bisogno dello stesso. Voglio visualizzare 100 due volte se è presente nei dati
Questo commento è stato fatto dal moderatore sul sito
Puoi suggerire una formula per questo
Questo commento è stato fatto dal moderatore sul sito
Hai mai avuto una risposta/risoluzione a questa sfida? Ho lo stesso.
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per farlo al contrario? Cioè dati in righe di lunghezza variabile e quindi ordinarli in due colonne? Vedi allegato.
Questo commento è stato fatto dal moderatore sul sito
voglio trasporre anche valori duplicati (tutti i valori - univoci + duplicati) e non solo valori univoci. Puoi dare la formula anche per quello.
Questo commento è stato fatto dal moderatore sul sito
Ho bisogno lo stesso
Questo commento è stato fatto dal moderatore sul sito
Hai mai avuto una risposta/risoluzione a questa sfida? Ho lo stesso.
Questo commento è stato fatto dal moderatore sul sito
Con la formula seguente:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

Come posso trasporre i dati utilizzando corrispondenze approssimative? Dì, voglio estrarre tutti i valori dalla colonna B che corrispondono ai primi 9 caratteri / cifre dalla colonna A? La colonna B ha 11 caratteri mentre A solo 9. grazie!
Questo commento è stato fatto dal moderatore sul sito
Devo fare esattamente l'opposto di questo. Ho molte colonne associate a un ID riga e voglio incollarle in due colonne
per esempio io ho
rowid, valore, valore1, valore2, valore3, valore4, valore..225
100, Delfino, 255, 9--, sarah, jameson, ....
179, Router, flood, jason, 89, naso



Voglio che assomigli a questo
100, Delfino
100, 255
100, 9--
100, sara
100, Giacomo
179, router
179, alluvione
179, Jason
179, 89
179, naso
Questo commento è stato fatto dal moderatore sul sito
Ciao, Dave,
Per risolvere il tuo problema, utilizza il codice VBA seguente: (Nota: quando selezioni l'intervallo di dati che desideri trasporre, escludi la riga di intestazione.)

Sub TransposeUnique_2()
Dim xLRow, xLCcount As Long
Dim xRg come intervallo
Dim xOutRg come intervallo
Dim xObjRRg come intervallo
Dim xTxt come stringa
Dim x Conte fino a quando
Dim xVRg come intervallo
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("selezionare l'intervallo di dati:", "Ktools for Excel", xTxt, , , , , 8)
Imposta xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Se xRg non è niente, esci da Sub
Se (xRg.Rows.count < 2) Oppure _
(xRg.Areas.count > 1) Quindi
MsgBox "Selezione non valida", , "Ktools per Excel"
Exit Sub
End If
Set xOutRg = Application.InputBox("selezionare l'intervallo di output (specificare una cella):", "Ktools for Excel", xTxt, , , , , 8)
Se xOutRg non è nulla, allora esci da Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
Per xLRow = 1 per xRg.Rows.count
Imposta xObjRRg = Intervallo(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operazione:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Intervallo(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Valore = xRg.Cells(xLRow, 1).Valore
Imposta xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Successiva
Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Grazie, funziona perfettamente, mi hai risparmiato 2 giorni! :)
Questo commento è stato fatto dal moderatore sul sito
Ciao Skyyang,
si prega di condividere il codice per 3 colonne. Di seguito è riportato l'esempio:
Voglio dati come: yogesh@gmail.com comunità 1 solo visualizzazione comunità 2 solo visualizzazione ...... goyal@gmail.com comunità 1 solo visualizzazione comunità 2 solo visualizzazione........

Questo commento è stato fatto dal moderatore sul sito
Ciao, ygoyal,

Per risolvere il tuo problema, applica il codice seguente:

Sub TransposeUnique_2()

Dim xLRow, xLCcount As Long

Dim xRg come intervallo

Dim xOutRg come intervallo

Dim xObjRRg come intervallo

Dim xTxt come stringa

Dim x Conte fino a quando

Dim xVRg come intervallo

Dim xC, xI, xI1, xI2 come intero

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("selezionare l'intervallo di dati:", "Ktools for Excel", xTxt, , , , , 8)

Imposta xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Se xRg non è niente, esci da Sub

Se (xRg.Rows.Count < 2) oppure _

(xRg.Areas.Count > 1) Quindi

MsgBox "Selezione non valida", , "Ktools per Excel"

Exit Sub

End If

Set xOutRg = Application.InputBox("selezionare l'intervallo di output (specificare una cella):", "Ktools for Excel", xTxt, , , , , 8)

Se xOutRg non è nulla, allora esci da Sub

Application.ScreenUpdating = False

xLCount = xRg.Columns.Count

Per xLRow = 1 per xRg.Rows.Count

Imposta xObjRRg = Intervallo(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Se xC <> 0 Allora

xC = Int(xObjRRg.Count / 2) + 1

Altro

xC = Int(xObjRRg.Count / 2)

End If

xI1 = 1

xI2 = 2

Per xI = 1 A xC

Intervallo(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Copia

xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operazione:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

xOutRg.Value = xRg.Cells(xLRow, 1).Valore

Imposta xOutRg = xOutRg.Offset(RowOffset:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Successiva

Successiva

Application.ScreenUpdating = True

End Sub



Per favore, prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ciao fratello, il codice funziona al contrario. Si prega di fare riferimento alla schermata allegata del requisito. I dati disponibili sono per riga e vogliono trasporre i dati in colonne .
Questo commento è stato fatto dal moderatore sul sito
Ciao, ygoyal,
Scusa se rispondo in ritardo, applica il seguente codice, provalo!

Sub transposeunique()

'aggiornamento entro Extendoffice

Dim xLRaw As Long

Dim I As Long

Dim xCrit come stringa

Dim xCol Come Nuova Collezione

Dim xRg come intervallo

Dim xOutRg come intervallo

Dim xTxt come stringa

Dim x Conte fino a quando

Dim xVRg come intervallo

Dim xFRg, xSRg, xCRg come intervallo

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox ("per favore seleziona l'intervallo di dati (solo 3 colonne):", "Ktools for Excel", xTxt, , , , , 8)

Imposta xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Se xRg non è niente, esci da Sub

Se (xRg.Columns.Count <> 3) oppure _

(xRg.Areas.Count > 1) Quindi

MsgBox "l'intervallo utilizzato è solo un'area con due colonne", , "Ktools for Excel"

Exit Sub

End If

Set xOutRg = Application.InputBox("selezionare l'intervallo di output (specificare una cella):", "Ktools for Excel", xTxt, , , , , 8)

Se xOutRg non è nulla, allora esci da Sub

Imposta xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Per i = 2 A xLRow

xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value

Successiva

Application.ScreenUpdating = False

Application.ScreenUpdating = False

Per i = 1 A xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

xRg.AutoFilter Campo:=1, Criteri1:=xCrit

Imposta xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Se xVRg.Count > xCount Allora xCount = xVRg.Count

Imposta xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Imposta xCRg = xOutRg.Offset(i, 1)

Per ogni xFRg In xSRg

xFRg.Copy

xCRg.PasteSpecial

xRg.Range("B1").Copia

xCRg.Offset(-(i), 0).PasteSpecial

xFRg.Offset(0, 1).Copia

Imposta xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Range("c1").Copia

xCRg.Offset(-(i), 0).PasteSpecial

Imposta xCRg = xCRg.Offset(0, 1)

Successiva

Application.CutCopyMode = False

Successiva

xRg.Item(1).Copia

xOutRg.PasteSpecial

xRg.Filtro automatico

Application.ScreenUpdating = True

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ehi, fratello, ho provato a utilizzare questo codice ma excel si blocca quando eseguo questo codice e non sono riuscito a vedere l'output del codice sopra. si prega di suggerire cosa fare in questo caso.
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Il codice funziona bene nella mia cartella di lavoro, quale versione di Excel usi?
Questo commento è stato fatto dal moderatore sul sito
MS Excel 2016
Questo commento è stato fatto dal moderatore sul sito
Il codice funziona bene anche nel mio Excel 2016, per favore provalo prima con alcuni dati di intervallo più piccolo.
Questo commento è stato fatto dal moderatore sul sito
Ho testato su 160 record ma in quel duplicato c'era ancora.
Questo commento è stato fatto dal moderatore sul sito
Ciao Skyyang, adoro questo, hai qualche possibilità di farlo funzionare per quattro colonne? ancora usando solo le prime due come comparatore, o meglio ancora la possibilità di scegliere il numero di colonne prima di selezionarle? Ho dato un'occhiata al tuo copione, non avrei la più pallida idea di come ottenerlo...
Questo commento è stato fatto dal moderatore sul sito
Ciao Skyyang, adoro questo, hai qualche possibilità di farlo funzionare per quattro colonne? ancora usando solo le prime due come comparatore, o meglio ancora la possibilità di scegliere il numero di colonne prima di selezionarle? Ho dato un'occhiata al tuo copione, non avrei la più pallida idea di come ottenerlo...
Questo commento è stato fatto dal moderatore sul sito
Fratello, per favore aiutami in questo.
Questo commento è stato fatto dal moderatore sul sito
Ciao fratello, sto ancora aspettando il tuo aiuto
Questo commento è stato fatto dal moderatore sul sito
Questo commento è stato fatto dal moderatore sul sito
Come Dave, devo fare esattamente l'opposto di questo. Tabella 2 da trasporre alla Tabella 1. Tabella Input 2, Tabella Output 1.
Questo commento è stato fatto dal moderatore sul sito
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) ha funzionato per me per trasporre i valori univoci di una colonna in una nuova colonna MA... c'è un modo per inserire una funzione di ordinamento in modo che la nuova colonna creata venga trasposta in ordine crescente?


Grazie!
Questo commento è stato fatto dal moderatore sul sito
È necessario ottenere lo stesso risultato ma per selezionare le colonne predefinite sarebbe ($A,$B) e occorre la colonna di output Posizione su $D$1.
Se qualcuno ha un'idea sarebbe di grande aiuto!!!!
Questo commento è stato fatto dal moderatore sul sito
Ciao, possiamo aggiungere ogni riga e fornire l'output in una colonna, con la funzionalità di cui sopra.
Questo commento è stato fatto dal moderatore sul sito
Quindi lavoro per un'azienda. Abbiamo colonne per informazioni come cognome, nome, grado, sezione, numero di telefono, indirizzo. C'è un modo in cui posso usare una formula simile per trasporre l'intera riga di informazioni in una colonna per nome?
Questo commento è stato fatto dal moderatore sul sito
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) ha funzionato per me per trasporre i valori univoci di una colonna in una nuova colonna MA... c'è un modo per ottenere tutti i valori nella colonna B da trasporre come indicato di seguito:

Data dell'ordine del prodotto Ordine del prodotto Ordine Ordine Ordine Ordine Ordine
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3/3/2019 KTO 150 100 200 100 150 200
KTE 100 3/4/2019 BOT 150 100 200 150 100 200
KTO 100 3/4/2019 COD 200 150 100 150
KTO 200 3/5/2019
KTE 100 3/5/2019
BOT 150 3/5/2019
BOT 100 3/6/2019
KTO 100 3/6/2019
KTE 200 3/6/2019
BOT 200 3/7/2019
COD 200 3/7/2019
KTE 100 3/7/2019
KTO 150 3/7/2019
BOT 150 3/8/2019
KTE 150 3/8/2019
COD 150 3/8/2019
BOT 100 3/9/2019
BOT 200 3/10/2019
COD 100 3/10/2019
KTO 200 3/10/2019
COD 150 3/11/2019
KTE 100 3/11/2019
Questo commento è stato fatto dal moderatore sul sito
La macro non ha funzionato. Ha appena copiato il contenuto nella cella A1.
Questo commento è stato fatto dal moderatore sul sito
Ho un set di dati nelle colonne A (ID univoco) - E. Ogni riga ha dati basati sull'ID#, ci sono più righe per ogni ID# ma voglio una riga per ID# con tutti gli altri dati nelle colonne ( sarebbe lungo minimo 5 colonne e massimo 25 a seconda di quanti ID univoco ha). Ho trovato un codice ma funziona solo per due colonne. Ho dovuto concatenare le quattro colonne (ID escluso), quindi delimitare dopo aver eseguito la macro (molto lavoro). Per 15,000 righe di dati questo richiede molto tempo. Esiste una macro di colonne infinite che funzionerebbe? Grazie in anticipo a tutti per il vostro aiuto!
CODICE ID CODICE ST# DATA
Questo commento è stato fatto dal moderatore sul sito
Ho un set di dati che ha più ID nella colonna A e ha collegato i dati nella colonna B. Ho usato la formula sopra e l'ho modificata un po' in modo da trasporre le celle nella colonna B in una riga basata sull'ID univoco legato ad esso nella colonna A. La formula utilizzata per identificare gli ID univoci è: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). La formula utilizzata per la trasposizione è: =IFERROR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0)), "N/A"). Entrambi riportati nell'articolo, solo leggermente alterati.

Il problema è che il mio set di dati nella colonna B ha duplicati, a volte compaiono uno dopo l'altro e ho bisogno che tutti i valori nella colonna siano presentati nelle righe.

L'immagine allegata è ciò che vorrei che la tabella mostrasse (questa è una piccola dimensione del campione, il vero set di dati ha oltre 13,000 voci). Quello che sta succedendo ora è che quando si incontra un valore ripetuto, non lo conterà.
cioè la riga 9 per ID 11980 ora mostra solo 0 -31.79 -0.19 -0.74 N/AN/A .... quando quello che mi serve per mostrare invece è 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

C'è un modo per aggirare questo problema e risolverlo?

Grazie in anticipo!
Questo commento è stato fatto dal moderatore sul sito
Hai mai avuto una risposta/risoluzione a questa sfida? Ho lo stesso.
Questo commento è stato fatto dal moderatore sul sito
Ho un set di dati che ha 3 colonne presentate di seguito:



Colonna A Colonna B Colonna C



Paese1 Anno1 Valore1

Paese1 Anno2 Valore2

Paese1 Anno3 Valore3,



Paese2 Anno1 Valore1

Paese2 Anno3 Valore3,

...........



Devo combinare queste 3 colonne in una tabella come questa:

Anno1 Anno2 Anno3 ................................. AnnoX



Paese1 Valore1 Valore2 Valore3

Paese2 Valore1 #Valore mancante3

.....
.....
.....

PaeseX Valorex ..................





Il problema che sto affrontando è che per alcuni dati nella colonna A non ho valori per ogni anno solo per alcuni (ad esempio il paese 2 ha valori mancanti per l'anno 2)





C'è un modo per aggirare questo problema e risolverlo?



Grazie in anticipo!
Questo commento è stato fatto dal moderatore sul sito
puoi condividere il codice se ci sono 2 colonne da copiare invece di 1. di seguito è riportato l'esempio.
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL