Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ทุกวัน ผู้ใช้ Excel ต้องจัดการกับรายการซ้ำในชุดข้อมูล ในกรณีนั้น ฟีเจอร์ของ Excel Advanced Filter (ตัวกรองขั้นสูง) สำหรับบันทึกที่ไม่ซ้ำ (unique records only) เป็นทางออกที่สะดวก เราสามารถดำเนินการกรองขั้นสูงที่กรองเฉพาะค่าที่ไม่ซ้ำหรือลบรายการซ้ำได้โดยใช้ฟีเจอร์ Excel, ฟังก์ชัน UNIQUE (เฉพาะ Excel 365) และ VBA macro

สมมติว่า เรามีชุดข้อมูลที่มีรายการเหมือนกันหลายชุด เราต้องการลบรายการเหมือนกันออก รักษาเพียงหนึ่งรายการของแต่ละชุดให้เป็นค่าที่ไม่ซ้ำ

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ในบทความนี้ เราสาธิตหลายวิธีในการใช้ advanced filter สำหรับบันทึกที่ไม่ซ้ำอย่างเดียว

ดาวน์โหลดสมุดทำงาน Excel (Download Excel Workbook)

4 วิธี ใช้ Advanced Filter สำหรับบันทึกที่ไม่ซ้ำ (Unique Records Only) ใน Excel

วิธีที่ 1: ฟีเจอร์ Advanced Filter ของ Excel กรองบันทึกที่ไม่ซ้ำ

Excel มีตัวเลือกในแท็บ Data (ข้อมูล) เป็น Advanced Filter ฟีเจอร์ Advanced Filter นี้สามารถกรองค่าที่ไม่ซ้ำได้เพียงอย่างเดียว หมายความว่าฟีเจอร์นี้เก็บหนึ่งในรายการซ้ำไว้เป็นค่าที่ไม่ซ้ำ และลบรายการอื่นๆ ออก

หลังจากตรวจสอบชุดข้อมูล เราพบ 3 ชุดของบันทึกเหมือนกัน ดังนั้น เราต้องลบรายการเหมือนกันเหล่านี้ แต่เก็บหนึ่งรายการของแต่ละชุดไว้ในชุดข้อมูลเป็นค่าที่ไม่ซ้ำ

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 1: เลือกช่วงทั้งหมด จากนั้น ไปที่แท็บ Data > เลือก Advanced (ขั้นสูง) (จากส่วน Sort & Filter)

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 2: หน้าต่าง Advanced Filter ปรากฏ ในหน้าต่าง

  • ภายใต้ Action > ติ๊ก Copy to another location (คัดลอกไปตำแหน่งอื่น)
  • List range (ช่วงรายการ) ถูกเลือกอัตโนมัติ (เช่น B4:F17)
  • เลือก Copy to location (คัดลอกไปตำแหน่ง) (เช่น H4)
  • ติ๊กตัวเลือก Unique Records Only (เฉพาะบันทึกที่ไม่ซ้ำ)
  • คลิก OK

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

➤ การคลิก OK จะวางรายการที่ไม่ซ้ำในตำแหน่งใหม่ที่คุณระบุในตัวเลือก Copy to ของหน้าต่าง Advanced Filter

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

🔁 การกำหนดเกณฑ์เพื่อใช้ Advanced Filter สำหรับบันทึกที่ไม่ซ้ำอย่างเดียว

การกำหนดเกณฑ์เพื่อกรองรายการจากช่วงเป็นวิธีง่ายในการค้นหาหรือหารายการที่ต้องการ สมมติว่าเรากำหนดเกี่ยวกับ Order Date (วันที่สั่งซื้อ), Product (ผลิตภัณฑ์), และ Quantity (จำนวน) เราต้องการบันทึกของผลิตภัณฑ์ที่มียอดขาย Quantity จำนวนหนึ่ง (>50) ในวันที่กำหนด (2/3/2022)

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

➤ ทำซ้ำ ขั้นตอนที่ 1 ของวิธีนี้ หลังจากนั้นหน้าต่าง Advanced Filter ปรากฏ กำหนดตัวเลือกคล้าย ขั้นตอนที่ 2 ยกเว้นแทรกช่วง (เช่น G6:J7) ในกล่องโต้ตอบ Criteria range (ช่วงเกณฑ์) สุดท้าย คลิก OK

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

