كيف يمكنك العثور على القيم المشتركة بين ثلاثة أعمدة في 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 تشير إلى الخلية الموجودة مباشرةً فوق المكان الذي تبدأ فيه صيغتك (لمنطق الاستبعاد). قم بتعديل مراجع الخلايا لتتناسب مع النطاق الفعلي لديك والموقع الذي ترغب في ظهور النتائج فيه.
- تعمل هذه الطرق بكفاءة مع مجموعات البيانات المتوسطة، لكنها قد تتباطأ عند التعامل مع أحجام بيانات كبيرة جدًّا بسبب الأعباء الحسابية المرتبطة بصيغ الصفائف.
- احرص على تجنّب تعديل نطاق المصدر أثناء التنفيذ، فقد يؤدي ذلك إلى نتائج غير دقيقة أو أخطاء في الصيغ.
- إذا احتوت النتيجة على صفوف فارغة، فهذا يعني أن جميع القيم المشتركة قد تم استخراجها بالفعل، ولا تحتوي الخلايا المتبقية على أي تقاطعات إضافية.

افتح سحر إكسل مع KUTOOLS AI
- التنفيذ الذكي: نفِّذ عمليات الخلايا، وحلِّل البيانات، وأنشئ المخططات البيانية — كل ذلك بأوامر بسيطة!
- الصيغ المخصصة: أنشئ صيغًا مخصصة لتبسيط سير عملك.
- برمجة VBA: اكتب وأَنفِذ أكواد VBA بسلاسة تامة.
- تفسير الصيغ: افهم الصيغ المعقدة بسهولة!
- ترجمة النصوص: اكسر الحواجز اللغوية في جداولك الإلكترونية!
ماكرو VBA لاستخراج القيم الموجودة في الأعمدة الثلاثة جميعها
إذا كنت تفضّل نهجًا آليًّا يخلو من الحاجة إلى إدخال صيغ معقدة أو نسخها، يمكنك استخدام VBA في Excel للمرور عبر بياناتك واستخراج القيم الموجودة في كل عمود من الأعمدة الثلاثة فقط. وتُعد هذه الطريقة مثالية لمجموعات البيانات الضخمة أو عند التعامل مع نطاقات ديناميكية، نظرًا لكفاءة VBA العالية في تنفيذ المهام المتكررة وتطبيق المعايير المخصصة.
1. انقر علىالمطوّر > Visual Basicلفتح محرر VBA (إذا لم تكن علامة التبويب)المطوّرظاهرة، يمكنك تمكينها عبرملف > خيارات > تخصيص الشريط).
2. في محرر VBA، انقر علىإدراج > وحدة نمطيةلإنشاء وحدة جديدة. ثم الصق الكود أدناه في نافذة الوحدة:
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 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل