كيف تسلسل القيم الفريدة في Excel؟
إذا كانت لدي قائمة طويلة من القيم التي تم ملؤها ببعض البيانات المكررة ، فأنا الآن أرغب في العثور على القيم الفريدة فقط ثم تجميعها في خلية واحدة. كيف يمكنني التعامل مع هذه المشكلة بسرعة وسهولة في Excel؟
ابحث عن قيم فريدة في عمود وربطها في خلية واحدة برمز VBA
ابحث عن قيم فريدة في عمود وقم بربطها في خلية واحدة باستخدام Kutools for Excel
سرد القيم الفريدة وسلسلة القيم المقابلة باستخدام كود VBA
سرد القيم الفريدة وسلسلة القيم المقابلة مع كوتولس ل إكسيل
ابحث عن قيم فريدة في عمود وربطها في خلية واحدة برمز VBA
ما يلي وظيفة تعريف المستخدم يمكن أن تساعدك في تجميع القيم الفريدة فقط في خلية واحدة من القائمة ، يرجى القيام بما يلي:
1. اضغط باستمرار على ALT + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.
2. انقر إدراج > وحدة، والصق الكود التالي في ملف وحدة نافذة او شباك.
كود فبا: ربط القيم الفريدة في خلية واحدة:
Function ConcatUniq(xRg As Range, xChar As String) As String
'updateby Extendoffice
Dim xCell As Range
Dim xDic As Object
Set xDic = CreateObject("Scripting.Dictionary")
For Each xCell In xRg
xDic(xCell.Value) = Empty
Next
ConcatUniq = Join$(xDic.Keys, xChar)
Set xDic = Nothing
End Function
3. ثم عد إلى ورقة العمل الخاصة بك ، وأدخل هذه الصيغة: = ConcatUniq (A1: A17، "،") في خلية فارغة حيث تريد إخراج النتيجة المتسلسلة ، واضغط على أدخل مفتاح للحصول على النتيجة المتسلسلة الفريدة ، انظر لقطة الشاشة:
ملاحظات: في الصيغة أعلاه ، A1: A17 هو نطاق الخلايا الذي تريد ربطه ، والفاصلة ","هو الفاصل الذي تحتاجه لفصل القيم المجمعة ، يمكنك تغييرها حسب حاجتك.
ابحث عن قيم فريدة في عمود وقم بربطها في خلية واحدة باستخدام Kutools for Excel
إذا لم تكن على دراية برمز VBA ، كوتولس ل إكسيل يمكنك أيضًا مساعدتك ، يمكنك الجمع بين ملفات حدد الخلايا الفريدة والمكررة دمج المرافق لتحقيق النتيجة التي تحتاجها.
بعد تثبيت كوتولس ل إكسيليرجى القيام بما يلي:
1. حدد قائمة الخلايا التي تريد دمج القيم الفريدة فقط.
2. انقر كوتولس > أختار > حدد الخلايا الفريدة والمكررة، انظر لقطة الشاشة:
3. في حدد الخلايا الفريدة والمكررة مربع الحوار، حدد كل فريد (بما في ذلك 1 st مكررة) الخيار تحت قاعدة القسم ، انظر لقطة الشاشة:
تنويهات: إذا كنت ترغب في دمج القيم الفريدة باستثناء الظهور الأول المكرر ، فحدد قيم فريدة فقط الخيار.
4. ثم اضغط OK زر ، وتم تحديد القيم الفريدة فقط ، ثم اضغط CTRL + C لنسخها ولصقها في مكان محدد بالضغط على CTRL + V، انظر لقطة الشاشة:
5. حدد الخلايا الفريدة التي تم لصقها ، ثم انقر فوق كوتولس > دمج وتقسيم > ادمج الصفوف أو الأعمدة أو الخلايا دون فقد البيانات، انظر لقطة الشاشة:
6. في ادمج الأعمدة أو الصفوف مربع الحوار، اختر اجمع في خلية واحدة تحت لدمج الخلايا المحددة وفقًا للخيارات التالية، ثم حدد فاصلًا لبياناتك المدمجة ، انظر لقطة الشاشة:
7. ثم اضغط Ok or التقديم زر ، تم تجميع القيم الفريدة المستخرجة في خلية واحدة كما هو موضح في لقطة الشاشة التالية:
تحميل مجاني Kutools لبرنامج Excel الآن!
سرد القيم الفريدة وسلسلة القيم المقابلة باستخدام كود VBA
في حالة أخرى ، لديك نطاق من البيانات يتضمن عمودين ، والآن ، تريد سرد القيم الفريدة فقط وربط القيم المقابلة لها في عمود آخر للحصول على النتيجة التالية ، هل لديك أي طرق جيدة لإنهاء هذه المهمة في Excel؟
هنا ، يمكنك تطبيق كود فبا التالي للتعامل مع هذه الوظيفة ، يرجى القيام بما يلي:
1. اضغط باستمرار على ALT + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.
2. انقر إدراج > وحدة، والصق الكود التالي في ملف وحدة نافذة او شباك.
رمز فبا: سرد القيم الفريدة وسلسلة البيانات المقابلة
Sub test()
'updateby Extendoffice
Dim xRg As Range
Dim xArr As Variant
Dim xCell As Range
Dim xTxt As String
Dim I As Long
Dim xDic As Object
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the data range", "Kutools for Excel", xTxt, , , , , 8)
Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
If xRg Is Nothing Then Exit Sub
If xRg.Areas.Count > 1 Then
MsgBox "Does not support multiple selections", , "Kutools for Excel"
Exit Sub
End If
If xRg.Columns.Count <> 2 Then
MsgBox "There must be only two columns in the selected range", , "Kutools for Excel"
Exit Sub
End If
xArr = xRg
Set xDic = CreateObject("Scripting.Dictionary")
xDic.CompareMode = 1
For I = 1 To UBound(xArr)
If Not xDic.Exists(xArr(I, 1)) Then
xDic.Item(xArr(I, 1)) = xDic.Count + 1
xArr(xDic.Count, 1) = xArr(I, 1)
xArr(xDic.Count, 2) = xArr(I, 2)
Else
xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
End If
Next
Sheets.Add.Cells(1).Resize(xDic.Count, 2).Value = xArr
End Sub
3. ثم اضغط F5 المفتاح لتشغيل هذا الرمز ، ويظهر مربع موجه لتذكيرك بتحديد نطاق البيانات الذي تريد ربطه بناءً على القيم الفريدة ، انظر الصورة:
4. انقر OK، تم استخراج القيم الفريدة وتم تجميع القيم المقابلة لها في عمود آخر معًا في ورقة عمل جديدة.
ملاحظات: في الكود أعلاه ، يمكنك تغيير الفاصلة الحمراء xArr (xDic.Item (xArr (I، 1))، 2) = xArr (xDic.Item (xArr (I، 1))، 2) & ",& xArr (I، 2) في هذا البرنامج النصي إلى أي محددات أخرى تريدها لفصل البيانات المدمجة.
سرد القيم الفريدة وسلسلة القيم المقابلة مع كوتولس ل إكسيل
إذا كان لديك كوتولس ل إكسيل، بما لديها الجمع بين الصفوف المتقدمة ميزة ، يمكنك حل هذه المشكلة بسرعة وسهولة دون أي كود.
1. أولاً ، يجب عليك عمل نسخة من بياناتك الأصلية إذا كنت تريد الاحتفاظ بالبيانات الأصلية. ثم حدد نطاق البيانات الذي تريد ربطه بناءً على القيم الفريدة.
2. ثم اضغط كوتولس > دمج وتقسيم > الجمع بين الصفوف المتقدمة، انظر لقطة الشاشة:
3. في الجمع بين الصفوف المتقدمة في مربع الحوار ، انقر فوق اسم العمود الذي تريد سرد القيم الفريدة فقط ، وانقر فوق المفتاح الأساسي، انظر لقطة الشاشة:
4. ثم انقر فوق اسم عمود آخر تريد ربطه ، وانقر فوق دمج، واختر محددًا واحدًا لفصل البيانات المجمعة ، انظر لقطة الشاشة:
5. ثم انقر فوق Ok الزر ، تم ربط القيم بناءً على القيم الفريدة لعمود آخر كما هو موضح في لقطة الشاشة التالية:
تحميل مجاني Kutools لبرنامج Excel الآن!
أفضل أدوات إنتاجية المكتب
عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير
- تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
- فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
- يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!