ზოგჯერ, მონაცემთა ანალიზის დროს, შეიძლება დაგჭირდეთ Excel-ის სამუშაო ფურცლის შინაარსის დაყოფა რამდენიმე Excel-ის სამუშაო წიგნად კონკრეტული სვეტის მიხედვით. ახლა, ამ პოსტში, ჩვენ გასწავლით მის მისაღებად 2 სწრაფ გზას.
ბევრ მომხმარებელს ხშირად ესაჭიროება Excel-ის სამუშაო ფურცლის გაყოფა, რომელიც შეიცავს მონაცემთა უზარმაზარ სტრიქონებს რამდენიმე ცალკეულ Excel-ის სამუშაო წიგნებში, კონკრეტული სვეტის საფუძველზე. მაგალითად, აქ არის ჩემი Excel სამუშაო ფურცლის ნიმუში. მსურს ამ ფურცლის მონაცემები დავყო რამდენიმე სამუშაო წიგნად სვეტის „ერთი ლიცენზიის ფასი (US$)“ საფუძველზე.

ზოგადად, თქვენ უნდა გამოიყენოთ შემდეგი მეთოდი 1, რათა ხელით გაფილტროთ და დააკოპიროთ მონაცემები. მაგრამ, ეს იქნება საკმაოდ დამღლელი და სულელური, თუ ძალიან ბევრი ფილტრის ვარიანტია. აქედან გამომდინარე, აქ ჩვენ ასევე ვაჩვენებთ ბევრად უფრო მოხერხებულ გზას - მეთოდი 2, რომელიც იყენებს VBA-ს. ახლა, წაიკითხეთ, რომ მიიღოთ ისინი დეტალურად.
მეთოდი 1: დააკოპირეთ შიგთავსი Excel-ის სამუშაო წიგნების განცალკევებისთვის ფილტრის შემდეგ
- თავდაპირველად, აირჩიეთ უჯრედი კონკრეტულ სვეტში, როგორიცაა "უჯრედი B1" ჩემს შემთხვევაში.
- შემდეგ გადადით "მონაცემების" ჩანართზე და დააჭირეთ ღილაკს "ფილტრი".
- შემდეგი, დააწკაპუნეთ ღილაკზე „ქვემოთ ისარი“ სვეტის სათაურში, რომ ნახოთ ფილტრის არჩევანის სია.
- ახლა, მოხსენით მონიშვნა "(აირჩიეთ ყველა)" ვარიანტი.
- ამის შემდეგ, თქვენ შეგიძლიათ აირჩიოთ ერთი ფილტრის არჩევანი, როგორიცაა ჩემს მაგალითში „29.95“ და დააჭიროთ „OK“.
- ერთბაშად დარჩება მხოლოდ ის მონაცემები, რომელთა მნიშვნელობა B სვეტში არის „29.95“.
- შემდეგ დააკოპირეთ გაფილტრული მონაცემები და ჩასვით ისინი Excel-ის ახალ სამუშაო წიგნში.
- მოგვიანებით, გამოიყენეთ იგივე გზა სხვა მონაცემების გასაყოფად Excel სამუშაო წიგნების გამოსაყოფად.
მეთოდი 2: შიგთავსის დაყოფა რამდენიმე Excel სამუშაო წიგნად VBA-ს საშუალებით
- პირველ რიგში, დარწმუნდით, რომ გახსნილია კონკრეტული სამუშაო ფურცელი.
- შემდეგი, გაუშვით VBA რედაქტორი "როგორ გაუშვათ VBA კოდი თქვენს Excel-ში".
- შემდეგ ჩადეთ შემდეგი კოდი პროექტში „ThisWorkbook“.
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow, nRow, nNextRow As Integer
Dim strColumnValue As String
Dim objDictionary As Object
Dim varColumnValues As Variant
Dim varColumnValue As Variant
Dim objExcelWorkbook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Set objWorksheet = ActiveSheet
nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = 2 To nLastRow
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
strColumnValue = objWorksheet.Range("B" & nRow).Value
If objDictionary.Exists(strColumnValue) = False Then
objDictionary.Add strColumnValue, 1
End If
Next
varColumnValues = objDictionary.Keys
For i = LBound(varColumnValues) To UBound(varColumnValues)
varColumnValue = varColumnValues(i)
'Create a new Excel workbook
Set objExcelWorkbook = Excel.Application.Workbooks.Add
Set objSheet = objExcelWorkbook.Sheets(1)
objSheet.Name = objWorksheet.Name
objWorksheet.Rows(1).EntireRow.Copy
objSheet.Activate
objSheet.Range("A1").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
objSheet.Paste
objSheet.Columns("A:B").AutoFit
End If
Next
Next
End Sub
- ამის შემდეგ დააწკაპუნეთ ინსტრუმენტთა პანელში "Run" ხატულაზე ან დააჭირეთ ღილაკს "F5".
- როდესაც მაკრო დასრულდება, Excel-ის ცალკეული სამუშაო წიგნები შეიქმნება წყარო Excel-ის სამუშაო ფურცლის გაყოფილი მონაცემებით.
- თითოეული სამუშაო წიგნი გამოიყურება შემდეგ ეკრანის სურათზე.
შედარება
| უპირატესობები | ნაკლოვანებები | |
| მეთოდი 1 | 1. მარტივი მუშაობა Excel-ის ყველა მომხმარებლისთვის | პრობლემურია, თუ ძალიან ბევრი ფილტრის არჩევანია |
| 2. სწრაფი, თუ რამდენიმე ფილტრის არჩევანია | ||
| მეთოდი 2 | ბევრად უფრო ეფექტურია, ვიდრე მეთოდი 1, არ აქვს მნიშვნელობა ფილტრის არჩევანის რაოდენობას | ცოტა რთული მუშაობა VBA დამწყებთათვის |
Excel მონაცემთა დაკარგვის თავიდან აცილება
მიუხედავად იმისა, რომ MS Excel სულ უფრო და უფრო მოწინავე და დახვეწილი ხდება, ის მაინც არღვევს დროდადრო სხვადასხვა ფაქტორების გამო, როგორიცაა მავნე მესამე მხარის დანამატები ან ადამიანური შეცდომები და ა.შ. მას შემდეგ, რაც Excel-ის ავარია შეიძლება პირდაპირ გამოიწვიოს Excel კორუფციაExcel-ის მონაცემების დაკარგვის თავიდან ასაცილებლად, რეგულარულად უნდა შექმნათ თქვენი Excel ფაილების სარეზერვო ასლები. წინააღმდეგ შემთხვევაში, თქვენ უნდა გამოიყენოთ Excel სარემონტო ინსტრუმენტი, როგორიცაა DataNumen Excel Repair დაზიანებული Excel ფაილების გამოსასწორებლად.
ავტორი შესავალი:
შირლი ჟანგი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის SQL Server სარემონტო და Outlook სარემონტო პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად






