วิธีนับค่าที่ไม่ซ้ำในช่วงโดยใช้ vba


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อนับจำนวนค่าที่ไม่ซ้ำในช่วงโดยใช้ VBA:

 SubCountUnique ()
    Dim Rng As Range, List As Object, UniqueCount As Long
    Set List = CreateObject(" Scripting.Dictionary ")
    
    'count unique values in range A2:A11
    For Each Rng In Range(" A2:A11 ")
      If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
    Next
    
'store unique count
UniqueCount = List.Count
    
    ' display unique count
    MsgBox " Count of Unique Values: " & UniqueCount

End Sub

ตัวอย่างนี้จะนับจำนวนค่าที่ไม่ซ้ำในช่วง A2:A11 แล้วแสดงการนับในกล่องข้อความ

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

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

สมมติว่าเรามีรายชื่อทีมบาสเก็ตบอลใน Excel ต่อไปนี้:

สมมติว่าเราต้องการนับจำนวนชื่อทีมที่ไม่ซ้ำกันในช่วง A2:A11

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

 SubCountUnique()
Dim Rng As Range, List As Object, UniqueCount As Long
    Set List = CreateObject(" Scripting.Dictionary ")
    
    'count unique values in range A2:A11
For Each Rng In Range(" A2:A11 ")
      If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
    Next
    
    'store unique count
    UniqueCount = List.Count
    
    'display unique count
    MsgBox " Count of Unique Values: " & UniqueCount

End Sub

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

หมายเลข VBA เดียว

กล่องข้อความบอกเราว่ามีชื่อทีมที่ไม่ซ้ำกัน 5 ชื่อ

เราสามารถตรวจสอบได้ว่าสิ่งนี้ถูกต้องโดยการระบุชื่อทีมที่ไม่ซ้ำกันแต่ละชื่อด้วยตนเอง:

  • แมฟ
  • ความร้อน
  • อวน
  • นักรบ
  • กษัตริย์

มีชื่อทีมที่แตกต่างกันถึง 5 ชื่อ

หมายเหตุ : หากต้องการนับจำนวนค่าที่ไม่ซ้ำกันในช่วงที่แตกต่างกัน เพียงแทนที่ A2:A11 ใน For Each loop ด้วยช่วงที่แตกต่างกัน

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

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

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

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

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