Satura rādītājs
Parasti TRANSPOSE Tomēr rezultāti, kas atkarīgi no noteiktiem kritērijiem, piemēram, unikālām vērtībām, netiks atgriezti. Šajā pamācībā mēs parādīsim, kā konvertēt rindas uz kolonnām. transponēt rindas uz kolonnām, pamatojoties uz kritērijiem programmā Excel.
Lejupielādēt Practice Workbook
Lejupielādējiet šo prakses darba burtnīcu, lai vingrinātos, kamēr lasāt šo rakstu.
Pārnest rindas uz kolonnām, izmantojot kritēriju.xlsm2 Ērtas pieejas rindu transponēšanai uz kolonnām, pamatojoties uz kritērijiem programmā Excel
Turpmāk attēlā esam pievienojuši datu kopu ar vairākiem produktiem un to daudzumiem. rindas tiks pārnestas uz kolonnām. Mēs transponēt rindas kolonnās, pamatojoties uz kritērijiem. unikālo vērtību, jo atsevišķā šūnā ir daži dublējoši ieraksti. Vispirms mēs izmantosim INDEX , MATCH , COUNTIF , IF , un IFERROR funkcijas, lai izveidotu formulas. Mēs arī izpildīsim VBA kodu, lai paveiktu to pašu.
1. Pielietojiet formulu ar INDEX, MATCH un COUNTIF funkcijām, lai, pamatojoties uz kritērijiem, programmā Excel transponētu rindas uz kolonnām
Sākumā mēs piemērosim formulas no INDEX , MATCH , COUNTIF , IF , un IFERROR funkcijas ar masīviem.
1. solis: Ievietojiet INDEX, MATCH un COUNTIF funkcijas
- Šūnā E5 , ievadiet šādu formulu, lai iegūtu unikālos produktus.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
2. solis: Pielietojiet masīvu
- Lai piemērotu formulu ar masīvu, nospiediet Ctrl + Shift + Ievadiet
- Tādējādi iegūsiet pirmo unikālo rezultātu.
3. posms: Automātiski aizpildīt šūnas
- Lai iegūtu visas unikālās vērtības, izmantojiet Automātiskā aizpildīšana Roktura rīks, lai automātiski aizpildītu kolonnu.
4. solis: Ievadiet IFERROR funkcijas
- Lai transponētu rindas vērtības lielumu slejās, ierakstiet šādu formulu.
=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),0))
5. solis: Pielietojiet masīvu
- Lai ievietotu masīvu, nospiediet Ctrl + Shift + Ievadiet .
- Rezultātā šūnas F5 tiks parādīta pirmā transponētā vērtība, kā attēlā zemāk.
- Velciet uz leju ar AutoFill rokturu rīks lai automātiski aizpildītu kolonnu.
- Visbeidzot, automātiski aizpildiet rindas ar AutoFill rokturu rīks .
- Tādējādi visas transponētās rindas tiks pārveidotas par kolonnām, kā parādīts attēlā zemāk.
Lasīt vairāk: Vairāku rindu transponēšana grupā uz kolonnām programmā Excel
Līdzīgi lasījumi
- Kā Excel programmā Excel dublētās rindas pārvietot uz kolonnām (4 veidi)
- Excel VBA: vairāku rindu transponēšana grupā uz kolonnām
- Vairāku kolonnu transponēšana vienā kolonnā programmā Excel (3 ērtas metodes)
- Kā programmā Excel veikt reverso transponēšanu (3 vienkāršas metodes)
2. Palaidiet VBA kodu, lai, pamatojoties uz kritērijiem programmā Excel, rindas transponētu uz kolonnām
1. solis: Izveidojiet moduli
- Vispirms nospiediet Alt + F11 lai sāktu VBA makro programma .
- Noklikšķiniet uz Ievietot .
- Lai izveidotu Modulis , izvēlieties Modulis iespēja.
2. solis: Ievadiet VBA kodus
- Ievietojiet šādu VBA
Sub TransposeRows() 'Definēt mainīgos 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 'Set values and Input Box fot Input Range 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) 'Piemērot nosacījumu, lai saskaitītu tikai 2 kolonnas un parādītu msg logu, lai brīdinātu, ka jāizvēlas tikai divas kolonnas 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 'Iestatiet vērtības un ievades lauku ievades diapazonam Set OutputRng = Application.InputBox("Izvēlieties savu izvades diapazonu (vienu šūnu):", "ExcelWIKI", RngText, , , , , , 8) If OutputRng Is Nothing Then Exit Sub Set OutputRng = OutputRng.Range(1) 'Count Rows RowsNumber = InputRng.Rows.Count 'Apply For loop 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 End Sub
3. solis: Palaist programmu
- Pirmkārt, saglabāt un nospiediet F5 lai palaistu programmu.
- Izvēlieties datu kopu ar galveni.
- Noklikšķiniet uz LABI .
- Izvēlieties šūnu, lai iegūtu izejas
- Pēc tam noklikšķiniet uz LABI .
- Rezultātā iegūsiet rezultātus, kas ir transponētas rindās uz kolonnām, kā parādīts attēlā zemāk.
Lasiet vairāk: Kā transponēt rindas uz kolonnām, izmantojot Excel VBA (4 ideāli piemēri)
Secinājums
Es ceru, ka šis raksts ir sniedzis jums pamācību par to, kā transponēt rindas uz kolonnām, pamatojoties uz kritērijiem programmā Excel . Visas šīs procedūras ir jāapgūst un jāpielieto jūsu datu kopai. Apskatiet praktisko darbgrāmatu un pārbaudiet šīs prasmes. Jūsu vērtīgā atbalsta dēļ mēs esam motivēti turpināt veidot šādas pamācības.
Ja jums ir kādi jautājumi - nekautrējieties mums jautāt. Tāpat arī varat atstāt komentārus zemāk esošajā sadaļā.
Mēs, mēs. Exceldemy komanda vienmēr atsaucīgi atbild uz jūsu jautājumiem.
Palieciet kopā ar mums & amp; turpiniet mācīties.