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

كيف يتم إنشاء كل المجموعات المكونة من 3 أعمدة أو عدة أعمدة في Excel؟

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

قم بإنشاء كل المجموعات بناءً على 3 أعمدة من البيانات باستخدام صيغة

قم بإنشاء كل المجموعات استنادًا إلى 3 أعمدة أو عدة أعمدة من البيانات باستخدام تعليمات VBA البرمجية

قم بإنشاء جميع المجموعات بناءً على 3 أعمدة أو عدة أعمدة من البيانات باستخدام ميزة رائعة


قم بإنشاء كل المجموعات بناءً على 3 أعمدة من البيانات باستخدام صيغة

يمكن أن تساعد الصيغة الطويلة التالية في سرد ​​كافة المجموعات المكونة من 3 أعمدة ، يرجى القيام بذلك على النحو التالي:

1. من فضلك ، انقر فوق الخلية حيث يتم إخراج النتيجة ، ثم انسخ والصق الصيغة أدناه فيها:

=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")

ملاحظة: في هذه الصيغة: A2: A4, B2: B6, C2: C5 هي نطاقات البيانات التي تريد استخدامها.

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


قم بإنشاء كل المجموعات استنادًا إلى 3 أعمدة أو عدة أعمدة من البيانات باستخدام تعليمات VBA البرمجية

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

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

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

كود فبا: قم بإنشاء كل المجموعات المكونة من 3 أعمدة أو عدة أعمدة

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A4")  'First column data
Set xDRg2 = Range("B2:B6")  'Second column data
Set xDRg3 = Range("C2:C5")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub

ملاحظة: في الكود أعلاه ، A2: A4, B2: B6, C2: C5 هي نطاق البيانات الذي تريد استخدامه ، E2 هي خلية الإخراج التي تريد تحديد موقع النتائج. إذا كنت ترغب في الحصول على جميع مجموعات المزيد من الأعمدة ، يرجى تغيير وإضافة معلمات أخرى إلى الكود حسب حاجتك.

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


قم بإنشاء جميع المجموعات بناءً على 3 أعمدة أو عدة أعمدة من البيانات باستخدام ميزة رائعة

إذا كان لديك كوتولس ل إكسيلمع قوتها سرد كافة المجموعات ميزة ، يمكنك سرد كافة مجموعات الأعمدة المتعددة بسرعة وسهولة.

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

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

1. انقر كوتولس > إدراج > سرد كافة المجموعات، انظر لقطة الشاشة:

2. في سرد كافة المجموعات في مربع الحوار ، حدد بيانات الأعمدة والفواصل لسرد المجموعات كما هو موضح في لقطة الشاشة التالية:

3. بعد تعيين البيانات والفاصل ، انقر فوق Ok ، في مربع المطالبة التالي ، حدد خلية لتحديد النتيجة ، انظر لقطة الشاشة:

4. ثم انقر فوق OK زر ، تم إنشاء جميع المجموعات على الفور كما هو موضح أدناه في لقطة الشاشة:

انقر لتنزيل Kutools for Excel والتجربة المجانية الآن!


  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة وحفظ البيانات. تقسيم محتوى الخلايا ؛ اجمع الصفوف المكررة والمجموع / المتوسط... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • المفضلة وإدراج الصيغ بسرعةوالنطاقات والمخططات والصور ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • تجميع الجدول المحوري حسب رقم الأسبوع واليوم من الأسبوع والمزيد ... إظهار الخلايا غير المؤمنة والمغلقة بألوان مختلفة قم بتمييز الخلايا التي لها صيغة / اسم
