Skip to main content

Kutools for Office — مجموعة واحدة. خمسة أدوات. أنجز المزيد.

نصائح Excel: تقسيم البيانات إلى أوراق عمل / مصنفات متعددة بناءً على قيمة العمود

Author Xiaoyang Last modified

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

لنفترض أن لديك سجل مبيعات كبير يحتوي على إدخالات متعددة مثل اسم المنتج والكمية المباعة للربع الأول. الهدف هو تقسيم هذه البيانات إلى أوراق عمل منفصلة بناءً على كل اسم منتج بحيث يمكن تحليل أداء المبيعات الفردي لكل منتج على حدة.

تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيمة العمود

تقسيم البيانات إلى مصنفات متعددة بناءً على قيمة العمود باستخدام كود VBA

Split data into multiple worksheets based on column value


تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيمة العمود

عادةً، يمكنك ترتيب قائمة البيانات أولاً، ثم نسخها ولصقها واحدة تلو الأخرى في أوراق عمل جديدة. لكن هذا سيتطلب صبرك لنسخ ولصق بشكل متكرر. في هذا القسم، سنقدم طريقتين مباشرتين لمعالجة هذه المهمة بكفاءة في Excel، مما يوفر لك الوقت ويقلل من احتمالية الأخطاء.

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

1. اضغط باستمرار على مفتاحي ALT + F11 لفتح نافذة Microsoft Visual Basic for Applications.

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

Sub Splitdatabycol()
'updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
Dim xWS As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3. بعد ذلك، اضغط F5 لتشغيل الكود، وسيظهر مربع منبثق لتذكيرك بتحديد صف الرأس، وبعد ذلك، انقر موافق. شاهد لقطة الشاشة:
split data into worksheets with vba code to select header row

4. في المربع المنبثق الثاني، يرجى تحديد بيانات العمود الذي تريد تقسيمه بناءً عليه، ثم انقر موافق. شاهد لقطة الشاشة:
split data into worksheets with vba code to select data range

5. يتم تقسيم جميع البيانات في ورقة العمل النشطة إلى أوراق عمل متعددة بناءً على قيم العمود. يتم تسمية الأوراق الناتجة وفقًا للقيم في الخلايا المقسمة وتوضع في نهاية المصنف. شاهد لقطة الشاشة:
split data into worksheets with vba code to get the result

 

تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيمة العمود باستخدام Kutools لـ Excel

Kutools لـ Excel يقدم ميزة ذكية – تقسيم البيانات مباشرة داخل بيئة Excel الخاصة بك. لم يعد تقسيم البيانات إلى أوراق عمل متعددة تحديًا. أداتنا البديهية تقوم تلقائيًا بتقسيم مجموعة البيانات الخاصة بك بناءً على قيمة العمود المختارة أو عدد الصفوف، مما يضمن أن تكون كل قطعة من المعلومات بالضبط حيث تحتاج إليها. وداعًا للمهمة المملة لتنظيم الجداول يدويًا واستقبل طريقة أسرع وخالية من الأخطاء لإدارة بياناتك.

ملاحظة: لتطبيق هذه الميزة ل تقسيم البيانات، يجب عليك أولاً تنزيل Kutools لـ Excel، ثم تطبيق الميزة بسرعة وسهولة.

بعد تثبيت Kutools لـ Excel، حدد نطاق البيانات، ثم انقر فوق Kutools Plus > تقسيم البيانات لفتح مربع الحوار تقسيم البيانات إلى أوراق عمل متعددة.

  1. حدد خيار العمود المحدد في قسم التقسيم بناءً على، واختر قيمة العمود الذي تريد تقسيم البيانات بناءً عليه من القائمة المنسدلة.
  2. إذا كانت بياناتك تحتوي على رؤوس وتريد إدراجها في كل ورقة عمل مقسمة جديدة، يرجى التحقق من خيار البيانات تحتوي على رؤوس. (يمكنك تحديد عدد صفوف العناوين بناءً على بياناتك. على سبيل المثال، إذا كانت بياناتك تحتوي على عنوانين، يرجى كتابة 2.)
  3. ثم يمكنك تحديد أسماء أوراق العمل المقسمة، ضمن قسم أسماء أوراق العمل الجديدة، حدد قاعدة أسماء أوراق العمل من القائمة المنسدلة القواعد، يمكنك إضافة بادئة أو لاحقة لأسماء الأوراق أيضًا.
  4. انقر فوق موافق . شاهد لقطة الشاشة:
    split data into worksheets with kutools to set the operations

