2 Szybkie sposoby na podzielenie zawartości arkusza programu Excel na wiele skoroszytów na podstawie określonej kolumny

Podziel się teraz:

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.

Przykładowy arkusz programu Excel

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

  1. Najpierw wybierz komórkę w określonej kolumnie, na przykład „Komórka B1” w moim wystąpieniu.
  2. Następnie przejdź do zakładki „Dane” i kliknij przycisk „Filtr”.Filtruj dane
  3. Następnie kliknij przycisk „strzałka w dół” w nagłówku kolumny, aby wyświetlić listę dostępnych filtrów.
  4. Teraz odznacz opcję „(Zaznacz wszystko)”.Odznacz „Zaznacz wszystko”
  5. Następnie możesz wybrać jeden filtr, na przykład „29.95” w moim przykładzie i kliknąć „OK”.
  6. Od razu pozostaną tylko dane, których wartość w kolumnie B wynosi „29.95”.Pozostają tylko przefiltrowane dane
  7. Następnie skopiuj przefiltrowane dane i wklej je do nowego skoroszytu programu Excel.Kopiuj i wklej zawartość
  8. 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

  1. Przede wszystkim upewnij się, że jest otwarty określony arkusz.
  2. Następnie uruchom edytor VBA zgodnie z „Jak uruchomić kod VBA w programie Excel".
  3. 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

Kod VBA - podziel zawartość arkusza programu Excel na wiele skoroszytów na podstawie określonej kolumny

  1. Następnie kliknij ikonę „Uruchom” na pasku narzędzi lub naciśnij klawisz „F5”.
  2. Po zakończeniu działania makra oddzielne skoroszyty programu Excel zostaną utworzone z podzielonymi danymi ze źródłowego arkusza programu Excel.Nowe skoroszyty programu Excel
  3. Każdy skoroszyt będzie wyglądał jak na poniższym zrzucie ekranu.Oddzielne nowe skoroszyty programu Excel

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

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.