اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

السلام عليكم و رحمة الله وبركاته

مقدمة لفهم الفكرة

اليومين دوول بعمل جدول حصص لمدرستى

و شكل توزيع المدرسين فى الجدول بيكون بالشكل ده  : 

فى الحصة المنفردة بيكون بالشكل ده  :  محمد  فى الخلية 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

تم تعديل بواسطه مختار حسين محمود
  • Like 4
  • Thanks 1
رابط هذا التعليق
شارك

بارك الله فيك اخي مختار 

لكن انت ظلمت الاكسل (حيث انه يمكنه فعل ذلك من خلال هذه المعادلة)

=SUMPRODUCT((LEN($B$4:$I$10)-LEN(SUBSTITUTE($B$4:$I$10,$M$4,"")))/LEN($M$4))

أو هذه( لا تحسب تكرار الاسم في نفس الخلية الا مرة واحدة)

=COUNTIF($B$4:$I$10,"*"&$M$4&"*")

 

  • Like 3
رابط هذا التعليق
شارك

ما شاء الله . عمل رائع

شكرا لك أستاذ مختار على هذا المجهود

وبما أنك تقوم بإعداد الجداول المدرسية فأحببت أن أوجهك لبرنامج شهير يقوم بهذا العمل aSc

تجده هنا  http://www.up-00.com/?SNZA

أو هنا  http://www.mrkzgulf.com/do.php?id=427367

تحياتي

  • Like 2
رابط هذا التعليق
شارك

أستاذى ياسر خليل  شرفنى مروركم و أنت الأروع دائما

أخى قلم الاكسل أشكرك بس بلاش صواعق دى حسيت انى زى راجون

أستاذى سليم شرفنى مروركم  وأشكرك على المعادلة بالفعل أنا ظلمته عن جهل بالمعادلة  لكن رب ضارة نافعة

أشكرك أستاذى أبوعيد على المرور والرابطين  تحياتى للجميع

  • Like 2
رابط هذا التعليق
شارك

16 دقائق مضت, مختار حسين محمود said:

أستاذى ياسر خليل  شرفنى مروركم و أنت الأروع دائما

أخى قلم الاكسل أشكرك بس بلاش صواعق دى حسيت انى زى راجون

أستاذى سليم شرفنى مروركم  وأشكرك على المعادلة بالفعل أنا ظلمته عن جهل بالمعادلة  لكن رب ضارة نافعة

أشكرك أستاذى أبوعيد على المرور والرابطين  تحياتى للجميع

اخي مختار

من اعترف بذنبه لا ذنْب له

لكن لي تساؤل كيف للاستاذ ان يشترك في الحصة مع نفسه (في نفس الحصة محمد + محمد)

رابط هذا التعليق
شارك

أستاذ سليم  أقصد محمد يمكن أن يكون لوحده فى حصة لغة عربية

وممكن يكون فى حصة تربية دينية مع الاستاذ مينا   محمد يدرس دين اسلامى ومينا دين مسيحى 

أخى جلال الجمال نشكرك على المرور العطر على الموضوع كما أشكرك على نشاط فى المنتدى والموضوعات القيمة  تحياتى

  • Like 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
×
×
  • اضف...

Important Information