Excel - เปรียบเทียบสองคอลัมน์และลบรายการที่ซ้ำกัน
- ปัญหา
- สารละลาย
- บันทึก
ปัญหา
ฉันต้องการมาโครสำหรับสเปรดชีต Excel ที่จะเปรียบเทียบบรรทัดตามสองเซลล์และค้นหารายการที่ซ้ำกัน
ในตัวอย่างนี้สองคอลัมน์แรก - A และ B - เป็นคอลัมน์ที่ต้องไม่ซ้ำกัน มาโครควรตั้งค่าสถานะแถวที่ตรงกันอย่างสมบูรณ์ในทั้งสองคอลัมน์ ดังนั้นในตัวอย่างนี้เฉพาะแถวที่ห้าเท่านั้นที่ควรตั้งค่าสถานะเนื่องจากเป็นการจับคู่ที่ตรงกันสำหรับแถวด้านบน
ตัวอย่าง:
คอลัมน์ A คอลัมน์ B คอลัมน์ Col D 00001 AAAA1 xxxx yyyy 00001 BBBB1 xxxx xxxx 00001 BBBB2 yyyy yyyy 00002 AAAA1 yyyy xxxx 00002 AAAA1 yyyy xxxx 00003 AAAA1 xxxx yyyy
สารละลาย
โซลูชันนี้จะแก้ไขข้อมูลในสเปรดชีตของคุณดังนั้นตรวจสอบให้แน่ใจว่าคุณได้บันทึกสำเนาสำรอง
ประการแรกคุณต้องรวมข้อมูลในคอลัมน์ A และ B เพื่อให้สามารถเปรียบเทียบได้โดยรวม หากต้องการทำสิ่งนี้ให้พิมพ์ลงในเซลล์ว่างที่ท้ายแถวข้อมูลแรก (ในตัวอย่างนี้เรากำลังใช้แถว 2 - เปลี่ยนตามที่จำเป็น):
= A2 และ B2
คัดลอกสูตรนี้ลงสำหรับสเปรดชีตทั้งหมด
ตอนนี้เรียกใช้แมโครด้านล่าง ในรหัสตัวอย่างนี้จะถือว่าคุณเขียนสูตรข้างต้นในคอลัมน์ E แก้ไขรหัสตามที่จำเป็น
คำเตือน: มาโครนี้จะลบแถวดังนั้นเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าคุณได้ทำสำเนาสำรองของคุณก่อนที่จะทำการทดสอบ
ข้อความย่อย () ติ่ม j เป็นจำนวนเต็ม k เป็นจำนวนเต็ม r เป็นช่วง j = ช่วง ("E2") สิ้นสุด (xlDown). แถวสำหรับ k = j ถึง 2 ขั้นตอน -1 msgBox k ตั้งค่า r = ช่วง (เซลล์ (k (k), "E"), เซลล์ (k, "E"). End (xlUp)) ถ้า WorksheetFunction.CountIf (r, Cells (k, "E"))> 1 จากนั้น Cells (k, "E"). ลบจบหากถัดไป k สิ้นสุดย่อย
บันทึก
ขอบคุณ venkat1926 สำหรับเคล็ดลับนี้ในฟอรัม