logo

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
abdelmoniem ismail لا تميز خلال هذه الفترة-- لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة توزيع المعلمين في جدول الحصص حسب النصاب بشروط اكسيل مشاريع جاهزه



أهلا وسهلا بك زائرنا الكريم في أكاديمية الصقر للتدريب، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .





09-03-2021 05:26 مساءً
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
بسم الله والحمد لله والصلاة والسلام على رسول الله

قدمت Task للتدريب على الدوال المعرفة ومشكور لاستاذ ياسر واستاذ على ، على المشاركة المثمرة
هدفى كان تعليمى وكانت فكرة لسلسة تحفيزية الى ان مفيش مشاركة لكدا

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

اذا السؤال كان انشاء دالة معرفة لاستخراج تاريخ من النص وليكن النص التالى
"Eslam 1/9/1995 Abdullah"

وهنا اشارك بدالة اسميتها TND وهو اول حرف من ثلاث كلمات وهما (Text,Number,Date)
مع لمسه من المميزات الابداعيه لزيادة الاستفادة اكثر واهتميت بجعل الكود بسيط فى كتابته لاستيعابه بدون تعقيد



ومن هنا موضوع سابق عن الدالة وما يخص استخراج التاريخ من النص

اذا كيف تعمل الدالة ؟!

من مميزات الدالة: يمكنك تحديد الفاصل بين ارقام التاريخ ولو كانت متعددة
ويمكنك تفادى فواصل التاريخ وارقامها اذا كانت تصلح تاريخ عند استخراج القيمة النصية او الرقمية
ويمكنك ضم ارقام التاريخ مع استخراج القيمة الرقمية او ضم الفواصل مع القيمة النصية
الامر هنا مرن والاختيار لك

بناء الدالة كالتالى

CODE
=TND(text,value,[serial])

حيث
text: اجبارى، وهو النص المراد استخراج القيمة منه
value: اجبارى، وهو النمط الذى يستخدم فى استهداف القيمة المراد استخراجها (انظر الملاحظة رقم 1)
[serial]: اختيارى، ويستخدم فى حالة كان هناك اكتر من تاريخ لاستخراج كل تاريخ حسب ترتيبه داخل النص​

ملاحظات على الدالة:
ملاحظة 1:
كيفية استخدام النمط (value): t للنص , n للرقم , d للتاريخ
يمكن كتابة حروف بعد بادئة الثلاثة أحرف أعلاه:
*بعد الحرف (d) الفواصل الخاصة بالتاريخ
*بعد أى من الحرفين (n, t) تجاهل تلك الفواصل بالتاريخ الخاص بها

ملاحظة 2:
فى حال وجد أكثر من تاريخ استخدم المعامل الثالث (Serial) فى استدعاء التاريخ حسب التسلسل فى النص
وعند تجاهله يكن التسلسل رقم 1 هو الإفتراضى


ملاحظة 3:
فى حال تم ادخال بادئة المعامل (text) بحرف غير الأحرف الثلاثة (t, n, d) ترجع الدالة الخطأ value
فى حال تم ادخال رقم تسلسل أقل من 1 فى المعامل (serial) ترجع الدالة الخطأ value


كود الدالة
CODE
Function TND(txt As String, v As String, Optional s As Integer = 1) As Variant
Dim i%, j%, b$, t$, n, d()
    i = 0 / (Left(v, 1) Like "[TtNnDd]" And s > 0): ReDim Preserve d(0): n = ""
    For i = 1 To Len(txt) + 1
        Select Case True
            Case Mid(txt, i, 1) Like "#": d(j) = d(j) & Mid(txt, i, 1)
            Case Mid(txt, i, 2) Like "[" & Mid(v, 2) & "]#" And Mid(txt, i + (i > 1), 2) Like "#[" & Mid(v, 2) & "]": d(j) = d(j) & "/": b = b & Mid(txt, i, 1)
            Case IsDate(d(j)): d(j) = DateValue(d(j)): t = t & Mid(txt, i, 1): b = "": ReDim Preserve d(j + 1): j = j + 1
            Case d(j) <> "": n = Val(n & Replace(d(j), "/", "")): t = t & b & Mid(txt, i, 1): d(j) = "": b = "": Case Else: t = t & Mid(txt, i, 1)
        End Select
    Next i
    d(j) = "": TND = Array(t, n, d(Application.Min(s - 1, j)))(InStr(1, "TND", Left(v, 1), 1) - 1)
