Czasami podczas analizy danych może zaistnieć potrzeba podzielenia zawartości arkusza kalkulacyjnego Excel na kilka skoroszytów według konkretnej kolumny. W tym poście pokażemy Ci 2 proste sposoby, aby to zrobić.
Wielu użytkowników często musi podzielić arkusz programu Excel, który zawiera ogromne wiersze danych na wiele oddzielnych skoroszytów programu Excel na podstawie określonej kolumny. Na przykład, oto mój przykładowy arkusz programu Excel. Chciałbym podzielić dane tego arkusza na podstawie kolumny „Cena pojedynczej licencji (USD)” na wiele skoroszytów.

Ogólnie rzecz biorąc, będziesz zwykle używać następującej metody 1 do ręcznego filtrowania i kopiowania danych. Ale będzie to dość żmudne i głupie, jeśli będzie zbyt wiele opcji filtrowania. Dlatego tutaj pokazujemy również znacznie wygodniejszy sposób - Metodę 2, która wykorzystuje VBA. Teraz przeczytaj dalej, aby uzyskać szczegółowe informacje.
Metoda 1: Skopiuj zawartość do oddzielnych skoroszytów programu Excel po przefiltrowaniu
- Najpierw wybierz komórkę w określonej kolumnie, na przykład „Komórka B1” w moim wystąpieniu.
- Następnie przejdź do zakładki „Dane” i kliknij przycisk „Filtr”.
- Następnie kliknij przycisk „strzałka w dół” w nagłówku kolumny, aby wyświetlić listę dostępnych filtrów.
- Teraz odznacz opcję „(Zaznacz wszystko)”.
- Następnie możesz wybrać jeden filtr, na przykład „29.95” w moim przykładzie i kliknąć „OK”.
- Od razu pozostaną tylko dane, których wartość w kolumnie B wynosi „29.95”.
- Następnie skopiuj przefiltrowane dane i wklej je do nowego skoroszytu programu Excel.
- Później w ten sam sposób podziel inne dane w celu oddzielenia skoroszytów programu Excel.
Metoda 2: Podziel zawartość wsadowo na wiele skoroszytów programu Excel za pośrednictwem języka VBA
- Przede wszystkim upewnij się, że jest otwarty określony arkusz.
- Następnie uruchom edytor VBA zgodnie z „Jak uruchomić kod VBA w programie Excel".
- Następnie umieść następujący kod w projekcie „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
- Następnie kliknij ikonę „Uruchom” na pasku narzędzi lub naciśnij klawisz „F5”.
- Po zakończeniu działania makra oddzielne skoroszyty programu Excel zostaną utworzone z podzielonymi danymi ze źródłowego arkusza programu Excel.
- Każdy skoroszyt będzie wyglądał jak na poniższym zrzucie ekranu.
Porównanie
| Zalety | Wady | |
| Metoda 1 | 1. Łatwy w obsłudze dla wszystkich użytkowników programu Excel | Kłopotliwe, jeśli jest zbyt wiele opcji filtrów |
| 2. Szybko, jeśli dostępnych jest kilka filtrów | ||
| Metoda 2 | O wiele bardziej wydajna niż metoda 1, bez względu na liczbę dostępnych filtrów | Trochę trudny w obsłudze dla początkujących użytkowników VBA |
Zapobiegaj utracie danych programu Excel
Chociaż MS Excel staje się coraz bardziej zaawansowany i wyrafinowany, nadal od czasu do czasu ulega awarii z powodu różnych czynników, takich jak złośliwe dodatki stron trzecich lub błędy ludzkie i tak dalej. Ponieważ awaria programu Excel może bezpośrednio prowadzić do Uszkodzenie programu ExcelAby uniknąć utraty danych programu Excel, należy regularnie tworzyć kopie zapasowe plików programu Excel. W przeciwnym razie musisz zastosować narzędzie do naprawy programu Excel, takie jak DataNumen Excel Repair naprawić uszkodzone pliki Excel.
Wprowadzenie autora:
Shirley Zhang jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym SQL Server naprawa i oprogramowanie do naprawy programu Outlook. po więcej informacji odwiedź www.datanumen.com






