Vba: วิธีรับค่าที่ไม่ซ้ำจากคอลัมน์


คุณสามารถใช้ฟังก์ชัน AdvancedFilter ใน VBA เพื่อรับรายการค่าที่ไม่ซ้ำจากคอลัมน์ใน Excel ได้อย่างรวดเร็ว

ต่อไปนี้เป็นวิธีทั่วไปในการดำเนินการ:

 Sub GetUniqueValues()

Range(" A1:A11 ").AdvancedFilter_
                Action:=xlFilterCopy, CopyToRange:=Range(" E1 "), Unique:= True

End Sub

ตัวอย่างนี้จะแยกรายการค่าที่ไม่ซ้ำจากช่วง A1:A11 และแสดงจากเซลล์ E1 .

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: รับค่าที่ไม่ซ้ำจากคอลัมน์โดยใช้ VBA

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

สมมติว่าเราต้องการแยกรายการค่าที่ไม่ซ้ำออกจากคอลัมน์ ทีม

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub GetUniqueValues()

Range(" A1:A11 ").AdvancedFilter_
                Action:=xlFilterCopy, CopyToRange:=Range(" E1 "), Unique:= True

End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

ตอนนี้คอลัมน์ E แสดงรายการค่าที่ไม่ซ้ำจากคอลัมน์ ทีม ในชุดข้อมูลดั้งเดิม

โปรดทราบว่าวิธี AdvancedFilter ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ตัวอย่างเช่น หากเรามีชื่อทีม “MAVS” และ “Mavs” อยู่ในคอลัมน์เดียวกัน มาโครนี้จะส่งคืนเฉพาะค่าแรกจากสองค่าที่ปรากฏในคอลัมน์ ทีม เนื่องจากมีการใช้อักขระที่เหมือนกันทุกประการ

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของวิธี AdvancedFilter ได้ใน VBA ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับค่าที่ไม่ซ้ำในช่วง

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *