วิธีลบรายการที่ซ้ำกันภายในเซลล์ใน Excel

  • แบ่งปันสิ่งนี้
Michael Brown

มีสามวิธีในการค้นหาและลบรายการที่ซ้ำกันภายในเซลล์ใน Excel เพียงเลือกอันที่เหมาะกับคุณที่สุด

เมื่อต้องลบค่าหรือแถวที่ซ้ำกัน Microsoft Excel เสนออาร์เรย์ของตัวเลือกต่างๆ แต่เมื่อพูดถึงการลบข้อความที่เหมือนกันภายในเซลล์ที่กำหนด Excel จะให้... ไม่มีอะไรเลย ไม่มีเครื่องมือ ไม่มีคุณสมบัติ ไม่มีสูตร ไม่มีอะไรเลย มันจะหยุดเราจากการบรรลุเป้าหมายหรือไม่? ไม่ว่าในกรณีใด ถ้า Excel ไม่มีฟังก์ชันที่เราต้องการ เรามาเขียนฟังก์ชันของเราเองกันเถอะ :)

    วิธีลบคำซ้ำในเซลล์ Excel

    ปัญหา : คุณมีคำหรือสตริงข้อความเดียวกันในเซลล์และต้องการลบการทำซ้ำครั้งที่สองและการทำซ้ำที่ตามมาทั้งหมด

    วิธีแก้ปัญหา : ฟังก์ชันหรือแมโคร VBA ที่ผู้ใช้กำหนดเอง

    ฟังก์ชันที่กำหนดโดยผู้ใช้เพื่อลบข้อความที่ซ้ำกันภายในเซลล์

    ในการกำจัดข้อความที่ซ้ำในเซลล์ คุณสามารถใช้ฟังก์ชันที่กำหนดโดยผู้ใช้ (UDF) ต่อไปนี้ ชื่อ RemoveDupeWords :

    Function RemoveDupeWords(text As String , ตัวคั่นเผื่อเลือก As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary .CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) then dictionary.Add part, Nothing End If Next If dictionary.Count > 0 จากนั้น RemoveDupeWords = เข้าร่วม (dictionary.keys,ตัวคั่น) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    วิธีแทรกโค้ดของฟังก์ชันในสมุดงานของคุณ

    หากต้องการเพิ่มโค้ดด้านบนลงใน Excel สิ่งที่คุณต้องทำคือ:

    1. กด Alt + F11 เพื่อเปิด Visual Basic Editor
    2. ในบานหน้าต่างด้านซ้าย คลิกขวา ThisWorkbook แล้วเลือก แทรก > โมดูล .
    3. วางโค้ดข้างต้นในหน้าต่าง โค้ด

    สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีแทรก VBA โค้ดใน Excel

    ไวยากรณ์ของฟังก์ชัน RemoveDupeWords

    ฟังก์ชันที่สร้างขึ้นใหม่ของเราสำหรับการลบข้อความที่ซ้ำกันในเซลล์มีไวยากรณ์ต่อไปนี้:

    RemoveDupeWords(ข้อความ, [ตัวคั่น])

    ที่ :

    • ข้อความ (จำเป็น) - สตริงหรือเซลล์ที่คุณต้องการลบข้อความที่ซ้ำกัน
    • ตัวคั่น (ไม่บังคับ) - ตัวคั่นที่คั่นด้วยข้อความที่ซ้ำกัน หากละเว้น จะมีการใช้ช่องว่างสำหรับตัวคั่น

    ฟังก์ชันนี้ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ หมายความว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะถือว่าเป็นอักขระตัวเดียวกัน

    วิธีใช้ฟังก์ชัน RemoveDupeWords

    เมื่อเพิ่มโค้ดของฟังก์ชันลงในสมุดงานของคุณแล้ว คุณสามารถใช้โค้ดดังกล่าวในสูตรได้เช่นเดียวกับที่คุณใช้ฟังก์ชันในตัวของ Excel

    เพียงเริ่มพิมพ์ชื่อฟังก์ชันตามหลังเครื่องหมายเท่ากับ และชื่อฟังก์ชันนั้นจะปรากฏในสูตรอัจฉริยะ ดับเบิลคลิกที่ฟังก์ชัน แล้วคุณก็จะได้มันแทรกอยู่ในเซลล์ กำหนดอาร์กิวเมนต์ พิมพ์วงเล็บปิด กด Enter เท่านี้สูตรก็เสร็จสมบูรณ์

    ตัวอย่างเช่น หากต้องการลบคำที่ซ้ำกันโดยคั่นด้วยเครื่องหมายจุลภาคและเว้นวรรคจาก A2 ป้อนสูตรด้านล่างใน B2 แล้วลากลงไปตามเซลล์ต่างๆ ตามต้องการ:

    =RemoveDupeWords(A2, ", ")

    ด้วยเหตุนี้ คุณจะมีรายการคำหรือสตริงย่อยที่ไม่ซ้ำกันซึ่งคั่นด้วยเครื่องหมาย เครื่องหมายจุลภาคและช่องว่าง :

    หากคุณต้องการให้รายการคั่นด้วยเครื่องหมายจุลภาค ให้ใช้ เฉพาะเครื่องหมายจุลภาค สำหรับตัวคั่น :

    =RemoveDupeWords(A2, ",")

    หากแหล่งข้อมูลของคุณถูกคั่นด้วย ช่องว่าง อาร์กิวเมนต์ที่สองควรเป็น " " หรือละเว้น:

    =RemoveDupeWords(A2)

    เช่นเดียวกับฟังก์ชันอื่นๆ ของ Excel UDF ของเราจะคำนวณใหม่โดยอัตโนมัติเมื่อข้อมูลต้นทางเปลี่ยนแปลง ดังนั้นผลลัพธ์ของคุณจะอัปเดตอยู่เสมอ

    แมโคร VBA เพื่อลบข้อความที่ซ้ำออกจากหลายเซลล์พร้อมกัน

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

    โค้ดของแมโครเป็นดังนี้:

    Public Sub RemoveDupeWords2() Dim เซลล์เป็นช่วงสำหรับแต่ละเซลล์ใน Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    ในโค้ดด้านบน ตัวคั่นคือ ลูกน้ำ และ ช่องว่าง . หากต้องการใช้ตัวคั่นอื่น ให้แทนที่ ", " ด้วยอักขระอื่นในโค้ดบรรทัดนี้:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    หมายเหตุ เพื่อให้แมโครทำงานได้ โค้ดของแมโครและโค้ดของฟังก์ชัน RemoveDupeWords ต้องวางอยู่ในโมดูลเดียวกัน

    วิธีใช้มาโคร

    แทรกโค้ดของมาโครในสมุดงานของคุณเองหรือเปิดสมุดงานตัวอย่างของเราที่มีโค้ด แล้วทำตามขั้นตอนต่อไปนี้เพื่อเรียกใช้มาโคร

    1. เลือกช่วงของเซลล์ที่คุณต้องการลบข้อความที่ซ้ำกัน
    2. กด Alt + F8 เพื่อเปิดกล่องโต้ตอบ มาโคร
    3. ในรายการมาโคร เลือก RemoveDupeWords2 .
    4. คลิก เรียกใช้ .

    สำหรับรายละเอียดเพิ่มเติม โปรดดูวิธีการ เรียกใช้มาโครใน Excel

    หมายเหตุ เนื่องจากการทำงานของมาโคร ไม่สามารถยกเลิกได้ เราขอแนะนำให้คุณบันทึกสมุดงานของคุณก่อนที่จะใช้มาโคร ด้วยวิธีนี้ หากมีข้อผิดพลาด คุณสามารถปิดและเปิดสมุดงานใหม่อีกครั้ง แล้วคุณจะกลับมาที่เดิม หรือคุณสามารถทำสำเนาแผ่นงานที่อาจได้รับผลกระทบจากมาโคร

    วิธีลบอักขระที่ซ้ำกันในเซลล์

    ปัญหา : คุณมีอักขระตัวเดียวกันหลายตัวในเซลล์ ในขณะที่แต่ละเซลล์เซลล์ควรมีอักขระที่กำหนดเพียงตัวเดียว

    โซลูชัน : ฟังก์ชันที่ผู้ใช้กำหนดเองหรือมาโคร VBA

    ฟังก์ชันที่ผู้ใช้กำหนดเองเพื่อลบอักขระที่ซ้ำกัน

    ในการลบอักขระที่ซ้ำกันภายในเซลล์โดยเก็บเฉพาะอักขระที่เกิดขึ้นครั้งแรก คุณสามารถใช้ฟังก์ชันที่ผู้ใช้กำหนดเองต่อไปนี้ ซึ่งมีชื่อว่า RemoveDupeChars :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result as String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1 ) ถ้าไม่ใช่ dictionary.Exists(ถ่าน) จากนั้น dictionary.Add ถ่าน, ไม่มีผลลัพธ์ = ผลลัพธ์ & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

    หากต้องการแทรกโค้ดของฟังก์ชันลงในสมุดงาน ขั้นตอนจะเหมือนกับในตัวอย่างก่อนหน้านี้ทุกประการ

    ไวยากรณ์ของฟังก์ชัน RemoveDupeChars

    ไวยากรณ์ของฟังก์ชันแบบกำหนดเองนี้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ - ต้องการอาร์กิวเมนต์เดียวเท่านั้น:

    RemoveDupeChars(ข้อความ)

    โดยที่ ข้อความ เป็นสตริงหรือเซลล์ที่คุณต้องการ เพื่อลบอักขระที่ซ้ำกัน

    ฟังก์ชันนี้ คำนึงถึงตัวพิมพ์เล็กและใหญ่ และถือว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นอักขระต่างกัน

    วิธีใช้ฟังก์ชัน RemoveDupeChars

    ทุกสิ่งที่เราพูดเกี่ยวกับการใช้ RemoveDupeWords เป็นจริงสำหรับ RemoveDupeChars ดังนั้นโดยไม่ต้องไปทฤษฎีมากเกินไป มาดูตัวอย่างกันดีกว่า

    หากต้องการลบอักขระที่ซ้ำกันออกจากคอลัมน์ A โดยเริ่มจาก A2 ให้ป้อนสูตรนี้ใน B2 แล้วคัดลอกลงไป:

    =RemoveDupeChars(A2)

    ดังที่คุณเห็นในภาพด้านล่าง ฟังก์ชันนี้จัดการอักขระประเภทต่างๆ รวมทั้งตัวอักษร ตัวเลข และสัญลักษณ์พิเศษได้สำเร็จ:

    เคล็ดลับ ถ้าอักขระของคุณถูกคั่นด้วย ตัวคั่น เช่น ช่องว่าง เครื่องหมายจุลภาค หรือยัติภังค์ ให้ใช้ฟังก์ชัน RemoveDupeWords ตามที่แสดงในตัวอย่างก่อนหน้า

    แมโคร VBA เพื่อลบอักขระเดียวกันออกจากเซลล์

    เช่นเดียวกับ RemoveDupeWords ฟังก์ชัน RemoveDupeChars สามารถเรียกใช้จากภายในแมโครได้เช่นกัน:

    สาธารณะ Sub RemoveDupeChars2() หรี่เซลล์เป็นช่วงสำหรับแต่ละเซลล์ใน Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    เนื่องจาก UDF นี้ไม่ใช้ตัวคั่นใดๆ คุณจึงไม่ต้องปรับเปลี่ยนใดๆ ใน รหัส

    หมายเหตุ เพื่อให้แมโครทำงานได้ โค้ดของแมโครและโค้ดของ RemoveDupeChars UDF ต้องวางบนโมดูลเดียวกันในโปรแกรมแก้ไข VBA

    วิธีใช้มาโคร

    สมมติว่าคุณได้ใส่โค้ดของมาโครในสมุดงานของคุณแล้วหรือเปิดสมุดงานตัวอย่างของเราที่มีโค้ดอยู่ ให้เปิดใช้มาโครด้วยวิธีนี้

    1. เลือกช่วงของเซลล์ที่คุณต้องการลบอักขระที่ซ้ำกัน
    2. กด Alt + F8 เพื่อเปิดกล่องโต้ตอบ มาโคร กล่อง
    3. ในรายการมาโคร ให้เลือก RemoveDupeChars2 .
    4. คลิก เรียกใช้ .

    ลบสตริงย่อยที่ซ้ำกันด้วย Ultimate Suite

    ในตอนต้นของบทช่วยสอนนี้ มีการกล่าวถึงว่า Microsoft Excel ไม่มีคุณลักษณะในตัวสำหรับการลบรายการที่ซ้ำกันภายในเซลล์ แต่ Ultimate Suite ของเราทำได้!

    คุณสามารถค้นหาได้ในเมนูแบบเลื่อนลง Duplicate Remover บนแท็บ Ablebits Data ใน Dedupe กลุ่ม หากตัวเลือก ลบสตริงย่อยที่ซ้ำกัน ไม่ปรากฏใน Excel ของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Ultimate Suite เวอร์ชันล่าสุด (สามารถดาวน์โหลดรุ่นทดลองใช้ฟรีได้ที่นี่)

    หากต้องการลบคำหรือข้อความที่ซ้ำกันออกจากหลายเซลล์ใน 5 วินาที (วินาทีต่อขั้นตอน :) คุณต้องทำดังนี้:

    1. เลือกแหล่งข้อมูลของคุณและเปิดใช้ ลบสตริงย่อยที่ซ้ำกัน เครื่องมือ
    2. ระบุ ตัวคั่น .
    3. กำหนดว่าจะถือว่า ตัวคั่นที่ต่อเนื่องกัน เป็นหนึ่งเดียวหรือไม่ (ค่าเริ่มต้น)
    4. เลือกว่าจะดำเนินการค้นหา คำนึงถึงตัวพิมพ์เล็กและใหญ่ หรือ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
    5. คลิก ลบ

    เสร็จแล้ว! ไม่ต้องเล่นซอกับ VBA หรือสูตร เพียงแค่ได้ผลลัพธ์ที่รวดเร็วและแม่นยำ

    หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Add-in ที่ยอดเยี่ยมนี้ โปรดไปที่หน้าแรก หรือดียิ่งกว่านั้น ให้ดาวน์โหลดเวอร์ชันประเมินด้านล่างแล้วลองดู!

    นั่นคือวิธีลบข้อความที่ซ้ำกันในเซลล์ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    ดาวน์โหลดได้

    ตัวอย่างการลบรายการที่ซ้ำกันในเซลล์ (ไฟล์ .xlsm)

    Ultimate Suite 14 -day เวอร์ชันที่ทำงานได้อย่างสมบูรณ์ (ไฟล์ .exe)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้