สารบัญ
มีสามวิธีในการค้นหาและลบรายการที่ซ้ำกันภายในเซลล์ใน 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 สิ่งที่คุณต้องทำคือ:
- กด Alt + F11 เพื่อเปิด Visual Basic Editor
- ในบานหน้าต่างด้านซ้าย คลิกขวา ThisWorkbook แล้วเลือก แทรก > โมดูล .
- วางโค้ดข้างต้นในหน้าต่าง โค้ด
สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีแทรก 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 ต้องวางอยู่ในโมดูลเดียวกัน
วิธีใช้มาโคร
แทรกโค้ดของมาโครในสมุดงานของคุณเองหรือเปิดสมุดงานตัวอย่างของเราที่มีโค้ด แล้วทำตามขั้นตอนต่อไปนี้เพื่อเรียกใช้มาโคร
- เลือกช่วงของเซลล์ที่คุณต้องการลบข้อความที่ซ้ำกัน
- กด Alt + F8 เพื่อเปิดกล่องโต้ตอบ มาโคร
- ในรายการมาโคร เลือก RemoveDupeWords2 .
- คลิก เรียกใช้ .
สำหรับรายละเอียดเพิ่มเติม โปรดดูวิธีการ เรียกใช้มาโครใน 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
วิธีใช้มาโคร
สมมติว่าคุณได้ใส่โค้ดของมาโครในสมุดงานของคุณแล้วหรือเปิดสมุดงานตัวอย่างของเราที่มีโค้ดอยู่ ให้เปิดใช้มาโครด้วยวิธีนี้
- เลือกช่วงของเซลล์ที่คุณต้องการลบอักขระที่ซ้ำกัน
- กด Alt + F8 เพื่อเปิดกล่องโต้ตอบ มาโคร กล่อง
- ในรายการมาโคร ให้เลือก RemoveDupeChars2 .
- คลิก เรียกใช้ .
ลบสตริงย่อยที่ซ้ำกันด้วย Ultimate Suite
ในตอนต้นของบทช่วยสอนนี้ มีการกล่าวถึงว่า Microsoft Excel ไม่มีคุณลักษณะในตัวสำหรับการลบรายการที่ซ้ำกันภายในเซลล์ แต่ Ultimate Suite ของเราทำได้!
คุณสามารถค้นหาได้ในเมนูแบบเลื่อนลง Duplicate Remover บนแท็บ Ablebits Data ใน Dedupe กลุ่ม หากตัวเลือก ลบสตริงย่อยที่ซ้ำกัน ไม่ปรากฏใน Excel ของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Ultimate Suite เวอร์ชันล่าสุด (สามารถดาวน์โหลดรุ่นทดลองใช้ฟรีได้ที่นี่)
หากต้องการลบคำหรือข้อความที่ซ้ำกันออกจากหลายเซลล์ใน 5 วินาที (วินาทีต่อขั้นตอน :) คุณต้องทำดังนี้:
- เลือกแหล่งข้อมูลของคุณและเปิดใช้ ลบสตริงย่อยที่ซ้ำกัน เครื่องมือ
- ระบุ ตัวคั่น .
- กำหนดว่าจะถือว่า ตัวคั่นที่ต่อเนื่องกัน เป็นหนึ่งเดียวหรือไม่ (ค่าเริ่มต้น)
- เลือกว่าจะดำเนินการค้นหา คำนึงถึงตัวพิมพ์เล็กและใหญ่ หรือ ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
- คลิก ลบ
เสร็จแล้ว! ไม่ต้องเล่นซอกับ VBA หรือสูตร เพียงแค่ได้ผลลัพธ์ที่รวดเร็วและแม่นยำ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Add-in ที่ยอดเยี่ยมนี้ โปรดไปที่หน้าแรก หรือดียิ่งกว่านั้น ให้ดาวน์โหลดเวอร์ชันประเมินด้านล่างแล้วลองดู!
นั่นคือวิธีลบข้อความที่ซ้ำกันในเซลล์ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
ดาวน์โหลดได้
ตัวอย่างการลบรายการที่ซ้ำกันในเซลล์ (ไฟล์ .xlsm)
Ultimate Suite 14 -day เวอร์ชันที่ทำงานได้อย่างสมบูรณ์ (ไฟล์ .exe)