เมื่อวิเคราะห์ข้อมูลใน Excel คุณอาจพบว่ามีแถวซ้ำกันหลายแถว ในกรณีนี้ คุณอาจต้องการรวมแถวเหล่านั้นอย่างรวดเร็ว บทความนี้จะนำเสนอ 2 วิธีง่ายๆ ในการทำเช่นนั้น
ผู้ใช้จำนวนมากมักจะต้องรวมแถวที่ซ้ำกันและรวมค่าตามใน Excel ตัวอย่างเช่นฉันมีข้อมูลช่วงหนึ่งในแผ่นงาน Excel ซึ่งมีรายการที่ซ้ำกันมากมายเช่นภาพหน้าจอต่อไปนี้ ดังนั้นฉันต้องการรวมแถวที่ซ้ำกันและรวมค่าที่เกี่ยวข้องในคอลัมน์อื่น มันจะลำบากแน่ ๆ ถ้าทำด้วยตัวเอง ดังนั้นฉันจึงใช้ 2 วิธีต่อไปนี้ในการทำความเข้าใจ
วิธีที่ 1: ใช้ฟังก์ชัน“ รวมบัญชี”
- ก่อนอื่นให้คลิกเซลล์ว่างที่คุณต้องการวางข้อมูลที่ผสานและสรุป
- จากนั้นไปที่แท็บ "ข้อมูล" และคลิกที่ปุ่ม "รวมบัญชี"
- ในกล่องโต้ตอบป๊อปอัปตรวจสอบให้แน่ใจว่าได้เลือก“ Sum” ในกล่อง“ Function” แล้ว
- จากนั้นคลิกที่
ปุ่ม
- จากนั้นเลือกช่วงที่คุณต้องการรวมและคลิก
ปุ่ม
- หลังจากนั้นคลิกปุ่ม "เพิ่ม" ในกล่องโต้ตอบ "รวมบัญชี"
- จากนั้นตรวจสอบตัวเลือก "แถวบนสุด" และ "คอลัมน์ด้านซ้าย"
- สุดท้ายคลิกปุ่ม“ ตกลง”
- แถวจะถูกรวมในครั้งเดียวดังที่แสดงในภาพหน้าจอต่อไปนี้
วิธีที่ 2: ใช้รหัส VBA ของ Excel
- ในตอนแรกให้เลือกช่วงที่คุณต้องการ
- จากนั้นทริกเกอร์โปรแกรมแก้ไข VBA ตาม "วิธีเรียกใช้รหัส VBA ใน Excel ของคุณ"
- จากนั้นคัดลอกรหัส VBA ต่อไปนี้ลงในโมดูล
Sub MergeRowsSumValues()
Dim objSelectedRange As Excel.Range
Dim varAddressArray As Variant
Dim nStartRow, nEndRow As Integer
Dim strFirstColumn, strSecondColumn As String
Dim objDictionary As Object
Dim nRow As Integer
Dim objNewWorkbook As Excel.Workbook
Dim objNewWorksheet As Excel.Worksheet
Dim varItems, varValues As Variant
On Error GoTo ErrorHandler
Set objSelectedRange = Excel.Application.Selection
varAddressArray = Split(objSelectedRange.Address(, False), ":")
nStartRow = Split(varAddressArray(0), "$")(1)
strFirstColumn = Split(varAddressArray(0), "$")(0)
nEndRow = Split(varAddressArray(1), "$")(1)
strSecondColumn = Split(varAddressArray(1), "$")(0)
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = nStartRow To nEndRow
strItem = ActiveSheet.Range(strFirstColumn & nRow).Value
strValue = ActiveSheet.Range(strSecondColumn & nRow).Value
If objDictionary.Exists(strItem) = False Then
objDictionary.Add strItem, strValue
Else
objDictionary.Item(strItem) = objDictionary.Item(strItem) + strValue
End If
Next
Set objNewWorkbook = Excel.Application.Workbooks.Add
Set objNewWorksheet = objNewWorkbook.Sheets(1)
varItems = objDictionary.keys
varValues = objDictionary.items
nRow = 0
For i = LBound(varItems) To UBound(varItems)
nRow = nRow + 1
With objNewWorksheet
.Cells(nRow, 1) = varItems(i)
.Cells(nRow, 2) = varValues(i)
End With
Next
objNewWorksheet.Columns("A:B").AutoFit
ErrorHandler:
Exit sub
End Sub
- หลังจากนั้นให้กด“ F5” เพื่อเรียกใช้มาโครนี้ทันที
- เมื่อแมโครเสร็จสิ้นสมุดงาน Excel ใหม่จะปรากฏขึ้นซึ่งคุณสามารถดูแถวที่ผสานและข้อมูลสรุปได้ดังภาพด้านล่าง
การเปรียบเทียบ
| ข้อดี | ข้อเสีย | |
| 1 วิธี | ง่ายต่อการทำงาน | ไม่สามารถประมวลผลสองคอลัมน์ที่ไม่อยู่ติดกัน |
| 2 วิธี | 1. สะดวกในการใช้ซ้ำ | 1. เข้าใจยากสำหรับมือใหม่ VBA |
| 2. จะไม่ทำให้แผ่นงาน Excel ต้นฉบับยุ่งเพราะใส่ข้อมูลที่ผสานไว้ในไฟล์ใหม่ | 2. ไม่สามารถประมวลผลสองคอลัมน์ที่ไม่อยู่ติดกัน |
เมื่อพบปัญหา Excel ขัดข้อง
อย่างที่เราทราบกันดีว่า Excel อาจขัดข้องเป็นครั้งคราว ภายใต้สถานการณ์เช่นนี้ที่เลวร้ายที่สุดไฟล์ Excel ปัจจุบันอาจเสียหายโดยตรง ในเวลานั้นคุณไม่มีทางเลือกอื่นนอกจากต้องพยายาม การกู้คืน Excel. คุณต้องขอความช่วยเหลือจากผู้เชี่ยวชาญหรือใช้เครื่องมือซ่อมแซม Excel เฉพาะทางเช่น DataNumen Excel Repair.
บทนำผู้เขียน:
Shirley Zhang เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ทุจริต SQL Server และผลิตภัณฑ์ซอฟต์แวร์ซ่อมแซมแนวโน้ม ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.