⧬ ต้องแน่ใจว่าคุณเลือก Criteria range รวมถึงหัวคอลัมน์

➤ หลังจากคลิก OK Advanced Filter นำเสนอบันทึกที่ตรงตามเกณฑ์ ตามภาพด้านล่าง

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

เนื่องจากเรามีเพียงหนึ่งบันทึกที่ตรงตามเกณฑ์ที่กำหนดในชุดข้อมูล Advanced Filter จึงคืนค่าเพียงหนึ่งบันทึก

อ่านเพิ่มเติม: Advanced Filter พร้อมเกณฑ์หลายอย่างใน Excel (15 ตัวอย่างที่เหมาะสม)

วิธีที่ 2: ฟังก์ชัน UNIQUE กรองบันทึกที่ไม่ซ้ำอย่างเดียว

ฟังก์ชัน UNIQUE ของ Excel กรองบันทึกที่ไม่ซ้ำอย่างเดียว อย่างไรก็ตาม ฟังก์ชันนี้ทำงานได้เฉพาะใน Excel 365 ไวยากรณ์ของฟังก์ชัน UNIQUE คือ

=UNIQUE (array, [by_col], [exactly_once])

ในสูตร

array; ช่วงหรืออาร์เรย์ที่ต้องการดึงค่าที่ไม่ซ้ำ

[by_col]; ประเภทการดึงและเปรียบเทียบ FALSE ทำงานตาม Row (แถว) และ TRUE ทำงานตาม Column (คอลัมน์) [optional]

[exactly_once]; TRUE หมายถึงค่าที่เกิดขึ้นครั้งเดียว และ FALSE หมายถึงค่าที่ไม่ซ้ำทั้งหมด (ค่าเริ่มต้น) [optional]

ขั้นตอนที่ 1: วางสูตรต่อไปนี้ในเซลล์ว่างใดๆ (เช่น H4)

=UNIQUE(B4:F17)

ฟังก์ชัน UNIQUE รับอาร์เรย์ (เช่น B4:F17) และคืนค่าที่ไม่ซ้ำทั้งหมด

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 2: กด ENTER แล้วในไม่ช้า ค่าที่ไม่ซ้ำทั้งหมดจะปรากฏตามภาพด้านล่าง

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)จากภาพหน้าจอข้างต้น คุณเห็นบันทึกที่ไม่ซ้ำทั้งหมดที่ดึงมาจากชุดข้อมูล

อ่านเพิ่มเติม: ตัวอย่าง Excel VBA ของ Advanced Filter พร้อมเกณฑ์ (6 เกณฑ์)

การอ่านที่คล้ายคลึงกัน:

  • Dynamic Advanced Filter Excel (VBA & Macro)
  • วิธีใช้ Advanced Filter ใน VBA (แนวทางแบบขั้นตอน)
  • วิธีใช้ Advanced Filter หาก Criteria Range มีข้อความใน Excel
  • VBA คัดลอกข้อมูลไปแผ่นงานอื่นด้วย Advanced Filter ใน Excel

วิธีที่ 3: ฟีเจอร์ Remove Duplicates (ลบรายการซ้ำ) เพื่อลบรายการซ้ำ

การลบรายการซ้ำก็เป็นหนึ่งในวิธีที่สะดวกในการกรองเพื่อค่าที่ไม่ซ้ำ Excel มีตัวเลือก Remove Duplicates ในแท็บ Data ฟีเจอร์ Remove Duplicates นี้เก็บบันทึกเหมือนกันหนึ่งรายการไว้ระหว่างรายการซ้ำ

ขั้นตอนที่ 1: เลือกช่วง แล้ว ไปที่แท็บ Data > เลือก Remove Duplicates (จากส่วน Data Tools)

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 2: หน้าต่าง Remove Duplicates ปรากฏ ในหน้าต่าง คลิกตัวเลือก Select All (เลือกทั้งหมด) แล้วคลิก OK

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 3: หน้าต่างแจ้งเตือนปรากฏ บอกว่า Excel ลบรายการซ้ำ 3 รายการ คลิก OK

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

