Inhoudsopgave
In het algemeen TRANSPOSE functie kan vaak worden gebruikt om rijen naar kolommen te converteren. Resultaten die afhankelijk zijn van bepaalde criteria, zoals unieke waarden, worden echter niet geretourneerd. In deze tutorial laten we zien hoe je rijen omzetten naar kolommen op basis van criteria in Excel.
Download Praktijk Werkboek
Download dit oefenwerkboek om te oefenen terwijl u dit artikel leest.
Rijen omzetten in kolommen met criteria.xlsm2 Handige manieren om rijen om te zetten naar kolommen op basis van criteria in Excel
In de onderstaande figuur hebben wij een dataset van verschillende producten en hun hoeveelheden opgenomen. De rijen worden dan omgezet in kolommen. We zullen de rijen omzetten in kolommen op basis van de criteria van de unieke waarden omdat er enkele dubbele vermeldingen zijn in een aparte cel. Eerst gebruiken we de INDEX , MATCH , COUNTIF , ALS en IFERROR functies om formules te maken. We zullen ook een VBA code om hetzelfde te bereiken.
1. Formule toepassen met de functies INDEX, MATCH en COUNTIF om rijen naar kolommen om te zetten op basis van criteria in Excel.
In het begin zullen we formules van de INDEX , MATCH , COUNTIF , ALS en IFERROR functies met arrays.
Stap 1: De functies INDEX, MATCH en COUNTIF invoegen
- In de cel E5 typ de volgende formule om de unieke producten te krijgen.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
Stap 2: Array toepassen
- Om de formule met een matrix toe te passen, drukt u op Ctrl + Shift + Ga naar
- Daarom krijgt u het eerste unieke resultaat.
Stap 3: Cellen automatisch vullen
- Om alle unieke waarden te krijgen, gebruikt u de AutoFill Handle Tool om de kolom automatisch te vullen.
Stap 4: Voer de IFERROR-functies in
- Om de rijwaarde van hoeveelheden om te zetten in kolommen, schrijft u de volgende formule.
=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)
Stap 5: Array toepassen
- Om een matrix in te voegen, drukt u op Ctrl + Shift + Ga naar .
- Dientengevolge, cel F5 toont de eerste getransponeerde waarde zoals in de afbeelding hieronder.
- Sleep naar beneden met de AutoFill handvat gereedschap om de kolom automatisch te vullen.
- Vul ten slotte de rijen automatisch met de AutoFill handvat gereedschap .
- Daarom worden alle getransponeerde rijen omgezet in kolommen, zoals in de afbeelding hieronder.
Lees meer: Meerdere rijen in een groep omzetten naar kolommen in Excel
Vergelijkbare lezingen
- Hoe dubbele rijen omzetten naar kolommen in Excel (4 manieren)
- Excel VBA: Meerdere rijen in groep omzetten naar kolommen
- Meerdere kolommen omzetten in één kolom in Excel (3 handige methodes)
- Omgekeerd transponeren in Excel (3 eenvoudige methoden)
2. Een VBA-code uitvoeren om rijen om te zetten in kolommen op basis van criteria in Excel
Stap 1: Een module maken
- Druk eerst op Alt + F11 om te beginnen VBA-macro .
- Klik op Plaats .
- Om een Module selecteer de Module optie.
Stap 2: Typ VBA-codes
- Plak het volgende VBA
Sub TransposeRows() 'Variabelen definiëren Dim RowsNumber als Long Dim p als Long Dim xColCr als String Dim xColumn als New Collection Dim InputRng als Range Dim OutputRng als Range Dim RngText als String Dim CountRow als Long Dim xRowRg als Range On Error Resume Next 'Waarden en Input Box instellen voor Input Range RngText = ActiveWindow.RangeSelection.Address Set InputRng = Application.InputBox("Select Your InputBereik voor 2 kolommen:", "ExcelWIKI", RngText, , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Voorwaarde toepassen om slechts 2 kolommen te tellen en msg box te tonen voor waarschuwing om slechts twee kolommen te selecteren 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 'Stel waarden en invoervak voor invoerbereik in Set OutputRng = Application.InputBox("Selecteer uw uitvoerbereik (één cel):", "ExcelWIKI", RngText, , , , 8) Als OutputRng niets is, Exit Sub Set OutputRng = OutputRng.Range(1) 'Rijen tellen RowsNumber = InputRng.Rows.Count 'Pas lus toe 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 'Copy and paste with transpose 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 Einde Sub
Stap 3: Voer het programma uit
- Eerst, red en druk op F5 om het programma uit te voeren.
- Selecteer uw gegevensverzameling met de kop.
- Klik op OK .
- Selecteer een cel om de uitgang
- Klik vervolgens op OK .
- Als gevolg daarvan krijgt u resultaten die rijen in kolommen omzetten, zoals in de onderstaande afbeelding.
Lees meer: Rijen naar kolommen omzetten met Excel VBA (4 ideale voorbeelden)
Conclusie
Ik hoop dat dit artikel u een handleiding heeft gegeven over hoe u rijen omzetten naar kolommen op basis van criteria in Excel Al deze procedures moeten worden geleerd en toegepast op uw dataset. Bekijk de oefenwerkmap en stel deze vaardigheden op de proef. We zijn gemotiveerd om tutorials als deze te blijven maken dankzij uw waardevolle steun.
Als je vragen hebt - Voel je vrij om ons te vragen. Voel je ook vrij om opmerkingen achter te laten in de sectie hieronder.
Wij, de Exceldemy Team, reageren altijd op uw vragen.
Blijf bij ons & blijf leren.