نصائح Excel: تقسيم البيانات إلى أوراق عمل / مصنفات متعددة بناءً على قيمة العمود
عند إدارة مجموعات بيانات كبيرة في Excel، يمكن أن يكون تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيم عمود معين مفيدًا للغاية. هذه الطريقة لا تحسن تنظيم البيانات فحسب، بل تعزز أيضًا سهولة القراءة وتسهل تحليل البيانات بشكل أسهل.
لنفترض أن لديك سجل مبيعات كبير يحتوي على إدخالات متعددة مثل اسم المنتج والكمية المباعة للربع الأول. الهدف هو تقسيم هذه البيانات إلى أوراق عمل منفصلة بناءً على كل اسم منتج بحيث يمكن تحليل أداء المبيعات الفردي لكل منتج على حدة.
تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيمة العمود
تقسيم البيانات إلى مصنفات متعددة بناءً على قيمة العمود باستخدام كود VBA
تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيمة العمود
عادةً، يمكنك ترتيب قائمة البيانات أولاً، ثم نسخها ولصقها واحدة تلو الأخرى في أوراق عمل جديدة. لكن هذا سيتطلب صبرك لنسخ ولصق بشكل متكرر. في هذا القسم، سنقدم طريقتين مباشرتين لمعالجة هذه المهمة بكفاءة في 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 لتشغيل الكود، وسيظهر مربع منبثق لتذكيرك بتحديد صف الرأس، وبعد ذلك، انقر موافق. شاهد لقطة الشاشة:
4. في المربع المنبثق الثاني، يرجى تحديد بيانات العمود الذي تريد تقسيمه بناءً عليه، ثم انقر موافق. شاهد لقطة الشاشة:
5. يتم تقسيم جميع البيانات في ورقة العمل النشطة إلى أوراق عمل متعددة بناءً على قيم العمود. يتم تسمية الأوراق الناتجة وفقًا للقيم في الخلايا المقسمة وتوضع في نهاية المصنف. شاهد لقطة الشاشة:
تقسيم البيانات إلى أوراق عمل متعددة بناءً على قيمة العمود باستخدام Kutools لـ Excel
Kutools لـ Excel يقدم ميزة ذكية – تقسيم البيانات مباشرة داخل بيئة Excel الخاصة بك. لم يعد تقسيم البيانات إلى أوراق عمل متعددة تحديًا. أداتنا البديهية تقوم تلقائيًا بتقسيم مجموعة البيانات الخاصة بك بناءً على قيمة العمود المختارة أو عدد الصفوف، مما يضمن أن تكون كل قطعة من المعلومات بالضبط حيث تحتاج إليها. وداعًا للمهمة المملة لتنظيم الجداول يدويًا واستقبل طريقة أسرع وخالية من الأخطاء لإدارة بياناتك.
بعد تثبيت Kutools لـ Excel، حدد نطاق البيانات، ثم انقر فوق Kutools Plus > تقسيم البيانات لفتح مربع الحوار تقسيم البيانات إلى أوراق عمل متعددة.
- حدد خيار العمود المحدد في قسم التقسيم بناءً على، واختر قيمة العمود الذي تريد تقسيم البيانات بناءً عليه من القائمة المنسدلة.
- إذا كانت بياناتك تحتوي على رؤوس وتريد إدراجها في كل ورقة عمل مقسمة جديدة، يرجى التحقق من خيار البيانات تحتوي على رؤوس. (يمكنك تحديد عدد صفوف العناوين بناءً على بياناتك. على سبيل المثال، إذا كانت بياناتك تحتوي على عنوانين، يرجى كتابة 2.)
- ثم يمكنك تحديد أسماء أوراق العمل المقسمة، ضمن قسم أسماء أوراق العمل الجديدة، حدد قاعدة أسماء أوراق العمل من القائمة المنسدلة القواعد، يمكنك إضافة بادئة أو لاحقة لأسماء الأوراق أيضًا.
- انقر فوق موافق . شاهد لقطة الشاشة:
الآن، تم تقسيم البيانات في ورقة العمل إلى أوراق عمل متعددة في مصنف جديد.
تقسيم البيانات إلى مصنفات متعددة بناءً على قيمة العمود باستخدام كود 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
3. بعد ذلك، اضغط F5 لتشغيل الكود، وسيظهر مربع منبثق لتذكيرك بتحديد صف الرأس، وبعد ذلك، انقر موافق. شاهد لقطة الشاشة:
4. في المربع المنبثق الثاني، يرجى تحديد بيانات العمود الذي تريد تقسيمه بناءً عليه، ثم انقر موافق. شاهد لقطة الشاشة:
5. بعد التقسيم، يتم تقسيم جميع البيانات في ورقة العمل النشطة إلى مصنفات متعددة بناءً على قيم العمود. يتم حفظ جميع المصنفات المقسمة في المجلد الذي حددته. شاهد لقطة الشاشة:
مقالات ذات صلة:
- تقسيم البيانات إلى أوراق عمل متعددة حسب عدد الصفوف
- تقسيم نطاق بيانات كبير إلى أوراق عمل Excel متعددة بناءً على عدد صفوف محدد يمكن أن يسهل إدارة البيانات. على سبيل المثال، تقسيم مجموعة بيانات كل 5 صفوف إلى أوراق متعددة يمكن أن يجعلها أكثر تنظيمًا وإدارة. يقدم هذا الدليل طريقتين عمليتين لإنجاز هذه المهمة بسرعة وسهولة.
- دمج جدولين أو أكثر في واحد بناءً على أعمدة رئيسية
- لنفترض أن لديك ثلاثة جداول في مصنف، الآن تريد دمج هذه الجداول في جدول واحد بناءً على الأعمدة الرئيسية المقابلة للحصول على النتيجة كما هو موضح في لقطة الشاشة أدناه. قد تكون هذه مهمة صعبة بالنسبة لمعظم منا، ولكن، لا تقلق، في هذه المقالة، سأقدم بعض الطرق لحل هذه المشكلة.
- تقسيم سلاسل النصوص بواسطة الفاصل إلى صفوف متعددة
- عادةً، يمكنك استخدام ميزة النص إلى أعمدة لتقسيم محتويات الخلية إلى أعمدة متعددة بواسطة فاصل معين، مثل الفاصلة، النقطة، الفاصلة المنقوطة، الشرطة المائلة، وما إلى ذلك. ولكن، في بعض الأحيان، قد تحتاج إلى تقسيم محتويات الخلية المفصولة إلى صفوف متعددة وتكرار البيانات من الأعمدة الأخرى كما هو موضح في لقطة الشاشة أدناه. هل لديك أي طرق جيدة للتعامل مع هذه المهمة في Excel؟ ستوفر هذه المقالة بعض الطرق الفعالة لإكمال هذه المهمة في Excel.
- تقسيم محتويات الخلية متعددة الأسطر إلى صفوف / أعمدة منفصلة
- لنفترض أن لديك محتوى خلية متعدد الأسطر والذي يتم فصله بواسطة Alt + Enter، والآن تحتاج إلى تقسيم المحتويات متعددة الأسطر إلى صفوف أو أعمدة منفصلة، ماذا يمكنك أن تفعل؟ في هذه المقالة، ستتعلم كيفية تقسيم محتويات الخلية متعددة الأسطر إلى صفوف أو أعمدة منفصلة بسرعة.
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!