Spis treści
Ogólnie rzecz biorąc TRANSPOSE Funkcja ta może być często używana do konwersji wierszy na kolumny, jednak wyniki zależne od pewnych kryteriów, takich jak unikalne wartości, nie będą zwracane. W tym poradniku pokażemy jak transponować wiersze do kolumn na podstawie kryteriów w programie Excel.
Pobierz Zeszyt ćwiczeń
Pobierz ten zeszyt ćwiczeń, aby ćwiczyć podczas czytania tego artykułu.
Transpozycja wierszy do kolumn za pomocą kryteriów.xlsm2 Podręczne sposoby transpozycji wierszy do kolumn na podstawie kryteriów w programie Excel
Na poniższym rysunku zamieściliśmy zestaw danych o kilku produktach i ich ilościach.Rysunek wiersze zostaną następnie przetransponowane na kolumny. Będziemy transpozycja wierszy do kolumn na podstawie kryteriów unikalnych wartości, ponieważ w osobnej komórce znajduje się kilka zduplikowanych wpisów.Najpierw użyjemy INDEX , MATCH , COUNTIF , JEŚLI oraz IFERROR funkcje do tworzenia formuł. Wykonamy również VBA kod, aby osiągnąć to samo.
1. zastosowanie formuły z funkcjami INDEKS, DOPASOWANIE i COUNTIF do transpozycji wierszy do kolumn na podstawie kryteriów w programie Excel
Na początku będziemy stosować wzory m.in. INDEX , MATCH , COUNTIF , JEŚLI oraz IFERROR funkcje z tablicami.
Krok 1: Wstawianie funkcji INDEX, MATCH i COUNTIF
- W komórce E5 , wpisz następujący wzór, aby uzyskać unikalne produkty.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
Krok 2: Zastosuj tablicę
- Aby zastosować formułę z tablicą, naciśnij Ctrl + Zmiana + Wejdź na stronę
- W związku z tym otrzymasz pierwszy unikalny wynik.
Krok 3: Automatyczne wypełnianie komórek
- Aby uzyskać wszystkie unikalne wartości, użyj AutoFill Narzędzie Handle Tool do automatycznego wypełniania kolumny.
Krok 4: Wprowadzenie funkcji IFERROR
- Aby przetransponować wartość wierszową ilości na kolumny, należy napisać następujący wzór.
=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: Zastosuj tablicę
- Aby wstawić tablicę, naciśnij Ctrl + Zmiana + Wejdź na stronę .
- W konsekwencji komórki F5 pokaże pierwszą transponowaną wartość, jak na obrazku poniżej.
- Przeciągnij w dół za pomocą Narzędzie do uchwytu AutoFill aby automatycznie wypełnić kolumnę.
- Na koniec, automatycznie wypełnij wiersze za pomocą Narzędzie do uchwytu AutoFill .
- Dlatego wszystkie transponowane wiersze przekształcą się w kolumny, jak na obrazku pokazanym poniżej.
Read More: Transpozycja wielu wierszy w grupie do kolumn w Excelu
Podobne lektury
- Jak transponować zduplikowane wiersze do kolumn w Excelu (4 sposoby)
- Excel VBA: Transpozycja wielu wierszy w grupie na kolumny
- Transpozycja wielu kolumn do jednej kolumny w programie Excel (3 poręczne metody)
- Jak odwrócić transpozycję w Excelu (3 proste metody)
2. uruchom kod VBA, aby transponować wiersze do kolumn na podstawie kryteriów w programie Excel
Krok 1: Utwórz moduł
- Po pierwsze, naciśnij Alt + F11 zaczynać Makro VBA .
- Kliknij na Wkładka .
- Aby utworzyć Moduł , wybierz Moduł opcja.
Krok 2: Wpisz kody VBA
- Wklej następujące elementy 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) 'Apply Condition to count only 2 columns and to show msg box for alerting to select only two columns 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 'Set values and Input Box fot Input Range 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 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 Pole:=1, Criteria1:=xColCr Set xRowRg = InputRng.Range("B2:B" & RowsNumber).SpecialCells(xlCellTypeVisible) If xRowRg.Count> CountRow Then CountRow = xRowRg.Count 'Kopiuj i wklej z transpozycją 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: Uruchomienie programu
- Po pierwsze, uratować i nacisnąć F5 aby uruchomić program.
- Wybierz swój zestaw danych za pomocą nagłówka.
- Kliknij na OK .
- Wybierz komórkę, aby otrzymać wyjście
- Następnie należy kliknąć na OK .
- W rezultacie otrzymasz wyniki, które są transponowanymi wierszami na kolumny, jak pokazano na poniższym obrazku.
Read More: Jak transponować wiersze do kolumn za pomocą Excel VBA (4 idealne przykłady)
Wniosek
Mam nadzieję, że ten artykuł dał Ci tutorial jak transponuj wiersze do kolumn na podstawie kryteriów w programie Excel Wszystkie te procedury powinny być poznane i zastosowane w Twoim zbiorze danych. Zajrzyj do zeszytu ćwiczeń i sprawdź te umiejętności. Dzięki Waszemu wsparciu mamy motywację do dalszego tworzenia takich poradników.
Jeśli masz jakieś pytania - Zapraszamy do zadawania ich, a także do pozostawiania komentarzy w sekcji poniżej.
My Exceldemy Zespół, zawsze reaguje na Twoje pytania.
Zostań z nami & kontynuuj naukę.