logo

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



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





08-10-2020 10:51 صباحاً
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
السلام عليكم ورحمة الله وبركاته

إخواني وأحبابي في الله

أثناء تصفحي للفيس بوك بالأمس صادفني السؤال التالي

p6yg7_00

في الحقيقة الموضوع جذبني حيث أنه جديد ولم يطلبه أحد من قبل.
المشكلة تتمحور في أن الأسماء باللغة العربية يمكن كتابتها بأكثر من شكل ، وهذا ما يشكل المشكلة عند حدوث تكرار فمن الصعب معرفة التكرار لأن القيم تكون مختلفة حتى ولو كان الاختلاف مجرد مسافة (كما ذكر أخونا يوسف في السؤال [محمد سلطان] و[محمدسلطان] كلاهما نفس الاسم لكن الاسم الأول به مسافة بينما الاسم الثاني ليس به مسافة)

من هنا تأتي فكرة الحل في أن نقوم بتوحيد القيم وذلك عن طريق دالة معرفة قمت بعملها لإزالة الحروف المتشابهة والمحتملة مثل أ وإ و ا و آ ، أي يتم استبدال هذه الحروف بحرف واحد وليكن ا فقط .. أيضاً يتم استبدال الألف اللينة ى بالياء التي تحتها نقطتين ي ...
هذا الأمر في عمليات الاستبدال لتوحيد القيم في الأسماء ، كما يتم إزالة أية مسافات (هذه هي الخطوة الأولى)

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

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

UMCQx_01

نلاحظ على سبيل المثال الاسم محمد سلطان علي تم تكراره في الخلايا A2 و A5 و A8 بأشكال مختلفة ، وهذا الاسم بهذا الشكل في الثلاثة خلايا يشكل مجموعة (وسيكون اسم المجموعة Duplicate يليها مسافة ثم رقم المجموعة)

سيتم استخدام العمود الثاني لإظهار نتائج التكرار فيه ، والعمود الثالث سيكون عمود مساعد ستوضع فيه الأسماء بعد توحيد الاختلاف

وأخيراً إليكم الكود المستخدم في تنفيذ المطلوب ، ويوضع الكود في موديول عادي
CODE
Sub Find_Duplicate_Arabic_Names()
    Dim a, e, x(), dic As Object, cel As Range, arr() As String, lr As Long, i As Long, j As Long
    Application.ScreenUpdating = False
        a = Range("A1").CurrentRegion.Resize(, 3).Value
        Set dic = CreateObject("Scripting.Dictionary")
        For j = 2 To UBound(a)
            a(j, 3) = MyReplace(a(j, 1))
        Next j
        Range("A1").Resize(UBound(a, 1), UBound(a, 2)).Value = a
        lr = Cells(Rows.Count, 3).End(xlUp).Row
        With dic
            .CompareMode = vbTextCompare
            For Each cel In Range("C1:C" & lr)
                If Not .Exists(cel.Value) Then
                    .Item(cel.Value) = cel.Value & "^" & cel.Address(0, 0)
                Else
                    .Item(cel.Value) = Split(.Item(cel.Value), "^")(0) & " | " & cel.Value & "^" & Split(.Item(cel.Value), "^")(1) & " | " & cel.Address(0, 0)
                End If
            Next cel
            If .Count Then
                ReDim x(1 To .Count, 1 To 2)
                For Each e In .Keys
                    If InStr(.Item(e), "|") > 0 Then
                        i = i + 1
                        arr = Split(Split(.Item(e), "^")(1), "|")
                        For j = LBound(arr) To UBound(arr)
                            Set cel = Range(Trim(arr(j)))
                            Cells(cel.Row, cel.Column - 1).Value = "Duplicate " & CStr(i)
                        Next j
                    End If
                Next e
            End If
        End With
        Range("B1").Value = "Output"
        Columns(3).ClearContents
    Application.ScreenUpdating = True
End Sub

Function MyReplace(ByVal s As String) As String
    Dim a, b, e, i As Long
    a = Array(" ", ChrW(1571), ChrW(1573), ChrW(1570), ChrW(1609), ChrW(1577))
    b = Array("", ChrW(1575), ChrW(1575), ChrW(1575), ChrW(1610), ChrW(1607))
    For Each e In a
        s = Replace(s, a(i), b(i))
        i = i + 1
    Next e
    MyReplace = s
End Function



وهذا هو شكل ورقة العمل بعد تنفيذ الكود

BRF0w_02

نلاحظ أن كل مجموعة أسماء لها رقم مختلف ، لذا يسهل الآن عمل فلتر باسم المجموعة في العمود الثاني لمعرفة الأسماء المكررة.

hzvrA_03


كان معكم أخوكم في الله / ياسر خليل أبو البراء
 
 
  T5308_Find Duplicate Arabic Names YasserKhalil Excel-Egy.rar   تحميل rar مرات التحميل :(27)
الحجم :(22.28) KB


أثارت هذه المشاركة إعجاب: محمد حسن المحمد، علي بطيخ سالم، ali mohamed ali، السعيد الجزائري، abdulwahed catran، hassona229، محمد الدسوقى، Dreamier، أسامه الجعفري، ابو طيبه، أبو سجده، تاج الدين،



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  08-10-2020 01:01 مساءً   [1]
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2017
رقم العضوية : 1757
المشاركات : 1766
رصيد العضو : 1
الدولة : مصر
الجنس :
الدعوات : 2
قوة السمعة : 9687
الاعجاب : 26
أحسنت استاذ ياسر عمل رائع جعله الله فى ميزان حسناتك

أثارت هذه المشاركة إعجاب: YasserKhalil، محمد الدسوقى، تاج الدين،


توقيع :ali mohamed ali


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

look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  08-10-2020 04:05 مساءً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
أحسن الله إليك أخي العزيز علي وجزاك الله خيراً على تشجيعك الدائم في هذا المنتدى النائم.

أثارت هذه المشاركة إعجاب: محمد الدسوقى،



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  08-10-2020 08:30 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2018
رقم العضوية : 9257
المشاركات : 803
رصيد العضو : 0
الدولة : مصر
الجنس :
تاريخ الميلاد : 13-9-1980
قوة السمعة : 3951
الاعجاب : 23

جزاكم الله خيرا ابو البراء الغالي وجعله الله في ميزان حسناتكم يوم القيامة


أثارت هذه المشاركة إعجاب: YasserKhalil، محمد الدسوقى،



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  08-10-2020 08:39 مساءً   [4]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
وجزيت خيراً أخي الحبيب حسونة ومشكور على دعواتك الطيبة.

أثارت هذه المشاركة إعجاب: hassona229، محمد الدسوقى،



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  08-10-2020 09:54 مساءً   [5]
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 47
المشاركات : 820
رصيد العضو : 0
الجنس :
تاريخ الميلاد : 14-10-1973
الدعوات : 79
قوة السمعة : 8468
الاعجاب : 12
جزاكم الله خيرا استاذ ياسر
على هذه الروائع

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



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  08-10-2020 10:12 مساءً   [6]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
وجزيت بمثل ما دعوت لي وزيادة أخي وحبيبي في الله محمد الدسوقي وكم نشتاق لتواجدك الدائم بيننا في المنتدى.

أثارت هذه المشاركة إعجاب: محمد الدسوقى،



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  09-10-2020 04:11 مساءً   [7]
معلومات الكاتب ▼
تاريخ الإنضمام : 23-01-2018
رقم العضوية : 3965
المشاركات : 45
رصيد العضو : 0
الجنس :
تاريخ الميلاد : 25-10-1981
الدعوات : 1
قوة السمعة : 83
الاعجاب : 0
ابداع اسطوره الاكسيل استاذنا ياسر 123

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

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



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  09-10-2020 06:03 مساءً   [8]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
تسلم أخي العزيز ومشكور على مرورك العطر.




look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  15-12-2020 12:40 مساءً   [9]
معلومات الكاتب ▼
تاريخ الإنضمام : 01-02-2018
رقم العضوية : 4153
المشاركات : 43
رصيد العضو : 0
الجنس :
تاريخ الميلاد : 4-11-66
قوة السمعة : 50
الاعجاب : 2
الأساذ / ياسر خليل
بارك الله فيك

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



look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  15-12-2020 01:03 مساءً   [10]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
تسلم أخي الكريم تاج الدين ومشكور على مرورك العطر.




look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  30-01-2021 08:02 مساءً   [11]
معلومات الكاتب ▼
تاريخ الإنضمام : 13-01-2021
رقم العضوية : 21456
المشاركات : 2
رصيد العضو : 0
الجنس :
تاريخ الميلاد : 25-3-1973
قوة السمعة : 12
الاعجاب : 0
كل الشكر للاستاذ ياسر عندي مشكلة بعدم تحميل الملف المرفق ارجو المساعدة جزاكم الله خيرا




look/images/icons/i1.gif اكتشاف الأسماء العربية المكررة Find Duplicate Arabic Names
  31-01-2021 08:18 صباحاً   [12]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
وجزيت خيراً أخي الكريم
تم إعادة رفع الملف على موقع آخر لأن الموقع الذي كنت أقوم برفع الملفات عليه يقوم بحذف الملفات.




اضافة رد جديد اضافة موضوع جديد
الصفحة 2 من 2 < 1 2 >




المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
حصرياً استخراج الأسماء العربية الخاطئة Extract Invalid Arabic Names YasserKhalil
15 2936 YasserKhalil

الكلمات الدلالية
Names ، Duplicate ، Arabic ، Find ، المكررة ، العربية ، اكتشاف ، الأسماء ،









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

الساعة الآن 03:40 AM