أكاديمية الصقر للتدريب
(نسخة قابلة للطباعة من الموضوع)
https://excel-egy.com/forum/t5865
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

المتشابهات
Eslam Abdullah 15-04-2021 08:20 مساء
بسم الله والحمد لله والصلاة والسلام على رسول الله
الموضوع دا يعد امتداد لموضوع الدالة المعرفة AlsaqrSimilar لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب

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

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

قمت بإنشاء ملف يقوم بالمساعدة فى 3 امور:
اولا: معرفة نسبة التشابه بين نصين
ثانيا: معادلة تعيد True او False فى حالة تشابه النص المحدد مع غيره وفقا للنسبة المحدده
ثالثا: كود لتقسيم النصوص المتشابهه الى مجموعات وفقا للنسبة المحدده

نبدا نشوف مثال عملى امامنا الان البيانات ادناه:
  A
1 الأسماء
2 اسلام
3 محمد
4 يوسف
5 حسام
6 محمود
7 عبدالله
8 شيرين
9 شيماء
10 ايمان
 
 

1- مثال مع اول دالة وهى SimilarEA لمعرفة نسبة التشابه بين نصين
الباراميتر الاول للنص الاول والباراميتر الثانى للنص الثانى

=SimilarEA(A2,A3)


2- مثال مع دالة ISSimilarEA لارجاع قيمة منطقية True او False فى حالة اذا وجد تشبه لنص داخل نطاق معين ام لا
الباراميتر الاول لادخال النطاق الذى يتم البحث فيه عن تشابه بنسبة محدده
الباراميتر الثانى لادخال الخلية التى يتم البحث عنها داخل النطاق بنسبة محدده
الباراميتر الثالث لادخال النسبة المراد البحث بها وعند تجاهلها تتعبر النسبة الافتراضية هى 70%

=ISSimilarEA($A$2:$A$10,B2,0.5)


3- مثال مع الكود INSimilarEA لانشاء مجموعات وفقا للنصوص المتشابهه بنسبة محددة
اى فى مثالنا السابق ادخلت نسبة 50%
اسلام وايمان وشيماء متشابهين بنسبة 50% اذا يدخلون فى مجموعه 1
ومحمد وحسام ومحمود متشابهين بنسبة 50% اذا يدخلون فى مجموعه 2
والباقى اقل من ذلك يدخلون فى مجموعه 0 اى من دون تشابه
كيف نستخدم الكود بسيطه اعمل Run للكود هيظهر i*nputbox بيقولك دخلى البيانات زى الصوره دى كدا
MTMyOTg5MQ55552021-04-15_200301
وزى ما انا موضح جوا الــ i*nputbox حدد (النطاق) بعدين + بعدين حدد (الخلية) اللى هيبدا يضع فيها النتائج ثم + ثم (النسبة) بس كدا
مثلا اكتب كالتالى مع ملاحظة عدم وضع النسبة بعلامة % ، اكتبها كرقم عشرى كما بالمثال ادناه:

=$A$2:$A$10+$B$2+.7

 

وبس كدا تظهر النتائج بإذن الله تعالى ، ومرفق الملف لللتوضيح بشكل عملى وبالسورس كود

ملاحظة: يمكن حساب نسبة التشابه بــ 3 طرق وكتبتهم كتعليق فوق الاكواد واعتمدت اول طريقة
اللى محتاج الامر فعلا وعايز تطبيق طريقة الحساب الثانية او الثالثه يكلمنى اطبقها ليه بإذن الله تعالى

وبكدا قدمت لكم 3 أمور تساعد فى المتشابهات عسى ان تفيد بإذن الله تعالى

كان معكم أخوكم فى الله اسلام عبدالله















أكاديمية الصقر للتدريب

Powered by PBBoard ©Version 3.0.3