كيفية حساب القيم الفريدة في النطاق باستخدام 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
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يخبرنا مربع الرسالة بوجود 5 أسماء فريدة للفريق.
يمكننا التحقق من صحة ذلك عن طريق تحديد كل اسم من أسماء الفريق الفريدة يدويًا:
- مافس
- حرارة
- شبكات
- المحاربون
- الملوك
هناك في الواقع 5 أسماء فرق فريدة.
ملاحظة : لحساب عدد القيم الفريدة في نطاق مختلف، ما عليك سوى استبدال A2:A11 في حلقة For Each بنطاق مختلف.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية حساب الخلايا التي تحتوي على نص معين
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS