Tartalomjegyzék
Általában a TRANSPOSE függvény gyakran használható a sorok oszlopokká alakítására. Azonban a bizonyos feltételektől, például az egyedi értékektől függő eredmények nem kerülnek visszaadásra. Ebben a bemutatóban megmutatjuk, hogyan lehet a sorok oszlopokba történő áthelyezése az Excelben megadott kritériumok alapján.
Gyakorlati munkafüzet letöltése
Töltse le ezt a gyakorlati munkafüzetet, hogy gyakorolhasson, miközben ezt a cikket olvassa.
Sorok oszlopokká transzponálása Criteria.xlsm segítségével2 praktikus megközelítés a sorok oszlopokba történő áthelyezéséhez az Excelben lévő kritériumok alapján
Az alábbi ábrán több terméket és azok mennyiségét tartalmazó adathalmazt mutatunk be. A sorok ezután oszlopokká lesznek átírva. Majd mi... a sorok oszlopokba történő átvitele a kritériumok alapján az egyedi értékek közül, mert vannak duplikált bejegyzések egy külön cellában. Először is, használjuk a INDEX , MATCH , COUNTIF , IF , és IFERROR függvények segítségével képleteket hozunk létre. Emellett végrehajtunk egy VBA kódot, hogy ugyanazt a dolgot elérje.
1. Formula alkalmazása az INDEX, MATCH és COUNTIF funkciókkal a sorok oszlopokba történő áthelyezéséhez az Excelben a kritériumok alapján
Kezdetben a képleteket fogjuk alkalmazni a INDEX , MATCH , COUNTIF , IF , és IFERROR függvények tömbökkel.
1. lépés: Az INDEX, MATCH és COUNTIF függvények beillesztése
- A cellában E5 , írja be a következő képletet, hogy megkapja az egyedi termékeket.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0)))
2. lépés: Alkalmazza a tömböt
- Ha a képletet egy tömbben szeretné alkalmazni, nyomja meg a Ctrl + Műszak + Írja be a címet.
- Ezért az első egyedi eredményt kapja meg.
3. lépés: Automatikus cellatöltés
- Az összes egyedi érték kinyeréséhez használja a AutoFill Fogantyú eszköz az oszlop automatikus kitöltéséhez.
4. lépés: Az IFERROR függvények megadása
- A mennyiségek sorértékének oszlopokba történő transzponálásához írja fel a következő képletet.
=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. lépés: Alkalmazza a tömböt
- Tömb beszúrásához nyomja meg a Ctrl + Műszak + Írja be a címet. .
- Ennek következtében a sejtek F5 az első transzponált értéket mutatja, mint az alábbi képen.
- Húzza lefelé a AutoFill fogantyú eszköz az oszlop automatikus kitöltéséhez.
- Végül töltse ki automatikusan a sorokat a AutoFill fogantyú eszköz .
- Ezért az összes transzponált sor oszlopokká alakul át, ahogy az alábbi képen látható.
További információ: Több sor transzponálása csoportban oszlopokká az Excelben
Hasonló olvasmányok
- Hogyan lehet a duplikált sorokat az Excel oszlopokba transzponálni (4 mód)
- Excel VBA: Több sor transzponálása a csoportban oszlopokká
- Több oszlop transzponálása egy oszlopba az Excelben (3 praktikus módszer)
- Hogyan fordítsuk meg az Excel fordított transzponálását (3 egyszerű módszer)
2. VBA-kód futtatása a sorok oszlopokba történő áthelyezéséhez az Excelben lévő kritériumok alapján
1. lépés: Modul létrehozása
- Először is, nyomja meg a Alt + F11 induláshoz VBA makró .
- Kattintson a Beillesztés .
- Létrehozni egy Modul , válassza ki a Modul opció.
2. lépés: VBA kódok beírása
- Illessze be a következőket 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 InputRange for 2 columns:", "ExcelWIKI", RngText, , , , , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Alkalmazza a feltételt, hogy csak 2 oszlopot számoljon és megjelenjen a figyelmeztető mgsdoboz, hogy csak két oszlopot válasszon ki If InputRng Is Nothing Then Exit Sub If (InputRng.Columns.Count 2) Or _ (InputRng.Areas.Count> 1) Then MsgBox "A megadott tartomány csak 2 oszlop területét ",, "ExcelWIKI" Exit Sub End If 'Értékek és bemeneti doboz beállítása a bemeneti tartományhoz 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) 'Sorok számolása RowsNumber = InputRng.Rows.Count 'Alkalmazza a ciklusra 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. lépés: A program futtatása
- Először is, mentse és nyomja meg a F5 a program futtatásához.
- Válassza ki az adathalmazt a fejléccel.
- Kattintson a OK .
- Válasszon ki egy cellát a kimenet
- Ezután kattintson a OK .
- Ennek eredményeképpen olyan eredményeket kap, amelyek sorokba oszlopokba helyezett sorok, ahogy az alábbi képen látható.
További információ: Hogyan lehet sorokat oszlopokká transzponálni az Excel VBA használatával (4 ideális példa)
Következtetés
Remélem, hogy ez a cikk adott Önnek egy útmutatót arról, hogyan kell sorok oszlopokba történő áthelyezése az Excelben megadott kritériumok alapján Mindezeket az eljárásokat meg kell tanulni és alkalmazni kell az adatállományra. Nézze meg a gyakorló munkafüzetet, és tegye próbára ezeket a készségeket. Az Önök értékes támogatása miatt vagyunk motiválva, hogy továbbra is ilyen oktatóanyagokat készítsünk.
Ha bármilyen kérdése van - Nyugodtan kérdezzen minket. Továbbá, nyugodtan hagyjon megjegyzéseket az alábbi részben.
Mi, a Exceldemy Csapat, mindig reagálnak az Ön kérdéseire.
Maradj velünk & tanulj tovább.