Az adatelemzés során időnként előfordulhat, hogy egy Excel-munkalap tartalmát több Excel-munkafüzetre kell felosztania egy adott oszlopnak megfelelően. Most, ebben a post, megtanítunk 2 gyors módot a beszerzésére.
Sok felhasználónak gyakran fel kell osztania egy hatalmas adatsort tartalmazó Excel-munkalapot több különálló Excel-munkafüzetre egy adott oszlop alapján. Például itt van az én minta Excel-munkalapom. A munkalap adatait az „Egyetlen licenc ára (US$)” oszlop alapján több munkafüzetre szeretném felosztani.
Általában a következő 1. módszert használja az adatok kézi szűrésére és másolására. De elég fárasztó és hülye lesz, ha túl sok szűrőbeállítás van. Ezért itt egy sokkal kényelmesebb módszert is bemutatunk – a 2. módszert, amely VBA-t használ. Most olvassa el, hogy részletesen megismerje őket.
1. módszer: Szűrés után másolja a tartalmat külön Excel-munkafüzetekbe
- Először válasszon ki egy cellát az adott oszlopban, például a „B1 cellát” a saját példányomban.
- Ezután lépjen az „Adatok” fülre, és kattintson a „Szűrés” gombra.
- Ezután kattintson a „lefelé mutató nyíl” gombra az oszlop fejlécében a szűrőlehetőségek listájának megjelenítéséhez.
- Most törölje a jelölést a „(Select All)” opcióból.
- Ezután kiválaszthat egy szűrőlehetőséget, például a példámban a „29.95”, majd kattintson az „OK” gombra.
- Egyszerre csak azok az adatok maradnak meg, amelyek értéke a B oszlopban „29.95”.
- Ezután másolja ki a szűrt adatokat, és illessze be őket egy új Excel-munkafüzetbe.
- Később ugyanezzel a módszerrel ossza szét a többi adatot külön Excel-munkafüzetekké.
2. módszer: A tartalom kötegelt felosztása több Excel-munkafüzetre VBA-n keresztül
- Először is győződjön meg arról, hogy az adott munkalap meg van nyitva.
- Ezután indítsa el a VBA-szerkesztőt a „A VBA kód futtatása az Excelben".
- Ezután írja be a következő kódot a „ThisWorkbook” projektbe.
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
- Ezután kattintson a „Futtatás” ikonra az eszköztáron, vagy nyomja meg az „F5” gombot.
- Amikor a makró befejeződik, külön Excel-munkafüzetek jönnek létre a forrás Excel-munkalap felosztott adataival.
- Mindegyik munkafüzet az alábbi képernyőképhez hasonlóan fog kinézni.
Compare
| Előnyök | Hátrányok | |
| Módszer 1 | 1. Könnyen kezelhető minden Excel felhasználó számára | Problémás, ha túl sok szűrő van kiválasztva |
| 2. Gyors, ha kevés a szűrő | ||
| Módszer 2 | A szűrők mennyiségétől függetlenül sokkal hatékonyabb, mint az 1. módszer | Kicsit nehéz kezelni VBA kezdőknek |
Az Excel adatvesztés megelőzése
Bár az MS Excel egyre fejlettebb és kifinomultabb, még mindig hajlamos időről időre összeomlani különféle tényezők, például rosszindulatú harmadik féltől származó bővítmények vagy emberi hibák miatt. Mivel az Excel összeomlása közvetlenül vezethet Excel korrupció, hogy elkerülje az Excel adatvesztést, rendszeresen biztonsági másolatot kell készítenie Excel fájljairól. Ellenkező esetben egy Excel javítóeszközt kell alkalmaznia, mint pl DataNumen Excel Repair a sérült Excel-fájlok javításához.
Szerző Bevezetés:
Shirley Zhang adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve SQL Server javítás és outlook javítószoftver termékek. További információért látogasson el www.datanumen.com







