Andmeanalüüsi käigus võib mõnikord tekkida vajadus jagada Exceli töölehe sisu mitmeks Exceli töövihikuks kindla veeru järgi. Nüüd õpetame teile selles postituses kahte kiiret viisi selle saamiseks.
Paljud kasutajad peavad sageli jagama Exceli töölehe, mis sisaldab suuri andmeridu, mitmeks eraldi Exceli töövihikuks, mis põhinevad konkreetsel veerul. Näiteks siin on minu Exceli töölehe näidis. Soovin jagada selle lehe andmed veeru „Ühe litsentsi hind (USD)” alusel mitmeks töövihikuks.

Üldiselt kasutate andmete käsitsi filtreerimiseks ja kopeerimiseks järgmist 1. meetodit. Kuid see on üsna tüütu ja rumal, kui filtrivalikuid on liiga palju. Seetõttu näitame siin ka palju mugavamat viisi – 2. meetodit, mis kasutab VBA-d. Nüüd lugege edasi, et neid üksikasjalikult saada.
1. meetod: pärast filtreerimist kopeerige sisu eraldi Exceli töövihikutesse
- Kõigepealt valige konkreetses veerus lahter, näiteks minu enda eksemplaris "Cell B1".
- Seejärel minge vahekaardile "Andmed" ja klõpsake nuppu "Filter".
- Järgmisena klõpsake filtrivalikute loendi kuvamiseks veeru päises nuppu "allanool".
- Nüüd tühjendage valik „(Vali kõik)”.
- Pärast seda saate valida ühe filtrivaliku, näiteks minu näites "29.95" ja klõpsata "OK".
- Korraga jäetakse alles vaid andmed, mille väärtus veerus B on “29.95”.
- Seejärel kopeerige filtreeritud andmed ja kleepige need uude Exceli töövihikusse.
- Hiljem kasutage samamoodi teiste andmete eraldamiseks Exceli töövihikuteks.
2. meetod: jagage sisu VBA kaudu mitmeks Exceli töövihikuks
- Esiteks veenduge, et konkreetne tööleht oleks avatud.
- Järgmisena käivitage VBA redaktor vastavalt "Kuidas Excelis VBA koodi käivitada".
- Seejärel sisestage projekti "ThisWorkbook" järgmine kood.
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ärast seda klõpsake tööriistaribal ikooni "Käivita" või vajutage nuppu "F5".
- Kui makro on lõppenud, luuakse Exceli lähtetöölehe poolitatud andmetega eraldi Exceli töövihikud.
- Iga töövihik näeb välja nagu järgmine ekraanipilt.
võrdlus
| Eelised | Puudused | |
| Meetod 1 | 1. Lihtne kasutada kõigile Exceli kasutajatele | Tülikas, kui filtrivalikuid on liiga palju |
| 2. Kiire, kui filtrivalikuid on vähe | ||
| Meetod 2 | Palju tõhusam kui meetod 1, olenemata filtrivalikute arvust | VBA algajatele natuke raske kasutada |
Vältige Exceli andmete kadumist
Kuigi MS Excel muutub üha arenenumaks ja keerukamaks, kipub see aeg-ajalt kokku jooksma mitmesuguste tegurite tõttu, nagu pahatahtlikud kolmanda osapoole lisandmoodulid või inimlikud vead ja nii edasi. Kuna Exceli krahh võib otseselt kaasa tuua Exceli korruptsioon, et vältida Exceli andmete kadumist, peate oma Exceli failid regulaarselt varundama. Vastasel juhul peate rakendama Exceli parandustööriista, nt DataNumen Excel Repair rikutud Exceli failide parandamiseks.
Autori sissejuhatus:
Shirley Zhang on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas SQL Server remont ja Outlooki remonditarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom






