---
title: วิธีจัดการข้อมูลซ้ำใน Excel (แบบลึกซึ้ง)
url: https://www.thepexcel.com/excel-duplicates-data-management/
type: post
date: 2019-05-29
updated: 2020-03-30
author: Sira Ekabut
categories: ["Highlights : บทความแนะนำ", Power Query]
tags: [SORT, power query, MAXIFS]
---

# วิธีจัดการข้อมูลซ้ำใน Excel (แบบลึกซึ้ง)

หากเราไม่แน่ใจว่ามีข้อมูลซ้ำอยู่ในรายการข้อมูล Excel หรือไม่? แล้วเราอยากจะรู้หรืออยากจะทำให้ข้อมูลมันไม่ซ้ำกัน เราจะทำยังไงดี? มาดูกันครับ

 

สถานการณ์ คือ เรามีข้อมูล เป็น Customer ID และวันที่ของการบันทึกข้อมูลลูกค้า   
สมมติว่า เราอยากจะได้เฉพาะข้อมูล**ครั้งล่าสุดเท่านั้น** เราจะทำยังไงดี?

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-001-1.png) 

## แนวทาง #1 : ลบข้อมูลซ้ำด้วย Remove Duplicates

 

เครื่องมือ Remove Duplicates มันจะเก็บข้อมูลไว้เฉพาะบรรทัดบนสุดเท่านั้น ดังนั้นก่อนจะใช้เครื่องมือนี้ ผมแนะนำให้เรียงข้อมูลให้อยู่ในลักษณะที่ หากข้อมูลซ้ำกัน ให้เอาแถวที่เราอยากได้ไว้บนสุดซะก่อนครับ โดยใช้ Data –> Sort ก่อน

 

ในที่นี้เราจะเรียงตาม CustomerID ก่อน แล้วเรียงตามวันที่ โดยเอาวันที่ใหม่สุดไว้บน

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-002-1.png) 

จากนั้นเราจะได้ข้อมูลที่เรียงกันในแบบที่อยากได้แล้ว

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-003-1.png) 

ให้เราเลือกข้อมูลช่องใดช่องหนึ่ง แล้วไปที่ Data -> Remove Duplicates

 

แล้ว**ให้ติ๊กเฉพาะ CustomerID เท่านั้น** (ติ๊กเอา Date ออกซะ) เพราะถ้าติ๊กทั้งคู่มันจะมองทั้งสองคอลัมน์ ซึ่งจะทำให้มันไม่เอา Cust 004 วันที่ 15/3/2019 ออกไป

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-004-1.png) 

พอกด ok จะเห็นว่า ในคอลัมน์ CustomerID ที่ซ้ำๆ กัน **ผลลัพธ์จะเหลือเฉพาะบรรทัดบนสุดของแต่ละตัวเท่านั้น (นี่แหละการเรียงถึงสำคัญ)**

 

และสังเกตว่า Remove Duplicates มัยไม่สนใจเรื่องตัวพิมพ์เล็กพิมพ์ใหญ่ด้วย (มองว่าเหมือนกัน ลองดูที่ CUST-007 สิ)

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-005-1.png) 

## แนวทาง #2 : Sort แล้วเขียนสูตรเทียบกับตัวบน

 

วิธีนี้ผมจะ Sort เช่นเดียวกับตอนทำ Remove Duplicates เพื่อให้ตัวที่อยากได้อยู่บน

 

จากนั้นจะเขียนสูตรเช็ค Duplicates ง่ายๆ ดังนี้ ว่า CustomerID บรรทัดตัวเอง ซ้ำกับ CustomerID บรรทัดเหนือมัน 1 อันรึเปล่า? ถ้าซ้ำก็เรียกว่า Dup ตัวบนนี่แหละ

 

ซึ่งถ้าเป็น TRUE ก็จะเป็นตัวที่เราไม่ต้องการนั่นเอง

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-016.png) 

