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