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