علامة تبويب kte 201905
  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (17)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لتوليد أي تركيبة عشوائية يمكننا استخدامها
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لنشر هذا المنشور. شكراً جزيلاً لـBalaji على صيغته
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا أستطيع أن أشكركم بما فيه الكفاية! وفر لي الكثير من الوقت!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف يجب القيام بالصيغة أدناه لـ 5 أعمدة؟ تحاول معرفة ولكن الخطأ في العطاء
=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، Nikhil ، للحصول على جميع المجموعات من 5 أعمدة ، قد يكون رمز VBA أدناه يمكن أن يساعدك ، يرجى تغيير مراجع الخلايا إلى بياناتك.
القائمة الفرعية
'تحديث بواسطة Extendoffice
Dim xDRg1، xDRg2، xDRg3، xDRg4، xDRg5 كنطاق
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFN1 ، xFN2 ، xFN3 ، xFN4 ، xFN5 كعدد صحيح
خافت xSV1 ، xSV2 ، xSV3 ، xSV4 ، xSV5 كسلسلة
قم بتعيين xDRg1 = Range ("A2: A7") "بيانات العمود الأول
قم بتعيين xDRg2 = Range ("B2: B7") "بيانات العمود الثاني
قم بتعيين xDRg3 = Range ("C2: C7") "بيانات العمود الثالث
قم بتعيين xDRg4 = Range ("D2: D7") "بيانات العمود الرابع
قم بتعيين xDRg5 = Range ("E2: E7") "بيانات العمود الخامس
xStr = "-" فاصل
قم بتعيين خلية الإخراج xRg = Range ("H2") "
بالنسبة إلى xFN1 = 1 إلى xDRg1.Count
xSV1 = xDRg1.Item (xFN1) نص
بالنسبة إلى xFN2 = 1 إلى xDRg2.Count
xSV2 = xDRg2.Item (xFN2) نص
بالنسبة إلى xFN3 = 1 إلى xDRg3.Count
xSV3 = xDRg3.Item (xFN3) نص
بالنسبة إلى xFN4 = 1 إلى xDRg4.Count
xSV4 = xDRg4.Item (xFN4) نص
بالنسبة إلى xFN5 = 1 إلى xDRg5.Count
xSV5 = xDRg5.Item (xFN5) نص
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
ضبط xRg = xRg.Offset (1، 0)
التالى
التالى
التالى
التالى
التالى
End Sub يرجى المحاولة ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا skyyang ، لقد غيرت الكود لـ 7 لفات ، لكن عند رؤية Excel يحتوي فقط على 1,048,576 صفًا ، لا يمكن أن يوفر رمز VBA جميع المجموعات. هل لديك فكرة كيف يمكنني الاستمرار في الأعمدة الأخرى؟ أعتقد أن هذا الكود - Set xRg = xRg.Offset (1، 0) بحاجة للتغيير
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا skyyang ، لقد غيرت الكود لـ 7 لفات ، لكن رؤية Excel يحتوي فقط على 1,048,576 صفًا لا يمكن أن يقدم رمز VBA جميع المجموعات.
هل لديك فكرة كيف يمكنني الاستمرار في أعمدة أخرى؟
أعتقد أن هذا الكود - Set xRg = xRg.Offset (1، 0)
بحاجة للتغيير 
تم تصغير هذا التعليق بواسطة المشرف على الموقع
=IFERROR(INDEX($A$2:$A$5,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$3)*(COUNTA($C$2:$C$3)* (COUNTA($D$2:$D$4)* (COUNTA($E$2:$E$6)* (COUNTA($H$2:$H$6)* (COUNTA($G$2:$G$6)* (COUNTA($H$2:$H$6))))))))))+1)&"-"&INDEX($B$2:$B$3,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$3)),COUNTA($B$2:$B$3))+1)&"-" &INDEX($C$2:$C$3,MOD(INT((ROW(1:1)-1)/COUNTA($D$2:$D$4)),COUNTA($C$2:$C$3))+1)&"-" &INDEX($D$2:$D$4,MOD(INT((ROW(1:1)-1)/COUNTA($E$2:$E$6)),COUNTA($D$2:$D$4))+1)&"-" &INDEX($E$2:$E$6,MOD(INT((ROW(1:1)-1)/COUNTA($F$2:$F$6)),COUNTA($E$2:$E$6))+1)&"-" &INDEX($F$2:$F$6,MOD(INT((ROW(1:1)-1)/COUNTA($G$2:$G$6)),COUNTA($F$2:$F$6))+1)&"-" &INDEX($G$2:$G$6,MOD(INT((ROW(1:1)-1)/COUNTA($H$2:$H$6)),COUNTA($G$2:$G$6))+1)&"-"&INDEX($H$2:$H$6,MOD((ROW(1:1)-1),COUNTA($H$2:$H$6))+1),"")
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أحتاج هذه الصيغة لأربعة أعمدة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لك. بالضبط ما أحتاجه :-)))
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا على هذا الرمز لك. لقد قمت بتعديل الكود الخاص بكمية العمود الذي أحتاجه (25). شكرًا،
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رمز HiIn VBA الذي استخدمته أربعة أعمدة ونطاق العمود هو E2: E75 ، B2: B267 ، C2: C195 & D2: D267. نطاق الإخراج هو J2. في هذه الحالة ، تم إخراج النتيجة تجاوز حد الصف. الرجاء المساعدة في حل الخطأ
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هذا رمز لـ 9 أعمدة: ")
القائمة الفرعية
'تحديث بواسطة Extendoffice
Dim xDRg1 و xDRg2 و xDRg3 و xDRg4 و xDRg5 و xDRg6 و xDRg7 و xDRg8 و xDRg9 كنطاق
خافت xRg كمدى
خافت xStr كسلسلة
Dim xFN1، xFN2، xFN3، xFN4، xFN5، xFN6، xFN7، xFN8، xFN9 كعدد صحيح
Dim xSV1، xSV2، xSV3، xSV4، xSV5، xSV6، xSV7، xSV8، xSV9 كسلسلة
قم بتعيين xDRg1 = Range ("A2: A3") "بيانات العمود الأول
قم بتعيين xDRg2 = Range ("B2: B3") "بيانات العمود الثاني
قم بتعيين xDRg3 = Range ("C2: C10") "بيانات العمود الثالث
قم بتعيين xDRg4 = Range ("D2: D2") "بيانات العمود الثالث
قم بتعيين xDRg5 = Range ("E2: E3") "بيانات العمود الثالث
قم بتعيين xDRg6 = Range ("F2: F3") "بيانات العمود الثالث
قم بتعيين xDRg7 = Range ("G2: G4") "بيانات العمود الثالث
قم بتعيين xDRg8 = Range ("H2: H3") "بيانات العمود الثالث
قم بتعيين xDRg9 = Range ("I2: I3") "بيانات العمود الثالث
xStr = "-" فاصل
قم بتعيين خلية إخراج xRg = Range ("K2") "
بالنسبة إلى xFN1 = 1 إلى xDRg1.Count
xSV1 = xDRg1.Item (xFN1) نص
بالنسبة إلى xFN2 = 1 إلى xDRg2.Count
xSV2 = xDRg2.Item (xFN2) نص
بالنسبة إلى xFN3 = 1 إلى xDRg3.Count
xSV3 = xDRg3.Item (xFN3) نص
بالنسبة إلى xFN4 = 1 إلى xDRg4.Count
xSV4 = xDRg4.Item (xFN4) نص
بالنسبة إلى xFN5 = 1 إلى xDRg5.Count
xSV5 = xDRg5.Item (xFN5) نص
بالنسبة إلى xFN6 = 1 إلى xDRg6.Count
xSV6 = xDRg6.Item (xFN6) نص
بالنسبة إلى xFN7 = 1 إلى xDRg7.Count
xSV7 = xDRg7.Item (xFN7) نص
بالنسبة إلى xFN8 = 1 إلى xDRg8.Count
xSV8 = xDRg8.Item (xFN8) نص
بالنسبة إلى xFN9 = 1 إلى xDRg9.Count
xSV9 = xDRg9.Item (xFN9) نص
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
ضبط xRg = xRg.Offset (1، 0)
التالى
التالى
التالى
التالى
التالى
التالى
التالى
التالى
التالى
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
조합 의 나열 을 "단어 - 단어 - 단어" 순 으로 나열 하는 법 은 이해 했습니다.
그런데 "단어" 가 아니라 숫자 일 경우،
즉 숫자 의 조합 을 단순 나열 아닌 덧셈 이나 곱셈 으로 적용 어떻게 해야하는지 알 수 있을까요؟

'VBA 코드: 3 개 또는 여러 열의 모든 조합 생성' 에서 말이죠.

"1-1-1" 로 엑셀 에 결과 값 이 표기 되는 것이 아니고

-1 로 엑셀 에 표기 될 수 있게 말입니다.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Bonjour، comment faire pour que chaque valeurs soient placées dans une colonne premium en non séparées par un tiret؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna، sem repetição. الجيم بودريا لي أجودار نيسو؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna، sem repetição. الجيم بودريا لي أجودار نيسو؟
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

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