➤ การดำเนินการของฟีเจอร์ Remove Duplicates ลบรายการซ้ำและเก็บบันทึกที่ไม่ซ้ำอย่างเดียว

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

อ่านเพิ่มเติม: Excel Advanced Filter: ใช้ "Does Not Contain" (2 วิธี)

วิธีที่ 4: VBA Macro กรองบันทึกที่ไม่ซ้ำ

VBA Macros มีพลังสำหรับบรรลุผลลัพธ์ตามเกณฑ์ เราสามารถใช้รหัสแมโครกรองบันทึกที่ไม่ซ้ำอย่างเดียว

เรามีชุดข้อมูลที่มีรายการซ้ำอยู่แล้ว เราจัดรูปแบบสีรายการซ้ำเพื่อระบุได้ง่าย

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 1: กด ALT+F11 พร้อมกันเพื่อเปิดหน้าต่าง Microsoft Visual Basic ในหน้าต่างนั้น เลือก Insert (แทรก) (จาก Toolbar) > คลิก Module (โมดูล)

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

ขั้นตอนที่ 2: พิมพ์แมโครต่อไปนี้ใน Module

Option Explicit 
Sub Filter_Unique_Records() 
Dim SourceRng As Range, PasteRng As Range 
Dim lastRow As Long 
Dim wrk As Worksheet 
Set wrk = ThisWorkbook.Sheets("VBA") 
Set PasteRng = wrk.Cells(4, 8) 
If PasteRng <> vbNullString Then 
lastRow = wrk.Columns(PasteRng.Column).Find("*", , , , xlByRows, xlPrevious).Row 
wrk.Range(PasteRng, Cells(lastRow, PasteRng.Column + 2)).Delete xlUp 
Set PasteRng = wrk.Cells(4, 8) 
End If 
lastRow = wrk.Columns(2).Find("*", , , , xlByRows, xlPrevious).Row 
Set SourceRng = wrk.Range(Cells(4, 2), Cells(lastRow, 6)) 
SourceRng.AdvancedFilter Action:=xlFilterCopy, copytorange:=PasteRng, Unique:=True 
End Sub

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

แมโครเริ่มช่วงต้นทางจาก แถว 4 และ คอลัมน์ 2 และช่วงปลายทางเริ่มจาก แถว 4 และ คอลัมน์ 8 ใช้ฟังก์ชัน VBA CELL มันยังกำหนดเงื่อนไขลบเนื้อหาจากช่วงปลายทางใช้เมธอด VBA Range.Delete ในที่สุด แมโครรัน VBA AdvancedFilter Action

ขั้นตอนที่ 3: ใช้ปุ่ม F5 รันแมโครหลังจากนั้นกลับไปที่แผ่นงาน คุณจะเห็นบันทึกซ้ำทั้งหมดถูกลบออก คล้ายกับภาพด้านล่าง

กำจัดแถวซ้ำใน Excel ด้วยการกรองขั้นสูง (Advanced Filtering)

อ่านเพิ่มเติม: Advanced Filter พร้อม Criteria Range ใน Excel (18 การประยุกต์ใช้)

สรุป

ในบทความนี้ เราใช้ฟีเจอร์ Excel หลายอย่าง ฟังก์ชัน UNIQUE และโค้ด VBA macro เพื่อกรองเฉพาะค่าที่ไม่ซ้ำ วิธีที่กล่าวมาข้างต้นแต่ละวิธีมีความสะดวกของตัวเองตามประเภทข้อมูล หวังว่าคุณจะพบว่าวิธีเหล่านี้เก่งในการแก้ปัญหา คอมเมนต์ถ้ามีคำถามเพิ่มเติมหรือมีอะไรจะเพิ่ม

บทความที่เกี่ยวข้อง

  • Excel Advanced Filter [หลายคอลัมน์ & เกณฑ์, ใช้สูตร & ตัวแทน]
  • วิธีใช้ Advanced Filter ตัดเซลล์ว่างใน Excel (3 เทคนิคง่าย)
  • วิธีใช้ Advanced Filter คัดลอกข้อมูลไปแผ่นงานอื่นใน Excel
  • วิธีใช้ Advanced Filter คัดลอกไปตำแหน่งอื่นใน Excel
  • Excel Advanced Filter Not Working (2 เหตุผล & วิธีแก้)