Sommario
In generale, il TRASPARENZA può essere spesso utilizzata per convertire le righe in colonne. Tuttavia, i risultati che dipendono da alcuni criteri, come i valori univoci, non saranno restituiti. In questa esercitazione, vi mostreremo come trasporre le righe in colonne in base a criteri in Excel.
Scarica il quaderno di esercizi
Scaricate questo quaderno di esercizi per esercitarvi durante la lettura di questo articolo.
Trasporre righe a colonne con criteri.xlsm2 approcci pratici per trasporre righe a colonne in base a criteri in Excel
Nella figura che segue abbiamo incluso un set di dati con diversi prodotti e le relative quantità. Il le righe verranno trasposte in colonne. Noi trasporre le righe in colonne in base ai criteri dei valori univoci perché ci sono voci duplicate in una cella separata. Per prima cosa, utilizzeremo il metodo INDICE , PARTITA , COUNTIF , SE , e IFERRORE per creare formule. Eseguiremo anche una funzione VBA per ottenere lo stesso risultato.
1. Applicare una formula con le funzioni INDEX, MATCH e COUNTIF per trasporre righe a colonne in base a criteri in Excel
All'inizio si applicheranno le formule del INDICE , PARTITA , COUNTIF , SE , e IFERRORE con gli array.
Passo 1: inserire le funzioni INDEX, MATCH e COUNTIF
- In cella E5 digitare la seguente formula per ottenere i prodotti unici.
=INDICE($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
Fase 2: Applicazione della matrice
- Per applicare la formula con una matrice, premere Ctrl + Turno + Entrare
- Pertanto, si otterrà il primo risultato unico.
Passo 3: riempimento automatico delle celle
- Per ottenere tutti i valori univoci, utilizzare il metodo Riempimento automatico Strumento Maniglia per riempire automaticamente la colonna.
Passo 4: Inserire le funzioni IFERROR
- Per trasporre il valore di riga delle quantità in colonne, scrivere la seguente formula.
=IFERROR(INDEX($C$5:$C$12, MATCH(0, COUNTIF($E5:E5, $C$5:$C$12) + IF($B$5:$B$12$E5,1,0),0)), 0)
Fase 5: Applicazione della matrice
- Per inserire una matrice, premere Ctrl + Turno + Entrare .
- Di conseguenza, le cellule F5 mostrerà il primo valore trasposto, come nell'immagine seguente.
- Trascinare verso il basso con il tasto Strumento maniglia AutoFill per riempire automaticamente la colonna.
- Infine, riempire automaticamente le righe con l'elemento Strumento maniglia AutoFill .
- Pertanto, tutte le righe trasposte si trasformeranno in colonne come nell'immagine seguente.
Ulteriori informazioni: Trasposizione di più righe in un gruppo in colonne in Excel
Letture simili
- Come trasporre righe duplicate in colonne in Excel (4 modi)
- Excel VBA: trasporre più righe in un gruppo in colonne
- Trasporre più colonne in una sola colonna in Excel (3 metodi pratici)
- Come invertire la trasposizione in Excel (3 semplici metodi)
2. Eseguire un codice VBA per trasporre righe a colonne in base a criteri in Excel
Passo 1: creare un modulo
- Innanzitutto, premere Alt + F11 per iniziare Macro VBA .
- Fare clic su Inserire .
- Per creare un Modulo , selezionare la voce Modulo opzione.
Passo 2: Digitare i codici VBA
- Incollare quanto segue VBA
Sub TransposeRows() 'Definire le variabili Dim RowsNumber As Long Dim p As Long Dim xColCr As String Dim xColumn As New Collection Dim InputRng As Range Dim OutputRng As Range Dim RngText As String Dim CountRow As Long Dim xRowRg As Range On Error Resume Next 'Impostare i valori e la casella di input per l'intervallo di input RngText = ActiveWindow.RangeSelection.Address Set InputRng = Application.InputBox("Select Your InputRange for 2 columns:", "ExcelWIKI", RngText, , , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Applicare la condizione per contare solo 2 colonne e mostrare la casella di messaggio per avvisare di selezionare solo due colonne If InputRng Is Nothing Then Exit Sub If (InputRng.Columns.Count 2) Or _ (InputRng.Areas.Count> 1) Then MsgBox "The specified range is only area for 2 columns ",, "ExcelWIKI" Exit Sub End If 'Imposta i valori e la casella di input per l'intervallo di input Set OutputRng = Application.InputBox("Seleziona l'intervallo di output (una cella):", "ExcelWIKI", RngText, , , , , 8) If OutputRng Is Nothing Then Exit Sub Set OutputRng = OutputRng.Range(1) 'Conta le righe RowsNumber = InputRng.Rows.Count 'Applica il ciclo For For p = 2 To RowsNumber xColumn.Add InputRng.Cells(p, 1).Value, InputRng.Cells(p,1).Value Next Application.ScreenUpdating = False For p = 1 To xColumn.Count xColCr = xColumn.Item(p) OutputRng.Offset(p, 0) = xColCr InputRng.AutoFilter Field:=1, Criteria1:=xColCr Set xRowRg = InputRng.Range("B2:B" & RowsNumber).SpecialCells(xlCellTypeVisible) If xRowRg.Count> CountRow Then CountRow = xRowRg.Count 'Copia e incolla con trasposizione InputRng.Range("B2:B" &RowsNumber).SpecialCells(xlCellTypeVisible).Copy OutputRng.Offset(p, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Application.CutCopyMode = False Next OutputRng = InputRng.Cells(1, 1) OutputRng.Offset(0, 1).Resize(1, CountRow) = InputRng.Cells(1, 2) InputRng.Rows(1).Copy OutputRng.Resize(1, CountRow + 1).PasteSpecial Paste:=xlPasteFormatsInputRng.AutoFilter Application.ScreenUpdating = True End Sub
Fase 3: Esecuzione del programma
- Primo, salvare e premere F5 per eseguire il programma.
- Selezionare il set di dati con l'intestazione.
- Fare clic su OK .
- Selezionare una cella per ottenere la uscita
- Quindi, fare clic su OK .
- Di conseguenza, si otterranno risultati con la trasposizione delle righe in colonne, come mostrato nell'immagine seguente.
Per saperne di più: Come trasporre le righe in colonne utilizzando Excel VBA (4 esempi ideali)
Conclusione
Spero che questo articolo vi abbia fornito un'esercitazione su come trasporre le righe in colonne in base a criteri in Excel Tutte queste procedure devono essere apprese e applicate al vostro set di dati. Date un'occhiata alla cartella di lavoro pratica e mettete alla prova queste abilità. Siamo motivati a continuare a creare esercitazioni come questa grazie al vostro prezioso supporto.
Se avete domande, non esitate a chiedercele e a lasciare commenti nella sezione sottostante.
Noi, il Exceldemy Team, sono sempre pronti a rispondere alle vostre domande.
Rimanete con noi & continuate a imparare.