كيفية العثور على القيم المشتركة في 3 أعمدة في Excel؟
غالبًا ما يتضمن العمل مع البيانات في Excel مقارنة القوائم لتحديد الإدخالات المشتركة أو المكررة. وبينما يعد مقارنة عمودين للعثور على القيم المشتركة مهمة متكررة، هناك حالات تحتاج فيها إلى تحديد القيم التي تظهر في ثلاثة أعمدة منفصلة في نفس الوقت. على سبيل المثال، عند دمج بيانات الاستبيانات، دمج سجلات المبيعات أو تحليل الإدخالات المكررة عبر قوائم متعددة، من المهم استخراج بدقة مجموعة العناصر الموجودة في جميع الأعمدة الثلاثة كما هو موضح في لقطة الشاشة أدناه. يقدم هذا المقال عدة طرق عملية لحل هذه المشكلة في Excel، مما يسمح لك بتحديد القيم المشتركة بين ثلاثة أعمدة بفعالية وموثوقية - سواء كنت تفضل استخدام الصيغ أو VBA.
ابحث عن القيم المشتركة في 3 أعمدة باستخدام صيغ المصفوفات
ماكرو VBA لاستخراج القيم الموجودة في جميع الأعمدة الثلاثة
ابحث عن القيم المشتركة في 3 أعمدة باستخدام صيغ المصفوفات
للعثور واستخراج القيم المشتركة بين ثلاثة أعمدة، يمكنك استخدام صيغ المصفوفات المصممة للبحث عن العناصر التي تظهر في جميع النطاقات المحددة. وهذا مفيد بشكل خاص في مجموعات البيانات التي لا تريد الاعتماد فيها على إضافات Excel الإضافية أو الأدوات الخارجية.
أدخل هذه الصيغة المصفوفة في خلية فارغة حيث تريد عرض أول قيمة مشتركة:
=LOOKUP("zzz",CHOOSE({1,2},"",INDEX(A$2:A$10,MATCH(0,COUNTIF(E$1:E1,A$2:A$10)+IF(IF(COUNTIF(B$2:B$8,A$2:A$10)>0,1,0)+IF(COUNTIF(C$2:C$9,A$2:A$10)>0,1,0)=2,0,1),0))))
كيفية استخدام هذه الصيغة المصفوفة:
- بعد إدخال الصيغة في الخلية المحددة، اضغط Shift + Ctrl + Enter (وليس فقط Enter). سيحيط Excel الصيغة بأقواس معقوفة للإشارة إلى أنها صيغة مصفوفة.
- اسحب الصيغة لأسفل العمود حتى تظهر خلايا فارغة. ستحصل بذلك على قائمة بجميع القيم المشتركة بين الأعمدة الثلاثة، وستشير الخلايا الفارغة إلى عدم وجود المزيد من التطابقات.
ملاحظات وشروحات حول المعاملات:
- إذا كنت تفضل استخدام صيغة مصفوفة مختلفة، فإن هذه الصيغة أيضًا تعيد جميع القيم الفريدة الموجودة في الأعمدة الثلاثة:
مرة أخرى، تذكر الضغط Shift + Ctrl + Enter بعد كتابة أو لصق الصيغة.=INDEX($A$2:$A$10, MATCH(0, COUNTIF($E$1:E1, $A$2:$A$10)+IF(IF(COUNTIF($B$2:$B$8, $A$2:$A$10)>0,1,0)+IF(COUNTIF($C$2:$C$9, $A$2:$A$10)>0,1,0)=2,0,1),0))
- في هذه الصيغ:
- A2:A10، B2:B8، C2:C9 هي نطاقات البيانات في كل من الأعمدة الثلاثة التي ترغب في مقارنتها.
- E1 يشير إلى الخلية الموجودة مباشرة فوق مكان بدء الصيغة (لمنطق الاستبعاد). قم بتعديل مراجع الخلايا لتتناسب مع نطاقات البيانات الفعلية وموقع ظهور النتائج.
- تعمل هذه الطرق بشكل جيد لمجموعات البيانات المتوسطة ولكن قد تصبح بطيئة مع أحجام كبيرة جدًا بسبب متطلبات الحساب الخاصة بصيغ المصفوفات.
- كن حذرًا لتجنب تعديل نطاقات المصدر أثناء التنفيذ، حيث يمكن أن يؤدي ذلك إلى نتائج غير دقيقة أو أخطاء في الصيغ.
- إذا كانت النتيجة تحتوي على صفوف فارغة، فهذا يعني أنه تم استخراج جميع القيم المشتركة ولم يتبقَ أي نقاط تقاطع أخرى في الخلايا المتبقية.

