Note: The other languages of the website are Google-translated. Back to English

كيفية استخراج قيم فريدة من أعمدة متعددة في إكسيل؟

لنفترض أن لديك عدة أعمدة بقيم متعددة ، فإن بعض القيم مكررة في نفس العمود أو عمود مختلف. والآن تريد العثور على القيم الموجودة في أي من العمودين مرة واحدة فقط. هل هناك أي حيل سريعة يمكنك اتباعها لاستخراج قيم فريدة من عدة أعمدة في Excel؟


استخراج قيم فريدة من أعمدة متعددة باستخدام صيغة صفيف

فيما يلي صيغة صفيف يمكن أن تساعدك أيضًا في استخراج القيم الفريدة من أعمدة متعددة.

1. بافتراض القيم الخاصة بك في النطاق أكسنومك: كسنومكس، الرجاء إدخال الصيغة التالية في الخلية E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""

ملاحظة: في الصيغة أعلاه ، A2: C9 يشير إلى نطاق الخلايا التي تريد استخراج القيم الفريدة ، E1: E1 هي الخلية الأولى في العمود الذي تريد وضع النتيجة فيه ، $ 2: $ 9 يقف أمام الصفوف التي تحتوي على الخلايا التي تريد استخدامها ، و $ أ: $ ج يشير إلى الأعمدة التي تحتوي على الخلايا التي تريد استخدامها. يرجى تغييرها بنفسك.

2. ثم اضغط Shift + Ctrl + Enter معًا ، ثم اسحب مقبض التعبئة لاستخراج القيم الفريدة حتى تظهر الخلايا الفارغة. انظر لقطة الشاشة:


استخراج قيم فريدة من أعمدة متعددة باستخدام Pivot Table

إذا كنت معتادًا على الجدول المحوري ، يمكنك بسهولة استخراج القيم الفريدة من عدة أعمدة باتباع الخطوات التالية:

1. في البداية ، يرجى إدخال عمود فارغ جديد على يسار بياناتك ، في هذا المثال ، سأدرج العمود A بجانب البيانات الأصلية.

2. انقر فوق خلية واحدة في البيانات الخاصة بك ، واضغط على ألت + D مفاتيح ، ثم اضغط P مفتاح على الفور لفتح معالج PivotTable و PivotChart، اختر نطاقات التوحيد المتعددة في المعالج الخطوة 1 ، انظر الصورة:

3. ثم اضغط التالى زر ، تحقق قم بإنشاء حقل صفحة واحد لي الخيار في المعالج الخطوة 2 ، انظر الصورة:

4. استمر في النقر التالى ، انقر لتحديد نطاق البيانات الذي يتضمن عمود الخلايا الجديد الأيسر ، ثم انقر فوق أضف زر لإضافة نطاق البيانات إلى كل النطاقات مربع القائمة ، انظر لقطة الشاشة:

5. بعد تحديد نطاق البيانات ، تابع النقر فوق التالى، في خطوة المعالج 3 ، اختر المكان الذي تريد وضع تقرير PivotTable فيه كما تريد.

6. أخيرًا ، انقر فوق نهاية لإكمال المعالج ، وتم إنشاء جدول محوري في ورقة العمل الحالية ، ثم قم بإلغاء تحديد جميع الحقول من اختر الحقول لإضافتها إلى التقرير القسم ، انظر لقطة الشاشة:

7. ثم تحقق من الحقل القيمة أو اسحب القيمة إلى الصفوف التسمية ، ستحصل الآن على القيم الفريدة من الأعمدة المتعددة على النحو التالي:


استخرج القيم الفريدة من أعمدة متعددة برمز VBA

باستخدام رمز VBA التالي ، يمكنك أيضًا استخراج القيم الفريدة من أعمدة متعددة.

1. اضغط باستمرار على ALT + F11 مفاتيح ، ويفتح نافذة ميكروسوفت فيسوال باسيك للتطبيقات.

2. انقر إدراج > وحدة، والصق التعليمة البرمجية التالية في نافذة الوحدة النمطية.

فبا: استخراج قيم فريدة من أعمدة متعددة

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. ثم اضغط F5 لتشغيل هذا الرمز ، وسيظهر مربع موجه لتذكيرك بتحديد نطاق البيانات الذي تريد استخدامه. انظر لقطة الشاشة:

4. ثم انقر فوق OK، سيظهر مربع موجه آخر للسماح لك باختيار مكان لوضع النتيجة ، انظر لقطة الشاشة:

5. انقر OK لإغلاق مربع الحوار هذا ، وقد تم استخراج جميع القيم الفريدة مرة واحدة.


استخرج قيمًا فريدة من عمود واحد بميزة مذهلة

في بعض الأحيان ، تحتاج إلى استخراج القيم الفريدة من عمود واحد ، فالطرق المذكورة أعلاه لن تساعدك ، هنا ، يمكنني أن أوصي بأداة مفيدة-كوتولس ل إكسيل، بما لديها استخراج الخلايا بقيم فريدة (تضمين أول تكرار) فائدة ، يمكنك استخراج القيم الفريدة بسرعة.

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

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

1. انقر فوق الخلية حيث تريد إخراج النتيجة. (ملاحظة: لا تنقر فوق خلية في الصف الأول.)

2. ثم اضغط كوتولس > مساعد الصيغة > مساعد الصيغة، انظر لقطة الشاشة:

3. في مساعد الصيغ مربع الحوار ، يرجى القيام بالعمليات التالية:

  • اختار نص الخيار من المعادلة النوع قائمة منسدلة؛
  • ثم اختر استخراج الخلايا بقيم فريدة (تضمين أول تكرار) من اختر فرومولا مربع القائمة
  • على اليمين مدخلات الحجج ، حدد قائمة الخلايا التي تريد استخراج القيم الفريدة.

4. ثم اضغط Ok ، واسحب مقبض التعبئة إلى الخلايا التي تريد سرد جميع القيم الفريدة حتى يتم عرض الخلايا الفارغة ، انظر الصورة:

تحميل مجاني Kutools لبرنامج Excel الآن!


المزيد من المقالات ذات الصلة:

  • عد عدد القيم الفريدة والمميزة من القائمة
  • لنفترض أن لديك قائمة طويلة من القيم مع بعض العناصر المكررة ، الآن ، تريد حساب عدد القيم الفريدة (القيم التي تظهر في القائمة مرة واحدة فقط) أو القيم المميزة (جميع القيم المختلفة في القائمة ، فهذا يعني فريد القيم + القيم المكررة الأولى) في عمود كما هو موضح في لقطة الشاشة اليسرى. في هذا المقال سأتحدث عن كيفية التعامل مع هذه الوظيفة في Excel.
  • استخراج القيم الفريدة على أساس المعايير في Excel
  • لنفترض أن لديك نطاق البيانات التالي الذي تريد سرد الأسماء الفريدة للعمود B فقط بناءً على معيار محدد للعمود A للحصول على النتيجة كما هو موضح أدناه. كيف يمكنك التعامل مع هذه المهمة في Excel بسرعة وسهولة؟
  • السماح فقط بالقيم الفريدة في Excel
  • إذا كنت تريد الاحتفاظ بالقيم الفريدة فقط التي يتم إدخالها في عمود من ورقة العمل ومنع التكرارات ، فستقدم لك هذه المقالة بعض الحيل السريعة للتعامل مع هذه المهمة.
  • جمع القيم الفريدة بناءً على المعايير في Excel
  • على سبيل المثال ، لدي مجموعة من البيانات التي تحتوي على أعمدة الاسم والنظام ، الآن ، لتلخيص القيم الفريدة فقط في عمود الأمر بناءً على عمود الاسم كما هو موضح في لقطة الشاشة التالية. كيف تحل هذه المهمة بسرعة وسهولة في Excel؟

أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (31)
تقييم شنومك من شنومكس · تصنيفات 1
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Is this formula complete? =INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"",
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا لم يتم إصلاحه بعد: حزين:
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يا له من مضيعة للوقت ..... الصيغة لا تعمل
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا لك!!! لقد أمضيت ساعات في محاولة القيام بذلك ومعرفة ما حدث لمعالج Pivot (مقالة أخرى).
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أستخدم كود VBA الخاص بك ، لكن لا أريد أن يظهر المربع. بدلاً من ذلك ، أريد تحديد نطاق الخلايا الذي يجب استخدامه بالضبط في كل مرة والمربع المحدد لوضع الإخراج فيه. سيكون نطاق الإدخال والإخراج على ورقتين مختلفتين. كيف أقوم بتحديث VBA للقيام بذلك؟ شكرًا لك!!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يا! هل يعرف أحد لماذا يبدو أن هذه الصيغة تؤدي إلى خطأ بعد الصف 87؟ مثل ، إنه يعمل بشكل مثالي وبعد ذلك في نقطة معينة يعيد لي أخطاء لكل صف .. وهو الأسوأ! لأنني قريب جدًا مما أحتاجه هنا بالضبط ...
تم تصغير هذا التعليق بواسطة المشرف على الموقع
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"" It doesn't work
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أريد استخراج خلايا فريدة من العمود الأول عند مقارنتها بأعمدة أخرى (لدي ثلاثة أعمدة غير متساوية) ، كيف يمكنني القيام بذلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لدي ثلاثة أعمدة غير متكافئة وأريد استخراج خلايا فريدة من العمود الأول. كيف يمكنني فعل ذلك؟؟ شكرا لك مقدما
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أحب

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


شكر
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يعلم أي شخص ، بالنسبة للإخراج ، كيفية تحويله إلى عدة أسطر ولكن ليس في سطر واحد؟ (يتم حاليًا تحقيق نتيجة سطر واحد بواسطة دالة ورقة العمل. التحويل ، ولكن ما أريد تحقيقه (كنتيجة لذلك) هو أنه عند التحديد لثلاثة أعمدة ، تكون النتيجة المرجعة أيضًا 3 أعمدة ، بدلاً من عمود واحد
تم تصغير هذا التعليق بواسطة المشرف على الموقع
صيغة الصفيف هذه صحيحة. البيانات الموجودة في الأعمدة من A إلى C ، الصيغة الأولى للنتيجة في الخلية D2 ... تختلف هذه الصيغة عن صيغة الصفيف الأخرى التي أحدثها نسخ الصيغة لأسفل و Ctrl + Shift + أدخل الصيغة بالكامل. ومع ذلك ، يجب إجراء صيغة الصفيف هذه باستخدام Ctrl + Shift + Enter في الخلية الأولى والنسخ لأسفل.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
موكاس جراسياس بور لا ماكرو !!! لي fue muy use
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لقد قمت بالتعديل على جدول البيانات الخاص بي ولكني أعيد فقط القيمة الأولى في المصفوفة المحددة ... ما الذي أفتقده؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كودي
تعمل الصيغة أعلاه بشكل جيد في ورقة العمل الخاصة بي ، هل يمكنك إعطاء لقطة شاشة لمشكلة البيانات الخاصة بك هنا؟
شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
فيما يتعلق بإصدار الصيغة ، هل يمكنك أن تشرح بمزيد من التفصيل ما يفعله هذا الجزء؟ *100+COLUMN($A:$C),7^8)),"R0C00") على وجه التحديد ، ما هي ملفات * 100, 7 ^ 8و "R0C000" عمل؟ أنا أفهم كل شيء آخر ، لكن لا يمكنني معرفة الغرض من ذلك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
متأخر قليلا عن ردي هنا ولكن ...
ROW ($ 2: 9 $) * 100 - هذا هو ضرب رقم الصف * 100 ، لذلك إذا كان في الصف 5 ، فالرقم الآن هو 500
COLUMN ($ A: $ C) - يُضاف هذا إلى الصف * رقم 100 ، لذلك إذا كان الصف 5 عمود 2 ، فإن الرقم هو 502.
7 ^ 8)) ، - هذا (على ما أظن) هو الحصول على قيمة قصوى للبيان min من وقت سابق.
"R0C00") - يقوم بتنسيق النص بناءً على الرقم. في المثال ، كان لدينا 502 ، وهذا يعطي R5C02 (الصف 5 ، العمود 02).

