Kartais atliekant duomenų analizę gali tekti padalinti „Excel“ darbalapio turinį į kelias „Excel“ darbaknyges pagal konkretų stulpelį. Šiame įraše parodysime du greitus būdus, kaip tai padaryti.
Daugeliui vartotojų dažnai reikia padalyti „Excel“ darbalapį, kuriame yra didžiulės duomenų eilutės, į kelias atskiras „Excel“ darbaknyges pagal konkretų stulpelį. Pavyzdžiui, čia yra mano „Excel“ darbalapio pavyzdys. Norėčiau padalyti šio lapo duomenis pagal stulpelį „Vienos licencijos kaina (USD)“ į kelias darbaknyges.

Apskritai, norėdami rankiniu būdu filtruoti ir kopijuoti duomenis, naudosite šį 1 metodą. Tačiau tai bus gana nuobodu ir kvaila, jei bus per daug filtrų parinkčių. Todėl čia taip pat parodome kur kas patogesnį būdą – 2 metodą, kuris naudoja VBA. Dabar skaitykite toliau, kad sužinotumėte juos išsamiau.
1 būdas: nukopijuokite turinį į atskiras „Excel“ darbaknyges po filtravimo
- Iš pradžių pasirinkite langelį konkrečiame stulpelyje, pvz., „Ląstelė B1“ mano atveju.
- Tada eikite į skirtuką „Duomenys“ ir spustelėkite mygtuką „Filtruoti“.
- Tada spustelėkite mygtuką „rodyklė žemyn“ stulpelio antraštėje, kad būtų rodomas filtrų pasirinkimų sąrašas.
- Dabar panaikinkite parinkties „(Pasirinkti viską)“ žymėjimą.
- Po to galite pasirinkti vieną filtro pasirinkimą, pvz., "29.95" mano pavyzdyje, ir spustelėkite "Gerai".
- Iš karto bus palikti tik tie duomenys, kurių reikšmė B stulpelyje yra „29.95“.
- Tada nukopijuokite filtruotus duomenis ir įklijuokite juos į naują „Excel“ darbaknygę.
- Vėliau tuo pačiu būdu padalykite kitus duomenis į atskiras „Excel“ darbaknyges.
2 metodas: suskirstykite turinį į kelias „Excel“ darbaknyges naudodami VBA
- Pirmiausia įsitikinkite, kad atidarytas konkretus darbalapis.
- Tada paleiskite VBA redaktorių pagal „Kaip paleisti VBA kodą „Excel“.".
- Tada įdėkite šį kodą į projektą „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
- Po to įrankių juostoje spustelėkite piktogramą "Vykdyti" arba paspauskite klavišą "F5".
- Baigus makrokomandą, bus sukurtos atskiros „Excel“ darbaknygės su išskaidytais duomenimis iš šaltinio „Excel“ darbalapio.
- Kiekviena darbaknygė atrodys taip, kaip toliau pateikta ekrano kopija.
Palyginimas
| Privalumai | Trūkumai | |
| Metodas 1 | 1. Lengva valdyti visiems Excel vartotojams | Sunku, jei yra per daug filtrų pasirinkimų |
| 2. Greitai, jei yra nedaug filtrų pasirinkimų | ||
| Metodas 2 | Daug efektyvesnis nei 1 metodas, neatsižvelgiant į filtrų pasirinkimą | Šiek tiek sunku valdyti VBA naujokams |
Užkirsti kelią „Excel“ duomenų praradimui
Nors MS Excel darosi vis tobulesnė ir sudėtingesnė, ji vis tiek retkarčiais užstringa dėl įvairių veiksnių, pvz., kenkėjiškų trečiųjų šalių priedų ar žmogaus klaidų ir pan. Kadangi „Excel“ gedimas gali tiesiogiai sukelti Excel korupcija, kad išvengtumėte Excel duomenų praradimo, turite reguliariai kurti atsargines Excel failų kopijas. Kitu atveju reikia pritaikyti Excel taisymo įrankį, pvz DataNumen Excel Repair ištaisyti sugadintus Excel failus.
Autoriaus įvadas:
Shirley Zhang yra duomenų atkūrimo ekspertė DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant SQL Server remontas ir „Outlook“ taisymo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com