เขียนสูตรนี้เสร็จแล้ว ถ้าจะลบข้อมูลซ้ำทิ้งเลย จะ Filter TRUE แล้วลบ Row ทิ้งตรงๆ ก็ได้

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-017.png) 

มันจะเหลือเฉพาะแถวที่ต้องการแล้ว   
ส่วน Column C ที่เอาไว้ Check Duplicates ไม่ใช้แล้วก็ลบทิ้งได้ครับ

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-018.png) 

**Tips **: ถ้ายังไม่ลบทิ้ง แล้วจะเอาไปใช้อะไรต่อ **อย่าลืม Paste Value ตัว TRUE / FALSE ด้วย** ไม่งั้นพอ Sort ใหม่แล้วเดี๋ยวสูตรผิดนะครับ

 

## แนวทาง #3 : ดึงเอาเฉพาะข้อมูลที่ไม่ซ้ำด้วย PivotTable

 

วิธีนี้เราจะใช้ PivotTable สรุปข้อมูล ซึ่งทำไม่ยากเลย ดังนี้

 

เลือกข้อมูลช่องใดช่องหนึ่ง แล้ว Insert -> PivotTable -> ok

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-010.png) 

ลาก CustomerID ไว้ที่ Row และ Date ไว้ที่ Value (สังเกตว่า PivotTable ก็ไม่สนตัวพิมพ์เล็กพิมพ์ใหญ่เหมือนกัน)

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-011.png) 

จากนั้นคลิ๊กขวาตรง Count of Date แล้วเปลี่ยน Summarized Value by เป็น Max

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-013.png) 

ที่เห็นเป็นเลข 4 หมื่นกว่าๆ จริงๆ ก็คือวันที่นี่แหละ ถูกแล้ว แต่ว่าแค่ยังไม่ได้เปลี่ยน Format เป็นวันที่เท่านั้นเอง ดังนั้นเราจะคลิ๊กขวา **เลือกเมนู Number Format…** (อย่าเลือก เมนู Format Cell นะ) แล้วเปลี่ยนให้เป็นวันที่ซะ

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-014.png) ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-015.png) 

## แนวทาง #4 : ใช้ Power Query

 

**(เดิมเขียนผิด อันนี้แก้แล้ว)**

 

[Power Query](https://www.thepexcel.com/power-query-overview/) นี่ทำงานพวกนี้ได้สบายมากๆ ครับ เรายังไม่จำเป็นต้องเรียงข้อมูลตอนแรกด้วยซ้ำ (เพราะไปเรียงใน Power Query ได้)

 

ให้เลือกข้อมูลช่องใดช่องหนึ่งแล้วเอาเข้า Power Query ตรง import from Table/Range แล้วกด Ok

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-021.png) 

เรื่องจาก Power Query จะให้ความสำคัญกับตัวพิมพ์ใหญ่ พิมพ์เล็กด้วยเสมอ ดังนั้นเราจะทำการแปลงข้อมูลให้มีลักษณะเหมือนกันก่อน เช่น ใช้ Transform Capitalize Each Word เพื่อแก้ปัญหาให้ CUST-007 ก่อน

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-022.png) 

จากนั้น ผม Sort ตาม customer A to Z และ กด Sort ตามวันที่ ใหม่ไปเก่า จะได้ดังรูป

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-023.png) 

จากนั้นเลือก คอลัมน์แรก แล้ว เลือก Remove Rows -> Remove Duplicates

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-024.png) 