End Function


ومرفق ملف العمل بتطبيق الدالة
والتحقق من القيمة المستخرجة إذا كانت نص او رقم او تاريخ
ويوجد دالة معرفة إضافية لغرض التحقق إذا كانت القيمة تاريخ


مع تحياتى أخوكم فى الله ، اسلام عبدالله 81
 
 
  TND UDF.rar   تحميل rar مرات التحميل :(11)
الحجم :(19.129) KB


أثارت هذه المشاركة إعجاب: YasserKhalil، ali mohamed ali، لخضر لخضر، noureddine70، محمد أبو عبدو، elmansy،



look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  10-03-2021 07:49 صباحاً   [1]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10529
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36752
الاعجاب : 184
بارك الله فيك أخي الحبيب إسلام
وعشان نزق الموضوع معاك ونشجع الناس .. إليكم الكود التالي
CODE
Sub Test()
    Dim mydate As Date, s As String
    s = "Eslam 1/9/1995 Abdullah"
    With CreateObject("VBScript.RegExp")
        .Pattern = "\d{1,2}\/\d{1,2}\/\d{2,4}"
        mydate = .Execute(s).Item(0).Value
    End With
    MsgBox mydate
End Sub

أثارت هذه المشاركة إعجاب: hassona229، ali mohamed ali، منجة فاتح، Eslam Abdullah، noureddine70، مدحت حافظ، elmansy،



look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  10-03-2021 11:13 صباحاً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2017
رقم العضوية : 1757
المشاركات : 1765
الدولة : مصر
الجنس :
الدعوات : 2
قوة السمعة : 9685
الاعجاب : 25
بارك الله فيك استاذ ياسر وأكرمك الله استاذ إسلام .. وهناك عدة معادلات تؤدى بالتأكيد هذا الغرض .. فاذا افترضنا ان هذه الجملة بالخلية A2 فبالتالى يمكن استخدام هذه المعادلة المعرفة
CODE

'=getdate2(A2)
Public Function getdate2(fromThis As Range) As String
     Dim retVal As String
    Dim ltr As String, i As Integer, datecheck As Boolean
       retVal = ""
    getdate2 = ""
    datecheck = False
       On Error GoTo last
       If fromThis.Value Like "*/*/*" Then
        datecheck = True
    ElseIf fromThis.Value Like "*-*-*" Then
        datecheck = True
    End If
       For i = 1 To Len(fromThis)
        ltr = Mid(fromThis, i, 1)
        If IsNumeric(ltr) Then
            retVal = retVal & ltr
        ElseIf ltr = "/" And datecheck Then
            retVal = retVal & ltr
        ElseIf ltr = "-" And datecheck Then
            retVal = retVal & "-"
        End If
    Next i
    getdate2 = Format(retVal, "DD/MM/yyyy")
last:
End Function

وهذه معادلات أخرى عادية يتم رسدها لهذا الأمر كالتالى
CODE
=MID(A2,FIND("/",A2)-2,10)

CODE
=IFERROR(DATEVALUE(MID(A2,FIND("/",A2)-2,10)),"")

CODE
=IFERROR(MID(A2,SEARCH("/",A2)-2,10),"")



=IFERROR(MID(A2,SEARCH("/",A2)-2,10),"")



These are other normal equations that are listed for this matter as follows

أثارت هذه المشاركة إعجاب: YasserKhalil، Eslam Abdullah، hassona229، noureddine70، مدحت حافظ،


توقيع :ali mohamed ali


