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

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

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

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

ข้อมูลซ้ำ Duplicates Data

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

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

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

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

ข้อมูลซ้ำ Duplicates Data

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

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

ข้อมูลซ้ำ Duplicates Data

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

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

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

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

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

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

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data
ข้อมูลซ้ำ Duplicates Data

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

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

Power Query นี่ทำงานพวกนี้ได้สบายมากๆ ครับ เรายังไม่จำเป็นต้องเรียงข้อมูลตอนแรกด้วยซ้ำ (เพราะไปเรียงใน Power Query ได้)

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

แถม #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
=MAX(([CustomerID]=[@CustomerID])*[Date]) แล้วกด Ctrl+Shift+Enter หรือ
=MAX(($A$3:$A$15=A3)*$B$3:$B$15) แล้วกด Ctrl+Shift+Enter

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

ข้อมูลซ้ำ Duplicates Data

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

ข้อมูลซ้ำ Duplicates Data

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


Leave a Reply

Your email address will not be published. Required fields are marked *

Public Training Workshop 2025
อบรม In-House Training

Feedback การใช้งาน AI Chatbot