Včasih boste pri analizi podatkov morda morali vsebino Excelovega delovnega lista razdeliti v več Excelovih delovnih zvezkov glede na določen stolpec. V tej objavi vas bomo naučili dveh hitrih načinov, kako to doseči.
Mnogi uporabniki pogosto morajo razdeliti Excelov delovni list, ki vsebuje ogromne vrstice podatkov, v več ločenih Excelovih delovnih zvezkih na podlagi določenega stolpca. Tu je na primer moj vzorec delovnega lista Excel. Podatke tega lista bi rad razdelil na podlagi stolpca »Cena posamezne licence (USD)« v več delovnih zvezkov.

Na splošno boste za ročno filtriranje in kopiranje podatkov običajno uporabljali naslednjo 1. metodo. Ampak, precej dolgočasno in neumno bo, če bo možnosti filtriranja preveč. Zato tukaj prikazujemo tudi veliko bolj priročen način - 2. način, ki uporablja VBA. Zdaj preberite, če jih želite podrobno prebrati.
1. način: Kopiranje vsebine v ločene Excelove delovne zvezke po filtru
- Najprej izberite celico v določenem stolpcu, na primer »Celica B1« v mojem lastnem primeru.
- Nato odprite zavihek »Podatki« in kliknite gumb »Filter«.
- Nato v glavi stolpca kliknite gumb »puščica dol«, da se prikaže seznam možnosti filtra.
- Zdaj počistite možnost »(Select All)«.
- Po tem lahko izberete eno izbiro filtra, na primer »29.95« v mojem primeru, in kliknete »V redu«.
- Takoj bodo ostali le podatki, katerih vrednost v stolpcu B je "29.95".
- Nato kopirajte filtrirane podatke in jih prilepite v nov Excelov delovni zvezek.
- Kasneje na enak način razdelite ostale podatke v ločene Excelove delovne zvezke.
2. način: Vsebino razdelite v več delovnih zvezkov Excel prek VBA
- Najprej zagotovite, da se odpre določen delovni list.
- Nato zaženite urejevalnik VBA v skladu z “Kako zagnati kodo VBA v Excelu".
- Nato v projekt »ThisWorkbook« vnesite naslednjo kodo.
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 tem v orodni vrstici kliknite ikono »Zaženi« ali pritisnite tipko »F5«.
- Ko se makro konča, bodo ustvarjeni ločeni Excelovi delovni zvezki z razdeljenimi podatki iz izvornega Excelovega delovnega lista.
- Vsak delovni zvezek bo videti kot naslednji posnetek zaslona.
Primerjava
| Prednosti | Slabosti | |
| Metoda 1 | 1. Enostaven za uporabo za vse uporabnike Excela | Težavno, če je filtrov preveč |
| 2. Hitro, če je filtrov malo | ||
| Metoda 2 | Veliko učinkovitejši od metode 1 ne glede na izbiro filtra | Nekoliko težko je delati za novince VBA |
Preprečite izgubo podatkov v Excelu
Čeprav MS Excel postaja vse bolj napreden in izpopolnjen, se kljub temu občasno sesuje zaradi različnih dejavnikov, kot so zlonamerni dodatki tretjih oseb ali človeške napake itd. Ker lahko zrušitev Excela neposredno pripelje do Excel korupcija, da bi se izognili izgubi podatkov v Excelu, morate redno varnostno kopirati datoteke Excel. V nasprotnem primeru morate uporabiti orodje za popravilo Excel, kot je DataNumen Excel Repair popraviti poškodovane datoteke Excel.
Uvod avtorja:
Shirley Zhang je strokovnjakinja za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z SQL Server popravilo in obeti za popravilo programskih izdelkov. Za več informacij obiščite www.datanumen.com






