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: วิธีนับค่าที่ไม่ซ้ำในช่วง