มันจะเหลือเฉพาะตัวที่ไม่ซ้ำแล้ว แต่ปรากฏว่า **Cust-004 ดันเหลือ 15/3/2562 ซะงั้น!! ทั้งๆ ที่ควรจะเหลือวันที่ 8/4/2562 ซึ่งเราอุตส่าห์เอามาไว้ข้างบนแล้วแท้ๆ**

 ![1](https://www.thepexcel.com/wp-content/uploads/2019/06/excel-duplicates-026.png) 

ซึ่งปรากฏการณ์ที่เกิดขึ้นนี้ ผมมองว่าเป็น Bug ของ Power Query ครับ ซึ่งมีวิธีแก้ไขคือ ให้**กด Add Index Number แทรกเอาไว้หลังจาก sort (ก่อนจะสั่ง Remove Duplicates ) **ครับ

 

โดยกดย้อนกลับไปที่ Step การ Sort

 ![2](https://www.thepexcel.com/wp-content/uploads/2019/06/excel-duplicates-027.png) 

แล้วกด **Add Index Column -> From 1 **   
แล้วมันจะเตือนว่าเป็นการ Insert step ก็ ok ไปครับ

 ![3](https://www.thepexcel.com/wp-content/uploads/2019/06/excel-duplicates-028.png) 

กดไปที่ Step สุดท้าย

 ![4](https://www.thepexcel.com/wp-content/uploads/2019/06/excel-duplicates-029.png) 

จะเห็นว่าผลลัพธ์ถูกต้องแล้วครับ

 ![5](https://www.thepexcel.com/wp-content/uploads/2019/06/excel-duplicates-030.png) 

จากนั้น ลบ คอลัมน์ index ออกไป เพราะไม่ใช้แล้ว จากนั้นกด Close & Load เป็นอันจบ

 ![6](https://www.thepexcel.com/wp-content/uploads/2019/06/excel-duplicates-031.png) 

## แถม 1 # : ระบุข้อมูลซ้ำด้วย Conditional Formatting

 

ถ้าเราอยากจะแค่รู้ว่ามีข้อมูลซ้ำรึเปล่า? ก็ใช้ Conditional Format -> Highlights Duplicates มาช่วยได้

 

ผมเลือกแค่คอลัมน์แรกก่อน ค่อยกด Highlight ดังนี้ แล้ว ok

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-006-1024x576.png) 

จะเห็นว่ามัน Highlight ส่วนที่ซ้ำกันให้

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-007.png) 

เราสามาถ Filter เฉพาะตัวที่ Highlights ได้ถ้าต้องการ โดยคลิ๊กขวา Filter by Selected Cell’s Color

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-008.png) 

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

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-009.png) 

## แถม #2 : ใช้สูตรคำนวณหา Max Date ของลูกค้าแต่ละคน

 

**ใครมี Excel 2016 ขึ้นไป จะมี MAXIFS ให้ใช้ ก็ง่ายหน่อย **  
=MAXIFS(max_range,criteria_range,criteria,…)  
=MAXIFS([Date],[CustomerID],[@CustomerID]) หรือ  
=MAXIFS($B$3:$B$15,$A$3:$A$15,A3)

 

**ถ้าไม่มี MAXIFS ก็ต้องใช้ [Array Formula](https://www.thepexcel.com/product/magic-excel-overview/)**  
=MAX(([CustomerID]=[@CustomerID])*[Date]) แล้วกด Ctrl+Shift+Enter หรือ  
=MAX(($A$3:$A$15=A3)*$B$3:$B$15) แล้วกด Ctrl+Shift+Enter

 

จะเห็นว่าถ้าทำเป็น Table ก่อน สูตรจะอ่านง่ายกว่านะผมว่า

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-020-1024x345.png) 

แบบ Range ต้องมาเล็งว่า A3 คืออะไรอีก…

 ![ข้อมูลซ้ำ Duplicates Data](https://www.thepexcel.com/wp-content/uploads/2019/05/excel-duplicates-019-1024x433.png) 

**หมายเหตุ** : ภาพ Cover เป็นตัวละครจากการ์ตูนเรื่อง Naruto ใช้คาถาแยกเงาพันร่าง

---

_Source: [https://www.thepexcel.com/excel-duplicates-data-management/](https://www.thepexcel.com/excel-duplicates-data-management/)_
