โดยทั่วไป TRANSPOSE ฟังก์ชันมักใช้เพื่อแปลงแถวเป็นคอลัมน์ อย่างไรก็ตาม ผลลัพธ์ที่ขึ้นอยู่กับเกณฑ์บางอย่าง เช่น ค่าที่ไม่ซ้ำ จะไม่ถูกส่งกลับ ในบทช่วยสอนนี้ เราจะแสดงวิธีย้ายแถวเป็นคอลัมน์ตามเกณฑ์ใน Excel
วิธีสะดวก 2 วิธีในการเปลี่ยนแถวเป็นคอลัมน์ตามเกณฑ์ใน Excel
เราได้รวมชุดข้อมูลของผลิตภัณฑ์หลายรายการและปริมาณไว้ในรูปด้านล่าง แถวจะถูกย้ายไปเป็นคอลัมน์ เราจะย้ายแถวเป็นคอลัมน์ตามเกณฑ์ ของค่าที่ไม่ซ้ำกันเนื่องจากมีรายการที่ซ้ำกันบางส่วนในเซลล์ที่แยกจากกัน ก่อนอื่น เราจะใช้ INDEX , MATCH , COUNTIF , ถ้า และ IFERROR ทำหน้าที่สร้างสูตร เราจะดำเนินการ VBA . ด้วย รหัสเพื่อให้บรรลุสิ่งเดียวกัน
1. ใช้สูตรที่มีฟังก์ชัน INDEX, MATCH และ COUNTIF เพื่อสลับแถวเป็นคอลัมน์ตามเกณฑ์ใน Excel
ในตอนเริ่มต้น เราจะใช้สูตรของ INDEX , MATCH , COUNTIF , ถ้า และ IFERROR ฟังก์ชันกับอาร์เรย์
ขั้นตอนที่ 1:แทรกฟังก์ชัน INDEX, MATCH และ COUNTIF
- ในเซลล์ E5 ให้พิมพ์สูตรต่อไปนี้เพื่อรับผลิตภัณฑ์ที่ไม่เหมือนใคร
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
ขั้นตอนที่ 2:ใช้อาร์เรย์
- หากต้องการใช้สูตรกับอาร์เรย์ ให้กด Ctrl + กะ + ป้อน
- ดังนั้น คุณจะได้ผลลัพธ์ที่ไม่ซ้ำแบบแรก
ขั้นตอนที่ 3:เติมเซลล์อัตโนมัติ
- ในการรับค่าที่ไม่ซ้ำกันทั้งหมด ให้ใช้ ป้อนอัตโนมัติ Handle Tool เพื่อเติมคอลัมน์อัตโนมัติ
ขั้นตอนที่ 4:ป้อนฟังก์ชัน IFERROR
- หากต้องการเปลี่ยนค่าแถวของปริมาณเป็นคอลัมน์ ให้เขียนสูตรต่อไปนี้
=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)
ขั้นตอนที่ 5:ใช้อาร์เรย์
- หากต้องการแทรกอาร์เรย์ ให้กด Ctrl + เปลี่ยน + ป้อน .
- ผลที่ตามมาคือ เซลล์ F5 จะแสดงค่าทรานสโพสแรกตามภาพด้านล่าง
- ลากลงด้วย เครื่องมือจัดการป้อนอัตโนมัติ เพื่อเติมคอลัมน์โดยอัตโนมัติ
- สุดท้าย เติมแถวอัตโนมัติด้วย เครื่องมือจัดการการป้อนอัตโนมัติ .
- ดังนั้น แถวที่เปลี่ยนถ่ายทั้งหมดจะเปลี่ยนเป็นคอลัมน์ดังที่แสดงด้านล่าง
อ่านเพิ่มเติม:ย้ายหลายแถวในกลุ่มเป็นคอลัมน์ใน Excel
การอ่านที่คล้ายกัน
- วิธีการเปลี่ยนแถวที่ซ้ำกันเป็นคอลัมน์ใน Excel (4 วิธี)
- Excel VBA:สลับแถวหลายแถวในกลุ่มเป็นคอลัมน์
- ย้ายหลายคอลัมน์เป็นหนึ่งคอลัมน์ใน Excel (วิธีง่ายๆ 3 วิธี)
- วิธีการย้อนกลับ Transpose ใน Excel (วิธีง่ายๆ 3 วิธี)
2. เรียกใช้โค้ด VBA เพื่อเปลี่ยนแถวเป็นคอลัมน์ตามเกณฑ์ใน Excel
ขั้นตอนที่ 1:สร้างโมดูล
- ขั้นแรก กด Alt + F11 เพื่อเริ่ม มาโคร VBA .
- คลิกที่ แทรก .
- ในการสร้าง โมดูล ให้เลือก โมดูล ตัวเลือก
ขั้นตอนที่ 2:พิมพ์รหัส VBA
- วาง 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:", "ExcelDemy", 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 ", , "ExcelDemy"
Exit Sub
End If
'Set values and Input Box fot Input Range
Set OutputRng = Application.InputBox("Select Your Output Range (one cell):", "ExcelDemy", 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:=xlPasteFormats
InputRng.AutoFilter
Application.ScreenUpdating = True
End Sub
ขั้นตอนที่ 3:เรียกใช้โปรแกรม
- ขั้นแรก บันทึก แล้วกด F5 เพื่อเรียกใช้โปรแกรม
- เลือกชุดข้อมูลของคุณด้วยส่วนหัว
- คลิกที่ ตกลง .
- เลือกเซลล์เพื่อรับ ผลลัพธ์
- จากนั้น คลิกที่ ตกลง .
- ด้วยเหตุนี้ คุณจะได้ผลลัพธ์ที่มีการสลับแถวเป็นคอลัมน์ดังที่แสดงในภาพด้านล่าง
อ่านเพิ่มเติม:วิธีเปลี่ยนแถวเป็นคอลัมน์โดยใช้ Excel VBA (4 ตัวอย่างในอุดมคติ)
บทสรุป
ฉันหวังว่าบทความนี้จะให้บทแนะนำเกี่ยวกับวิธีการเปลี่ยนแถวเป็นคอลัมน์ตามเกณฑ์ใน Excel . ขั้นตอนทั้งหมดเหล่านี้ควรเรียนรู้และนำไปใช้กับชุดข้อมูลของคุณ ดูสมุดแบบฝึกหัดและนำทักษะเหล่านี้ไปทดสอบ เรามีแรงจูงใจที่จะทำบทแนะนำแบบนี้ต่อไปเนื่องจากการสนับสนุนที่มีค่าของคุณ
หากคุณมีคำถามใด ๆ - อย่าลังเลที่จะถามเรา นอกจากนี้ โปรดแสดงความคิดเห็นในส่วนด้านล่างนี้
พวกเรา ความเป็นเลิศ ทีมงานจะตอบคำถามของคุณเสมอ
อยู่กับเราและเรียนรู้ต่อไป
บทความที่เกี่ยวข้อง
- แปลงคอลัมน์เป็นแถวใน Excel โดยใช้ Power Query
- วิธีการแปลงคอลัมน์เป็นแถวใน Excel ตามค่าของเซลล์
- VBA เพื่อสลับหลายคอลัมน์เป็นแถวใน Excel (2 วิธี)
- วิธีการแปลงคอลัมน์เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคด้วยเครื่องหมายคำพูดเดี่ยว
- Excel Paste Transpose Shortcut:4 วิธีง่ายๆ ในการใช้งาน
- Excel Transpose Formulas โดยไม่ต้องเปลี่ยนการอ้างอิง (4 วิธีง่ายๆ)
- วิธีการเปลี่ยนใน Excel VBA (3 วิธี)