Datu analīzē dažkārt var būt nepieciešams sadalīt Excel darblapas saturu vairākās Excel darbgrāmatās atbilstoši konkrētai kolonnai. Tagad šajā ierakstā mēs jums iemācīsim divus ātrus veidus, kā to izdarīt.
Daudziem lietotājiem bieži ir jāsadala Excel darblapa, kurā ir milzīgas datu rindas, vairākās atsevišķās Excel darbgrāmatās, pamatojoties uz noteiktu kolonnu. Piemēram, šeit ir mans Excel darblapas paraugs. Es vēlētos sadalīt šīs lapas datus, pamatojoties uz sleju “Vienas licences cena (ASV dolāri)” vairākās darbgrāmatās.

Parasti, lai manuāli filtrētu un kopētu datus, jums būs jāizmanto šī 1. metode. Bet tas būs diezgan nogurdinoši un stulbi, ja filtrēšanas iespēju ir par daudz. Tāpēc šeit mēs parādām arī daudz ērtāku veidu - 2. metodi, kurā tiek izmantota VBA. Tagad lasiet tālāk, lai tos iegūtu detalizēti.
1. metode: kopējiet saturu, lai pēc filtrēšanas atdalītu Excel darbgrāmatas
- Sākumā atlasiet šūnu konkrētajā kolonnā, piemēram, “Šūna B1” manā gadījumā.
- Pēc tam pārejiet uz cilni “Dati” un noklikšķiniet uz pogas “Filtrēt”.
- Pēc tam kolonnas galvenē noklikšķiniet uz pogas “lejupvērstā bultiņa”, lai parādītu filtru izvēles sarakstu.
- Tagad noņemiet atzīmi no izvēles rūtiņas “(Atlasīt visu)”.
- Pēc tam jūs varat izvēlēties vienu filtra izvēli, piemēram, “29.95” manā piemērā, un noklikšķiniet uz “OK”.
- Uzreiz tiks atstāti tikai tie dati, kuru vērtība B slejā ir “29.95”.
- Pēc tam nokopējiet filtrētos datus un ielīmējiet tos jaunā Excel darbgrāmatā.
- Vēlāk izmantojiet to pašu veidu, kā sadalīt pārējos datus, lai atdalītu Excel darbgrāmatas.
2. metode: Sadaliet saturu vairākās Excel darbgrāmatās, izmantojot VBA
- Pirmkārt, pārliecinieties, ka ir atvērta konkrētā darblapa.
- Pēc tam palaidiet VBA redaktoru atbilstoši “Kā palaist VBA kodu savā Excel".
- Pēc tam projektā “ThisWorkbook” ievietojiet šādu kodu.
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
- Pēc tam rīkjoslā noklikšķiniet uz ikonas “Palaist” vai nospiediet taustiņa “F5” taustiņu.
- Kad makro būs pabeigts, tiks izveidotas atsevišķas Excel darbgrāmatas ar sadalītajiem datiem no avota Excel darblapas.
- Katra darbgrāmata izskatīsies kā šāds ekrānuzņēmums.
salīdzinājums
| Priekšrocības | Trūkumi | |
| Metode 1 | 1. Viegli darboties visiem Excel lietotājiem | Nepatīkami, ja ir pārāk daudz filtru izvēles |
| 2. Ātri, ja ir maz filtru izvēles | ||
| Metode 2 | Daudz efektīvāka nekā 1. metode neatkarīgi no filtru izvēles apjoma | Mazliet grūti darboties VBA iesācējiem |
Novērst Excel datu zudumu
Lai gan MS Excel kļūst arvien progresīvāka un sarežģītāka, tai joprojām ir tendence laiku pa laikam sabrukt dažādu faktoru dēļ, piemēram, ļaunprātīgu trešo personu pievienojumprogrammu vai cilvēku kļūdu dēļ, un tā tālāk. Tā kā Excel avārija var tieši novest pie Excel korupcija, lai izvairītos no Excel datu zaudēšanas, jums regulāri jādublē Excel faili. Pretējā gadījumā jums jāpielieto Excel labošanas rīks, piemēram, DataNumen Excel Repair lai novērstu bojātus Excel failus.
Autora ievads:
Šērlija Džana ir datu atkopšanas eksperte DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp SQL Server remonts un perspektīvas remonta programmatūras produktus. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar






