Při analýze dat může být někdy potřeba rozdělit obsah listu aplikace Excel do více sešitů aplikace Excel podle konkrétního sloupce. V tomto příspěvku vás naučíme 2 rychlé způsoby, jak toho dosáhnout.
Mnoho uživatelů často potřebuje rozdělit list aplikace Excel, který obsahuje obrovské řádky dat, do několika samostatných sešitů aplikace Excel založených na konkrétním sloupci. Například zde je můj ukázkový list aplikace Excel. Chtěl bych rozdělit data tohoto listu na základě sloupce „Cena za jednu licenci (USD)“ do více sešitů.

Obecně máte tendenci používat následující metodu 1 k ručnímu filtrování a kopírování dat. Bude však docela zdlouhavé a hloupé, pokud existuje příliš mnoho možností filtrování. Proto zde také ukazujeme mnohem pohodlnější způsob - metodu 2, která používá VBA. Nyní si je přečtěte podrobně.
Metoda 1: Kopírování obsahu do samostatných sešitů aplikace Excel po filtrování
- Nejprve vyberte buňku v konkrétním sloupci, například „Buňka B1“ v mé vlastní instanci.
- Poté přejděte na kartu „Data“ a klikněte na tlačítko „Filtr“.
- Poté klikněte na tlačítko „šipka dolů“ v záhlaví sloupce a zobrazí se seznam možností filtrování.
- Nyní zrušte zaškrtnutí možnosti „(Vybrat vše)“.
- Poté můžete vybrat jednu možnost filtru, například „29.95“ v mém příkladu, a kliknout na „OK“.
- Najednou budou ponechána pouze data, jejichž hodnota ve sloupci B je „29.95“.
- Poté zkopírujte filtrovaná data a vložte je do nového sešitu aplikace Excel.
- Později stejným způsobem rozdělte ostatní data do samostatných sešitů aplikace Excel.
Metoda 2: Dávkové rozdělení obsahu do více sešitů aplikace Excel pomocí VBA
- V první řadě zajistěte, aby byl otevřen konkrétní list.
- Dále spusťte editor VBA podle „Jak spustit kód VBA v aplikaci Excel".
- Poté vložte následující kód do projektu „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
- Poté klikněte na ikonu „Spustit“ na panelu nástrojů nebo stiskněte tlačítko „F5“.
- Po dokončení makra budou vytvořeny samostatné sešity aplikace Excel s rozdělenými daty ze zdrojového listu aplikace Excel.
- Každý sešit bude vypadat jako na následujícím snímku obrazovky.
Porovnání
| Výhody | Nevýhody | |
| Metoda 1 | 1. Snadné ovládání pro všechny uživatele aplikace Excel | Problematické, pokud existuje příliš mnoho možností filtrování |
| 2. Rychlé, pokud existuje několik možností filtrování | ||
| Metoda 2 | Mnohem efektivnější než metoda 1 bez ohledu na množství možností filtrování | Trochu těžké pracovat pro nováčky VBA |
Zabraňte ztrátě dat aplikace Excel
Ačkoli je MS Excel stále pokročilejší a sofistikovanější, stále má tendenci občas selhávat kvůli různým faktorům, jako jsou škodlivé doplňky třetích stran nebo lidské chyby atd. Vzhledem k tomu, že selhání aplikace Excel může přímo vést k Excel poškozeníAbyste se vyhnuli ztrátě dat aplikace Excel, musíte soubory aplikace Excel pravidelně zálohovat. V opačném případě musíte použít nástroj pro opravu aplikace Excel, například DataNumen Excel Repair opravit poškozené soubory aplikace Excel.
Úvod autora:
Shirley Zhang je expertem na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně SQL Server opravit a výhledové softwarové produkty pro opravy. Pro více informací navštivte www.datanumen.com






