Cum să transpuneți rândurile în coloane pe baza criteriilor în Excel (2 moduri)

  • Imparte Asta
Hugh West

În general, The TRANSPOSE poate fi adesea utilizată pentru a converti rândurile în coloane. Cu toate acestea, rezultatele care depind de anumite criterii, cum ar fi valorile unice, nu vor fi returnate. În acest tutorial, vă vom arăta cum să transpuneți rândurile în coloane pe baza unor criterii în Excel.

Descărcați caietul de practică

Descărcați acest caiet de exerciții pentru a vă exercita în timp ce citiți acest articol.

Transpunerea rândurilor în coloane cu Criterii.xlsm

2 abordări practice pentru a transpune rândurile în coloane pe baza criteriilor în Excel

Am inclus un set de date cu mai multe produse și cantitățile acestora în figura de mai jos. Figura de mai jos. rândurile vor fi apoi transpuse în coloane. Vom... transpune rândurile în coloane pe baza criteriilor a valorilor unice, deoarece există câteva intrări duplicate într-o celulă separată. În primul rând, vom folosi INDEX , MATCH , COUNTIF , IF , și IFERROR pentru a crea formule. Vom executa, de asemenea, o funcție VBA pentru a realiza același lucru.

1. Aplicați o formulă cu funcțiile INDEX, MATCH și COUNTIF pentru a transpune rândurile în coloane pe baza unor criterii în Excel

La început, vom aplica formulele de la INDEX , MATCH , COUNTIF , IF , și IFERROR cu array-uri.

Pasul 1: Introduceți funcțiile INDEX, MATCH și COUNTIF

  • În celulă E5 , introduceți următoarea formulă pentru a obține produsele unice.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))

Pasul 2: Aplicați Array

  • Pentru a aplica formula cu o matrice, apăsați Ctrl + Schimbul + Introduceți

  • Prin urmare, veți obține primul rezultat unic.

Pasul 3: Umplerea automată a celulelor

  • Pentru a obține toate valorile unice, folosiți funcția AutoFill Handle Tool pentru a umple automat coloana.

Pasul 4: Introduceți funcțiile IFERROR

  • Pentru a transpune în coloane valoarea de rând a cantităților, scrieți următoarea formulă.
=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),0)

Pasul 5: Aplicați Array

  • Pentru a insera o matrice, apăsați Ctrl + Schimbul + Introduceți .

  • În consecință, celula F5 va afișa prima valoare transpusă, ca în imaginea de mai jos.

  • Trageți în jos cu butonul Instrument cu mâner AutoFill pentru a completa automat coloana.

  • În cele din urmă, completați automat rândurile cu Instrument cu mâner AutoFill .
  • Prin urmare, toate rândurile transpuse se vor transforma în coloane, ca în imaginea de mai jos.

Citiți mai mult: Transpuneți mai multe rânduri din grup în coloane în Excel

Lecturi similare

  • Cum să transpuneți rândurile duplicate în coloane în Excel (4 moduri)
  • Excel VBA: Transpuneți mai multe rânduri din grup în coloane
  • Transpuneți mai multe coloane într-o singură coloană în Excel (3 metode practice)
  • Cum să inversați transpoziția în Excel (3 metode simple)

2. Executați un cod VBA pentru a transpune rândurile în coloane pe baza unor criterii în Excel

Pasul 1: Creați un modul

  • În primul rând, apăsați Alt + F11 pentru a începe Macro VBA .
  • Faceți clic pe Introduceți .
  • Pentru a crea un Modul , selectați Modul opțiune.

Pasul 2: Introduceți codurile VBA

  • Lipiți următoarele VBA
 Sub TransposeRows() 'Define Variables 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 Input")Range for 2 columns:", "ExcelWIKI", RngText, , , , , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Aplicați condiția pentru a număra doar 2 coloane și pentru a afișa o casetă msg pentru alertă pentru a selecta doar două coloane 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 'Setați valorile și caseta de intrare pentru intervalul de intrare Set OutputRng = Application.InputBox("Selectați intervalul de ieșire (o celulă):", "ExcelWIKI", RngText, , , , , , 8) If OutputRng Is Nothing Then Exit Sub Set OutputRng = OutputRng.Range(1) 'Numărați rândurile RowsNumber = InputRng.Rows.Count 'Aplicați pentru bucla 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 

Pasul 3: Rulați programul

  • În primul rând, salvați și apăsați F5 pentru a rula programul.
  • Selectați setul de date cu antetul.
  • Faceți clic pe OK .

  • Selectați o celulă pentru a obține ieșire
  • Apoi, faceți clic pe OK .

  • Ca urmare, veți obține rezultate care sunt rânduri transpuse în coloane, așa cum se arată în imaginea de mai jos.

Citește mai mult: Cum să transpui rândurile în coloane folosind Excel VBA (4 exemple ideale)

Concluzie

Sper că acest articol v-a oferit un tutorial despre cum să transpunerea rândurilor în coloane pe baza unor criterii în Excel Toate aceste proceduri ar trebui învățate și aplicate la setul dvs. de date. Aruncați o privire la caietul de exerciții practice și puneți aceste abilități la încercare. Suntem motivați să continuăm să realizăm tutoriale ca acesta datorită sprijinului dvs. valoros.

Dacă aveți întrebări - Nu ezitați să ne întrebați. De asemenea, nu ezitați să lăsați comentarii în secțiunea de mai jos.

Noi, cei Exceldemy Team, sunt întotdeauna receptivi la întrebările dumneavoastră.

Rămâneți alături de noi & continuați să învățați.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.