السلام عليكم و رحمة الله وبركاته
مقدمة لفهم الفكرة
اليومين دوول بعمل جدول حصص لمدرستى
و شكل توزيع المدرسين فى الجدول بيكون بالشكل ده :
فى الحصة المنفردة بيكون بالشكل ده : محمد فى الخلية B2 مثلا
فى الحصة المشتركة بيكون بالشكل ده : محمد + محمود فى الخلية B3 مثلا
وعشان أحسب عدد حصص محمد فى الخليتين بالدالة COUNTIF كان الناتج 1 فقط
ليه الناتج كان 1 مش 2
شفتوا شفتوا حتى الاكسل اللى أكل دماغنا جاى على المدرس و حسب له 1 مش 2
على الرغم من أن الاستاذ محمد الغلبان شغال فى حصتين الاولى لوحده والتانية مشتركة مع الاستاذ محمود
طبعا أنا مدرس زى الأستاذ محمد فوجب عليا أن أنصره على الاكسل الظالم أحيانا وأرجع له حقه
فكانت هذه الدالة المستحدثة عشان تدى الأستاذ محمد حقه وتحسب له كام حصة اشتغل فيها هذا المعلم
****************
اسم الدالة : MokhtarCountif تشبه الدالة COUNTIF فى العمل مع الفارق الفارق أن دالتى تبحث عن النص حتى ان كان النص كلمة من مجموعة كلمات بالخلية
تتكون الدالة من عدد 2 باراميتر : MyVal نوعه String و AddressRange نوعه Range والناتج نوعه Long
Option Explicit
Function MokhtarCountif(MyVal As String, AddressRange As Range) As Long
' Author : Mokhtar
' Release : 2 - 10 - 2016
' The MokhtarCountif function counts the number of a single criterion within a cell or range Of cells
' Name Required/Optional Data Type Description
' MyVal Required String The criteria in the form of a number, expression, or text.
' AddressRange Required Range The cell or range of cells which you want to count within.
' Return Value : Long
'----------------------------------------------------------------------------------------------------
Dim C As Range, Total As Long, Arr() As String, j As Integer
Application.Volatile True
For Each C In AddressRange.Cells
Arr = Split(C, " ")
For j = LBound(Arr) To UBound(Arr)
If Arr(j) = MyVal Then
On Error Resume Next
Total = Total + 1
On Error GoTo 0
End If
Next j
Next C
MokhtarCountif = Total
End Function
أتمنى أن تنال الدالة اعجابكم و منتظر ملاحظاتكم
مع تحياتى
MokhtarCountif udf.rar