إذا كان لديك الكثير من الأعمدة ولكن ليس لديك العديد من الصفوف ، فيمكنك تغييرها إلى ROW ($ 2: $ 9) *1000+ COLUMN ($ A: $ C)، 7 ^ 8)) ، "R0C000")
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا على الكود. أنا أستخدم رمز VBA لهذه الصفحة. هل هناك طريقة لإضافة رمز فرز بعد استخراج القيم الفريدة لفرزها تلقائيًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يمكننا إنشاء دالة uniqdata بدلاً من الماكرو؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، İlhan , إذا كنت تحب وظيفة محددة من قبل المستخدم لإنشاء صيغة لحل هذه المشكلة ، فقد يساعدك الرمز أدناه: بعد إدخال الرمز ، حدد قائمة الخلايا التي تريد وضع النتائج فيها. ثم اكتب هذه الصيغة:= Uniques (A1: C4)  في شريط الصيغة اضغط CTRL + SHIFT + ENTER مفاتيح معا. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Czy إلى żart؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تعمل صيغة الصفيف الموجودة في الجزء العلوي بشكل رائع عند استخدامها مع البيانات الموجودة في نفس الورقة ، ولكن عندما أحاول استخدامها للإشارة إلى نفس البيانات الدقيقة من ورقة أخرى ، لا تُرجع الصيغة أي شيء. أنا غير قادر على معرفة السبب. هل هناك قيود مع وظائف الصفيف تمنعك من الرجوع إلى نطاقات في ورقة مختلفة؟

شكرا على اي البصيرة التي يمكنك تقديمها.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ايرين ،

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

على سبيل المثال: الآن البيانات موجودة في الورقة 1 ، أريد الإشارة إلى محتوى الخلية C2 من الورقة 1 في الورقة 2. أولاً ، في أي خليتين في الورقة 2 ، مثل D1 و D2 ، أدخل الورقة 1 و C2 على التوالي. في هذه المرحلة ، أدخل الصيغة في الخلية الفارغة من الورقة 2:
= INDIRECT ("" & D1 & "'!" & D2) ، ثم يمكن إرجاع محتوى الخلية C2 في الورقة 1.

كما ترى ، يجعل الأمور أكثر تعقيدًا. آمل أن يساعد توضيحي. طاب يومك.

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

سعيد للمساعدة. بعد تغيير البيانات الأصلية ، لا يمكن لـ VBA تحديث النتيجة تلقائيًا. وأسهل طريقة يمكنني التفكير فيها هي الضغط على Ctrl + Alt + F9 لتحديث جميع النتائج في أوراق العمل في جميع المصنفات المفتوحة. طاب يومك.

مع خالص الشكر والتقدير،
ماندي
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا لك على هذا المقال الرائع.

بالنسبة للأشخاص الذين يستخدمون ملف مصفوفة صيغية بلغة Excel غير الإنجليزية يجب أن يكون هناك عناية خاصة بسلسلة تنسيق النص: في المثال الخاص بك: "R0C00".
بالنسبة للغة الألمانية ، يُترجم هذا إلى "Z0S00". ومع ذلك ، فإن "S" هو حرف خاص يشير إلى الثواني لتشكيل الوقت. يجب تخطي هذا الحرف وبالتالي فإن سلسلة التنسيق الصحيحة لبرنامج Excel الألماني هي "Z0 \ S00".

آمل أن يساعد هذا شخصًا ما في المستقبل :-)
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL