السلام عليكم ورحمة الله وبركاته
إخواني وأحبابي في الله
أقدم لكم اليوم دالة معرفة UDF وجدتها وأعجبتني وأحببت مشاركتكم الدالة لتستفيدوا منها ..
الدالة تقوم بالبحث عن جزء من النص المطلوب البحث عنه وتجلب كل النتائج المطلوبة ، وليتضح عمل الدالة سأقوم بوضع مثال
بفرض أن لديك في ورقة العمل 2 مجموعة من الأسماء الكاملة ، وفي ورقة العمل 1 تريد أن تقوم بالبحث عن اسم Yasser مثلاًُ والاسم موجود في القائمة في ورقة العمل 2 ولكن كجزء من النصوص ... والمطلوب في هذه الحالة هو جلب كل الأسماء التي تحمل الاسم Yasser
هذه صورة من ورقة العمل 2 التي تحتوي على البيانات أو الأسماء
وهذه صورة للأسماء المطلوب البحث عنها ، والنتائج المتوقعة
لعمل المطلوب نقوم بإدراج موديول جديد ، ونضع فيه الدالة المعرفة التالية
CODE
Function AllMatches(src As String, trg As Range) As String
Dim cel As Range
Dim addr As String
With trg
Set cel = .Find(What:=src, LookAt:=xlPart, After:=.Cells(.Cells.Count))
If Not cel Is Nothing Then
addr = cel.Address
Do
AllMatches = AllMatches & " | " & cel.Value
Set cel = .Find(What:=src, LookAt:=xlPart, After:=cel)
If cel Is Nothing Then Exit Do
Loop Until cel.Address = addr
AllMatches = Mid(AllMatches, 4)
End If
End With
End Function
ثم في ورقة العمل 1 نضع المعادلة التالية في الخلية B1 ثم نسحبها لأسفل لنحصل على النتائج المطلوبة
CODE
=AllMatches(A1,Sheet2!$A$1:$A$20)<br />
رابط الملف من هنا
أرجو أن يكون الموضوع مفيد لكم ، وأترككم في رعاية الله
كان معكم أخوكم في الله / ياسر خليل أبو البراء