اكتشف سحر Excel مع Kutools AI
- التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
- الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
- برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
- تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
- ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
ماكرو VBA لاستخراج القيم الموجودة في جميع الأعمدة الثلاثة
إذا كنت تفضل نهجًا آليًا لا يتطلب إدخال أو نسخ صيغ معقدة، يمكنك استخدام VBA في Excel للتكرار عبر بياناتك وإخراج القيم الموجودة فقط في كل من الأعمدة الثلاثة. هذه الطريقة مفيدة بشكل خاص مع مجموعات البيانات الكبيرة أو عند العمل مع نطاقات ديناميكية، حيث إن VBA أكثر كفاءة في التعامل مع المهام المتكررة ومعايير التخصيص.
1. انقر فوق Developer > Visual Basic لفتح محرر VBA (إذا لم يكن شريط Developer مرئيًا، يمكنك تفعيله عبر File > Options > Customize Ribbon).
2. في محرر VBA، انقر فوق Insert > Module لإنشاء وحدة جديدة. ثم قم بلصق الكود أدناه في نافذة الوحدة:
Sub FindCommonValuesThreeColumns()
Dim dict1 As Object
Dim dict2 As Object
Dim dict3 As Object
Dim resultDict As Object
Dim rngA As Range
Dim rngB As Range
Dim rngC As Range
Dim cell As Range
Dim outputRow As Long
Dim key As Variant
On Error Resume Next
Set dict1 = CreateObject("Scripting.Dictionary")
Set dict2 = CreateObject("Scripting.Dictionary")
Set dict3 = CreateObject("Scripting.Dictionary")
Set resultDict = CreateObject("Scripting.Dictionary")
' Prompt the user to select the three column ranges
Set rngA = Application.InputBox("Select the first column range", "KutoolsforExcel", Selection.Address, Type:=8)
Set rngB = Application.InputBox("Select the second column range", "KutoolsforExcel", Selection.Address, Type:=8)
Set rngC = Application.InputBox("Select the third column range", "KutoolsforExcel", Selection.Address, Type:=8)
' Store all unique values from each column into corresponding dictionaries
For Each cell In rngA
If Not dict1.exists(cell.Value) And cell.Value <> "" Then
dict1.Add cell.Value, 1
End If
Next
For Each cell In rngB
If Not dict2.exists(cell.Value) And cell.Value <> "" Then
dict2.Add cell.Value, 1
End If
Next
For Each cell In rngC
If Not dict3.exists(cell.Value) And cell.Value <> "" Then
dict3.Add cell.Value, 1
End If
Next
' Check which values exist in all three dictionaries
For Each key In dict1.keys
If dict2.exists(key) And dict3.exists(key) Then
resultDict.Add key, 1
End If
Next
' Output result to next empty column on the active sheet
outputRow = 1
For Each key In resultDict.keys
Cells(outputRow, Columns.Count).End(xlToLeft).Offset(0, 1).Value = key
outputRow = outputRow + 1
Next
MsgBox "Common values extracted next to your data.", vbInformation, "KutoolsforExcel"
End Sub
3. في نافذة VBA، ومع الوحدة المحددة، اضغط F5 أو انقر فوق زر التشغيل (▶) لتنفيذ الكود. سيتم مطالبتك بالتتابع لاختيار كل واحد من نطاقات الأعمدة الثلاثة التي ترغب في مقارنتها. استخدم فأرتك لتحديد الخلايا المناسبة أثناء كل موجه.
4. سيقوم الماكرو بمعالجة اختياراتك وإخراج جميع القيم الموجودة في الأعمدة الثلاثة في العمود الفارغ التالي إلى يمين مجموعة البيانات الحالية، بدءًا من الصف الأول.
هذه الطريقة فعالة عند العمل مع مجموعات بيانات كبيرة أو ديناميكية ويمكن توسيعها بسهولة لأربعة أعمدة أو أكثر عن طريق تكرار منطق القاموس. تذكر دائمًا حفظ مصنفك قبل تشغيل الماكرو، حيث لا يمكن التراجع عن التغييرات غير المحفوظة إذا كنت ترغب في العودة.
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel باستخدام Kutools لـ Excel، واختبر كفاءة غير مسبوقة. Kutools لـ Excel يوفر أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة الأكثر أهمية بالنسبة لك...
Office Tab يجلب واجهة التبويب إلى Office ويجعل عملك أسهل بكثير
- تفعيل تحرير وقراءة عبر التبويبات في Word، Excel، PowerPoint، Publisher، Access، Visio وProject.
- افتح وأنشئ عدة مستندات في تبويبات جديدة في نفس النافذة، بدلاً من نوافذ مستقلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات اليومية من الفأرة!
جميع إضافات Kutools. مثبت واحد
حزمة Kutools for Office تجمع بين إضافات Excel وWord وOutlook وPowerPoint إضافة إلى Office Tab Pro، وهي مثالية للفرق التي تعمل عبر تطبيقات Office.





- حزمة الكل في واحد — إضافات Excel وWord وOutlook وPowerPoint + Office Tab Pro
- مثبّت واحد، ترخيص واحد — إعداد في دقائق (جاهز لـ MSI)
- الأداء الأفضل معًا — إنتاجية مُبسطة عبر تطبيقات Office
- تجربة كاملة لمدة30 يومًا — بدون تسجيل، بدون بطاقة ائتمان
- قيمة رائعة — وفر مقارنة بشراء الإضافات بشكل منفرد