{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى حل أى مشكلة او أستفسار لديك مع إضافة رد بشكره
أو دعوة لمن قدم اليك المساعدة,فالجميع هنا يعمل على مساعدة
الاخرين لوجه الله وان تحتسب له اجر عند الله

look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  10-03-2021 08:25 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
بارك الله فيك ا ياسر وا على
اولا مشكور على حلولكم الرائعه
وايضا الهدف من الموضوع انى اعلم الناس وليس ايجاد حل
فكرت اعملها سلسله هدفها رفع الخبره للزملاء
وبما ان مفيش مشاركه يبقى ملهاش لازمه الفكره دى
بس عشان انا رفعت موضوع مفهاش مشكله ابقى انزل موضوع للنقطه دى
بس هيبقى موضوع بدالة وخلاص بما ان الناس عايزه الجاهز بدل العلم

أثارت هذه المشاركة إعجاب: YasserKhalil، ali mohamed ali، noureddine70،



look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  10-03-2021 09:57 مساءً   [4]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10529
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36752
الاعجاب : 184
لا تيأس أخي الحبيب اسلام
ضع ما لديك من أفكار وابدأ فيما شرعت في التفكير فيه وإن شاء الله عاجلاً أو آجلاً ستجد من يحاول التعلم ويكمل المسيرة.

أثارت هذه المشاركة إعجاب: ali mohamed ali، Eslam Abdullah، noureddine70، مدحت حافظ،



look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  11-03-2021 08:57 مساءً   [5]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
مشكور دعمك المستمر ا/ ياسر
بالنسبالى الموضوع سيان ، حبيت اقدم محتوى لناس مش لاقيه اللى يشجعها
عموما بما انى طرحت الموضوع
تم تعديل الموضوع بمشاركتى لاجابة السؤال المطروح

أثارت هذه المشاركة إعجاب: YasserKhalil، noureddine70،



look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  12-03-2021 02:12 مساءً   [6]
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2018
رقم العضوية : 9257
المشاركات : 802
الدولة : مصر
الجنس :
تاريخ الميلاد : 13-9-1980
قوة السمعة : 3941
الاعجاب : 23
موضوع جميل استاذ اسلام
كانت بدايته هنا على هذا الرابط
http://techno7asry.com/forum/t3782

أثارت هذه المشاركة إعجاب: Eslam Abdullah، YasserKhalil،



look/images/icons/i1.gif الدالة المعرفة TND لاستخراج النص والرقم والتاريخ
  12-03-2021 02:48 مساءً   [7]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
مشكور مرورك الغالى ا/ حسونه
مكنتش فاكر انى رفعت الدالة اصلا وبرضوا حدثتها كتير من الوقت دا biggrin2
ومشكور على ربط المواضيع ببعض لذلك تم وضع الرابط فى الموضوع

أثارت هذه المشاركة إعجاب: YasserKhalil، hassona229،



اضافة رد جديد اضافة موضوع جديد



المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
الدالة المعرفة TrimPro Eslam Abdullah
7 1209 karwan
جمع وطرح أرقام بعدد خانات لا نهاية له بالدالة المعرفة Calc Eslam Abdullah
16 3269 YasserKhalil
الدالة المعرفة LSum Eslam Abdullah
6 1492 محمد أبو عبدو
ادراج اشارة مرجعية باسماء المعرفة في الاكسل jjebril
1 856 jjebril
الدالة المعرفة SumIn Eslam Abdullah
4 1312 Eslam Abdullah

الكلمات الدلالية
استخراج ، تاريخ ،









اخلاء مسئولية: يخلى منتدى أكاديمية الصقر للتدريب مسئوليته عن اى مواضيع او مشاركات تندرج داخل الموقع ويحثكم على التواصل معنا ان كانت هناك اى إنتهاكات تتضمن اى انتهاك لحقوق الملكية الفكرية او الادبية لاى جهة - بالتواصل معنا من خلال نموذج مراسلة الإدارة .وسيتم اتخاذ الاجراءات اللازمة.
سياسة النشر: التعليقات المنشورة لا تعبر عن رأي منتدى أكاديمية الصقر للتدريب ولا نتحمل أي مسؤولية قانونية حيال ذلك ويتحمل كاتبها مسؤولية النشر.

الساعة الآن 12:31 PM