الآن، تم تقسيم البيانات في ورقة العمل إلى أوراق عمل متعددة في مصنف جديد.
split data into worksheets with kutools to get the result


تقسيم البيانات إلى مصنفات متعددة بناءً على قيمة العمود باستخدام كود VBA

أحيانًا، بدلاً من تقسيم البيانات إلى أوراق عمل متعددة، قد يكون من الأكثر فائدة تقسيم البيانات إلى مصنفات منفصلة بناءً على عمود رئيسي. إليك دليل خطوة بخطوة حول كيفية استخدام كود VBA لأتمتة عملية تقسيم البيانات إلى مصنفات متعددة بناءً على قيمة عمود معينة.

1. اضغط باستمرار على مفتاحي ALT + F11 لفتح نافذة Microsoft Visual Basic for Applications.

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

Sub SplitDataByColToWorkbooks()
    ' Updateby Extendoffice
    Dim lr As Long
    Dim ws As Worksheet
    Dim vcol, i As Integer
    Dim myarr As Variant
    Dim title As String
    Dim titlerow As Integer
    Dim xTRg As Range
    Dim xVRg As Range
    Dim xWS As Workbook
    Dim savePath As String
    ' Set the directory to save new workbooks
    savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
    Application.DisplayAlerts = False
    Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", Type:=8)
    If TypeName(xTRg) = "Nothing" Then Exit Sub
    Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", Type:=8)
    If TypeName(xVRg) = "Nothing" Then Exit Sub
    vcol = xVRg.Column
    Set ws = xTRg.Worksheet
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = xTRg.Address(False, False)
    titlerow = xTRg.Row
    ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
    myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
    ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
    For i = 2 To UBound(myarr)
        Set xWS = Workbooks.Add
        ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
        ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
        xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
        xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"

        xWS.Close SaveChanges:=False
    Next i
    ws.AutoFilterMode = False
    Application.DisplayAlerts = True
    ws.Activate
End Sub
ملاحظة: في الكود أعلاه، يجب أن تقوم بتغيير مسار الملف الخاص بك حيث سيتم حفظ المصنفات المقسمة في هذا البرنامج النصي: savePath = "C:\Users\AddinsVM001\Desktop\multiple files\".

3. بعد ذلك، اضغط F5 لتشغيل الكود، وسيظهر مربع منبثق لتذكيرك بتحديد صف الرأس، وبعد ذلك، انقر موافق. شاهد لقطة الشاشة:
split data into workbooks with vba code to select header row

4. في المربع المنبثق الثاني، يرجى تحديد بيانات العمود الذي تريد تقسيمه بناءً عليه، ثم انقر موافق. شاهد لقطة الشاشة:
split data into workbooks with vba code to select data range

5. بعد التقسيم، يتم تقسيم جميع البيانات في ورقة العمل النشطة إلى مصنفات متعددة بناءً على قيم العمود. يتم حفظ جميع المصنفات المقسمة في المجلد الذي حددته. شاهد لقطة الشاشة:
split data into workbooks with vba code to get the result

مقالات ذات صلة:

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

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

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات اعتمادًا على: التنفيذ الذكي |  توليد الأكواد |  إنشاء الصيغ المخصصة |  تحليل البيانات وتوليد الرسوم البيانية |  استخدام Kutools Functions...
ميزات شائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو الخلايا بدون فقدان البيانات | تقريب بدون الصيغة...
بحث متقدم: بحث بمعايير متعددة VLookup | بحث بقيم متعددة VLookup | بحث في عدة ورقات VLookup | مطابقة غامضة...
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة معتمدة | قائمة منسدلة متعددة الاختيارات...
مدير الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاقات والأعمدة...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | مدير أدوات المصنف وورقة العمل | مكتبة النص التلقائي | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب الجدول | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...)...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع رسم بياني (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...) |7 أدوات دمج وتقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...) | ... والمزيد
استخدم Kutools بلغتك المفضلة – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من40 لغة أخرى!

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