Obsah
Obecně platí, že TRANSPOSE Funkci lze často použít k převodu řádků na sloupce. Výsledky závislé na určitých kritériích, jako jsou jedinečné hodnoty, však nebudou vráceny. V tomto návodu si ukážeme, jak transponovat řádky do sloupců na základě kritérií v aplikaci Excel.
Stáhnout cvičebnici
Stáhněte si tento cvičební sešit a procvičujte si při čtení tohoto článku.
Transponovat řádky do sloupců pomocí kritérií.xlsm2 praktické přístupy k transpozici řádků do sloupců na základě kritérií v aplikaci Excel
Na obrázku níže jsme uvedli soubor dat několika produktů a jejich množství. řádky budou transponovány do sloupců. Budeme transponovat řádky do sloupců na základě kritérií. jedinečných hodnot, protože v samostatné buňce jsou některé duplicitní záznamy. Nejprve použijeme příkaz INDEX , MATCH , COUNTIF , IF a IFERROR funkce pro vytváření vzorců. Také provedeme VBA kódu, abyste dosáhli stejné věci.
1. Použití vzorce s funkcemi INDEX, MATCH a COUNTIF k transpozici řádků do sloupců na základě kritérií v aplikaci Excel
Na začátku použijeme vzorce ze skupiny INDEX , MATCH , COUNTIF , IF a IFERROR funkce s poli.
Krok 1: Vložení funkcí INDEX, MATCH a COUNTIF
- V buňce E5 , zadejte následující vzorec a získejte jedinečné produkty.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
Krok 2: Použití pole
- Chcete-li použít vzorec s polem, stiskněte tlačítko Ctrl + Směna + Vstupte na
- Proto získáte první jedinečný výsledek.
Krok 3: Automatické vyplňování buněk
- Chcete-li získat všechny jedinečné hodnoty, použijte příkaz Automatické vyplňování Handle Tool pro automatické vyplnění sloupce.
Krok 4: Zadejte funkce IFERROR
- Chcete-li transponovat řádkovou hodnotu veličin do sloupců, napište následující vzorec.
=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)
Krok 5: Použití pole
- Chcete-li vložit pole, stiskněte tlačítko Ctrl + Směna + Vstupte na .
- V důsledku toho se buňky F5 se zobrazí první transponovaná hodnota jako na obrázku níže.
- Přetáhněte dolů pomocí Nástroj AutoFill Handle Tool pro automatické vyplnění sloupce.
- Nakonec automaticky vyplňte řádky pomocí položky Nástroj AutoFill Handle Tool .
- Proto se všechny transponované řádky změní na sloupce, jak je znázorněno na obrázku níže.
Další informace: Transponování více řádků ve skupině do sloupců v aplikaci Excel
Podobná čtení
- Jak transponovat duplicitní řádky do sloupců v aplikaci Excel (4 způsoby)
- Excel VBA: Transponování více řádků ve skupině do sloupců
- Transponování více sloupců do jednoho sloupce v aplikaci Excel (3 praktické metody)
- Jak provést zpětnou transpozici v aplikaci Excel (3 jednoduché metody)
2. Spuštění kódu VBA pro transpozici řádků do sloupců na základě kritérií v aplikaci Excel
Krok 1: Vytvoření modulu
- Nejprve stiskněte Alt + F11 začít Makro VBA .
- Klikněte na Vložte .
- Vytvoření Modul , vyberte Modul možnost.
Krok 2: Zadejte kódy VBA
- Vložte následující VBA
Sub TransposeRows() 'Definujte proměnné 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 'Nastavte hodnoty a vstupní pole pro vstupní rozsah RngText = ActiveWindow.RangeSelection.Address Set InputRng = Application.InputBox("Select Your InputRozsah pro 2 sloupce:", "ExcelWIKI", RngText, , , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Použít podmínku pro počítání pouze 2 sloupců a zobrazení msg boxu pro upozornění na výběr pouze dvou sloupců 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 'Nastavte hodnoty a vstupní pole pro vstupní rozsah Set OutputRng = Application.InputBox("Select Your Output Range (one cell):", "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
Krok 3: Spuštění programu
- Za prvé, uložit a stiskněte F5 ke spuštění programu.
- Vyberte datovou sadu se záhlavím.
- Klikněte na OK .
- Výběrem buňky získáte výstup
- Pak klikněte na OK .
- Výsledkem bude výsledek, který představuje transponované řádky do sloupců, jak je znázorněno na obrázku níže.
Další informace: Jak transponovat řádky do sloupců pomocí aplikace Excel VBA (4 ideální příklady)
Závěr
Doufám, že vám tento článek poskytl návod, jak transponovat řádky do sloupců na základě kritérií v aplikaci Excel. . Všechny tyto postupy byste se měli naučit a aplikovat je na svůj soubor dat. Podívejte se na cvičný sešit a vyzkoušejte si tyto dovednosti. K další tvorbě podobných výukových programů nás motivuje vaše cenná podpora.
Pokud máte nějaké dotazy - Neváhejte se nás zeptat. Také neváhejte zanechat komentáře v sekci níže.
My, Exceldemy Tým vždy reaguje na vaše dotazy.
Zůstaňte s námi & učte se dál.