Pri analýze údajov možno budete niekedy musieť rozdeliť obsah hárka programu Excel do viacerých zošitov programu Excel podľa konkrétneho stĺpca. Teraz, v tejto strost, naučíme vás 2 rýchle spôsoby, ako to získať.
Mnoho používateľov často musí rozdeliť hárok programu Excel, ktorý obsahuje obrovské riadky údajov, do niekoľkých samostatných zošitov programu Excel na základe konkrétneho stĺpca. Napríklad tu je môj ukážkový pracovný hárok programu Excel. Chcel by som rozdeliť údaje tohto hárku na základe stĺpca „Cena jednej licencie (USD)“ do viacerých zošitov.

Všeobecne budete mať tendenciu používať nasledujúcu metódu 1 na manuálne filtrovanie a kopírovanie údajov. Bude však dosť zdĺhavé a hlúpe, ak bude k dispozícii príliš veľa možností filtrovania. Preto tu tiež ukazujeme oveľa pohodlnejší spôsob - metódu 2, ktorá využíva VBA. Teraz ich prečítajte a získate ich podrobne.
Metóda 1: Skopírovanie obsahu do samostatných zošitov programu Excel po filtrácii
- Najprv vyberte bunku v konkrétnom stĺpci, napríklad „Bunka B1“ v mojom vlastnom prípade.
- Potom sa obráťte na kartu „Údaje“ a kliknite na tlačidlo „Filtrovať“.
- Ďalej kliknite na tlačidlo „šípka dole“ v záhlaví stĺpca, aby sa zobrazil zoznam možností filtra.
- Teraz zrušte začiarknutie možnosti „(Vybrať všetko)“.
- Potom môžete vybrať jednu voľbu filtra, napríklad „29.95“ v mojom príklade, a kliknúť na „OK“.
- Naraz sa ponechajú iba údaje, ktorých hodnota v stĺpci B je „29.95“.
- Potom skopírujte filtrované údaje a vložte ich do nového zošita programu Excel.
- Rovnakým spôsobom neskôr rozdelíte ostatné údaje do samostatných zošitov programu Excel.
Metóda 2: Dávkové rozdelenie obsahu do viacerých zošitov programu Excel prostredníctvom VBA
- V prvom rade sa uistite, že je otvorený konkrétny pracovný hárok.
- Ďalej spustite editor VBA podľa „Ako spustiť kód VBA v programe Excel".
- Potom vložte nasledujúci 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
- Potom kliknite na ikonu „Spustiť“ na paneli nástrojov alebo stlačte klávesovú skratku „F5“.
- Po dokončení makra sa vytvoria samostatné zošity programu Excel s rozdelenými údajmi zo zdrojového hárka programu Excel.
- Každý zošit bude vyzerať ako na nasledujúcom obrázku obrazovky.
Porovnanie
| výhody | Nevýhody | |
| Metóda 1 | 1. Ľahko ovládateľný pre všetkých používateľov programu Excel | Problém, ak je príliš veľa možností filtra |
| 2. Rýchle, ak existuje niekoľko možností filtra | ||
| Metóda 2 | Oveľa efektívnejšie ako metóda 1 bez ohľadu na množstvo možností filtra | Trochu ťažké pracovať pre nováčikov VBA |
Zabráňte strate údajov v programe Excel
Aj keď je program MS Excel čoraz pokročilejší a sofistikovanejší, stále má tendenciu občas zlyhávať z dôvodu rôznych faktorov, ako sú napríklad škodlivé doplnky tretích strán alebo ľudské chyby. Pretože zlyhanie programu Excel môže priamo viesť k Excel korupciaAby ste sa vyhli strate údajov v programe Excel, musíte súbory programu Excel pravidelne zálohovať. V opačnom prípade musíte použiť nástroj na opravu programu Excel, ako je napr DataNumen Excel Repair opraviť poškodené súbory programu Excel.
Úvod autora:
Shirley Zhang je expertkou na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane SQL Server oprava a výhľadové softvérové produkty na opravu. Pre viac informácií navštívte www.datanumen. S






