كيفية مقارنة القيم المفصولة بفواصل في خليتين وإرجاع القيم المكررة أو الفريدة في Excel؟
كما هو موضح في لقطة الشاشة أدناه، هناك عمودان - العمود الأول والعمود الثاني، تحتوي كل خلية في العمود على أرقام مفصولة بفواصل. لمقارنة الأرقام المفصولة بفواصل في العمود الأول بمحتويات الخلية في نفس الصف من العمود الثاني وإرجاع جميع القيم المكررة أو الفريدة، ما الذي يمكنك فعله؟
يقدم هذا البرنامج التعليمي طريقتين لمساعدتك على إنجاز هذه المهمة.
قارن بين القيم المفصولة بفواصل في خليتين وأعد القيم المكررة أو الفريدة باستخدام الصيغ
يوفر هذا القسم صيغتين لمساعدتك على مقارنة القيم المفصولة بفواصل في خليتين وإرجاع القيم المكررة أو الفريدة بينهما.
ملاحظة: تعمل الصيغ التالية فقط في Excel 365. إذا كنت تستخدم إصدارات أخرى من Excel، جرب استخدام طريقة VBA أدناه.
خذ العمودين أعلاه كمثال، لمقارنة الأرقام المفصولة بفواصل في العمود الأول بالأرقام المفصولة بفواصل في نفس صف العمود الثاني وإرجاع القيم المكررة أو الفريدة، يرجى القيام بما يلي.
إرجاع القيم المكررة
1. حدد خلية لإخراج الأرقام المكررة بين الخليتين المحددتين اللتين تحتويان على أرقام مفصولة بفواصل، في هذه الحالة، اخترت الخلية D2، ثم أدخل الصيغة أدناه واضغط على مفتاح الإدخال Enter. حدد الخلية التي تحتوي على الصيغة واسحب مقبض التعبئة التلقائي الخاص بها للأسفل للحصول على الأرقام المكررة بين الخلايا في الصفوف الأخرى.
=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))
إرجاع القيم الفريدة
للمساعدة في إرجاع الأرقام الفريدة بين الخليتين المحددتين اللتين تحتويان على أرقام مفصولة بفواصل في نفس الصف، يمكن أن تساعد الصيغة التالية.
1. حدد خلية لإخراج الأرقام الفريدة، في هذه الحالة، اخترت الخلية E2، ثم أدخل الصيغة أدناه واضغط على مفتاح الإدخال Enter. حدد الخلية التي تحتوي على الصيغة واسحب مقبض التعبئة التلقائي الخاص بها للأسفل للحصول على الأرقام الفريدة بين الخلايا في الصفوف الأخرى.
=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))
ملاحظات:

اكتشف سحر Excel مع Kutools AI
- التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
- الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
- برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
- تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
- ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
قارن بين عمودين بالقيم المفصولة بفواصل وأعد القيم المكررة أو الفريدة باستخدام VBA
تساعد الدالة المعرفة من قبل المستخدم المقدمة في هذا القسم على مقارنة القيم المفصولة بفواصل في خليتين محددتين وإرجاع القيم المكررة أو الفريدة بينهما. يرجى القيام بما يلي.
خذ نفس المثال أعلاه، لمقارنة الأرقام المفصولة بفواصل في العمود الأول بالأرقام المفصولة بفواصل في نفس صف العمود الثاني وإرجاع القيم المكررة أو الفريدة، يرجى تجربة الدالة المعرفة من قبل المستخدم في هذا القسم.
1. في المصنف المفتوح، اضغط على مفتاحي Alt + F11 لفتح نافذة Microsoft Visual Basic for Applications.
2. في نافذة Microsoft Visual Basic for Applications، انقر فوق إدراج > وحدة، وانسخ الكود البرمجي التالي VBA في نافذة الوحدة (الرمز).
كود VBA: قارن بين القيم المفصولة بفواصل في خليتين وأعد القيم المكررة/الفريدة
Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
Dim R1Arr As Variant
Dim R2Arr As Variant
Dim Ans1 As String
Dim Ans2 As String
Dim Separator As String
Dim d1 As New Dictionary
Dim d2 As New Dictionary
Dim d3 As New Dictionary
Application.Volatile
Separator = ", "
R1Arr = Split(Rng1.Value, Separator)
R2Arr = Split(Rng2.Value, Separator)
Ans1 = ""
Ans2 = ""
For Each ch In R2Arr
If Not d2.Exists(ch) Then
d2.Add ch, "1"
End If
Next
If Op Then
For Each ch In R1Arr
If d2.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans1 = Ans1 & ch & Separator
End If
End If
Next
If Ans1 <> "" Then
Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
End If
COMPARE = Ans1
Else
For Each ch In R1Arr
If Not d1.Exists(ch) Then
d1.Add ch, "1"
End If
Next
For Each ch In R1Arr
If Not d2.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans2 = Ans2 & ch & Separator
End If
End If
Next
For Each ch In R2Arr
If Not d1.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans2 = Ans2 & ch & Separator
End If
End If
Next
If Ans2 <> "" Then
Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
End If
COMPARE = Ans2
End If
End Function
3. بعد لصق الكود في نافذة الوحدة (الرمز)، انتقل إلى النقر فوق أدوات > مراجع لفتح نافذة مراجع – مشروع VBA، وتحقق من مربع تشغيل البرامج النصية لـ Microsoft واضغط على زر موافق.
4. اضغط على مفتاحي Alt + Q لإغلاق نافذة Microsoft Visual Basic for Applications.
5. الآن تحتاج إلى تطبيق دالتين بشكل منفصل لإرجاع القيم المكررة والفريدة من خليتين تحتويان على قيم مفصولة بفواصل.
إرجاع القيمة المكررة
حدد خلية لإخراج الأرقام المكررة، في هذا المثال، اخترت الخلية D2، ثم أدخل الصيغة أدناه واضغط على مفتاح الإدخال Enter للحصول على الأرقام المكررة بين الخلية A2 و B2.
حدد الخلية التي تحتوي على الصيغة واسحب مقبض التعبئة التلقائي الخاص بها للأسفل للحصول على الأرقام المكررة بين الخلايا في الصفوف الأخرى.
=COMPARE(A2,B2,TRUE)
إرجاع القيم الفريدة
حدد خلية لإخراج الأرقام الفريدة، في هذا المثال، اخترت الخلية E2، ثم أدخل الصيغة أدناه واضغط على مفتاح الإدخال Enter للحصول على الأرقام الفريدة بين الخلية A2 و B2.
حدد الخلية التي تحتوي على الصيغة واسحب مقبض التعبئة التلقائي الخاص بها للأسفل للحصول على الأرقام الفريدة بين الخلايا في الصفوف الأخرى.
=COMPARE(A2,B2,FALSE)
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!