excelpogodzinach-logo
Sortowanie elementów filtru raportu tabeli przestawnej - Excel Po Godzinach

ENM #005: Sortowanie elementów filtru raportu tabeli przestawnej

Excel oferuje swoim użytkownikom niezliczone narzędzia do pracy na danych liczbowych. Jest ich tak dużo, że opanowanie wszystkich zajmuje wielu z nas sporo czasu. Jednakże pomimo ogromnej wiedzy jaką dysponujemy zdarzają się sytuacje, gdy proste zadania urastają do rangi bardzo trudnych lub wręcz niemożliwych. Na jeden z takich przypadków trafił Krzysztof, który zapytał mnie wprost o to w jaki sposób posortować elementy filtru tabeli przestawnej i czy jest to w ogóle możliwe. Jeśli i Ty jesteś ciekaw jak to zrobić, to zapraszam Cię do obejrzenia kolejnego odcinka serii Excel Na Miękko. Wystarczy, że klikniesz na filmik zamieszczony poniżej.
 

Sortowanie elementów filtru – sprawdzone rozwiązanie krok po kroku

Zaprezentowany powyżej film zawiera co prawda dwa sposoby umożliwiające sortowanie elementów filtru raportu tabeli przestawnej, ale w tym miejscu skupię się tylko na drugim sposobie, który poza uporządkowaniem listy elementów zgodnie z literami alfabetu (od A do Z lub od Z do A) uwzględnia w sortowaniu nowe dane dodawane do źródła tabeli przestawnej.

Aby ustawić sortowanie elementów filtru tabeli przestawnej należy:
1. Przenieść pole Marka z obszaru Filtry do obszaru Wiersze.
2. Kliknąć strzałkę w komórce Etykiety wierszy, a następnie wybrać opcję Sortuj od A do Z lub Sortuj od Z do A.
3. Przenieść z powrotem pole Marka do obszaru Filtry i gotowe!

Jeśli teraz klikniesz strzałkę w filtrze raportu to zauważysz, że wszystkie elementy danego pola zostały posortowane.

BONUS dla wytrwałych 😉

Sortowanie elementów filtru raportu tabeli przestawnej możesz również wymusić za pomocą makra VBA (Visual Basic for Applications). Wystarczy do tego jedno polecenie:

ActiveSheet.PivotTables("Tabela przestawna").PivotFields("Pole").AutoSort xlAscending, "Pole"

 
Pamiętać musisz tylko o wprowadzeniu właściwej nazwy tabeli przestawnej np. Tabela przestawna1 oraz podaniu nazwy pola, które ma być sortowane. W naszym przykładzie jest to pole Marka.

Jeżeli chciałbyś przećwiczyć temat na danych, z których korzystałem przy nagrywaniu tego odcinka Excel Na Miękko, a przy okazji zobaczyć jak działa sortowanie przy użyciu makra (zobacz arkusz BONUS), to kliknij na link poniżej i otwórz lub zapisz na dysku przygotowany przeze mnie plik.

   Sortowanie elementów filtru raportu tabeli przestawnej – Excel Po Godzinach

Uwaga: Plik jest zapisany z rozszerzeniem .xlsm dla skoroszytów Excela zawierających makra. Jeżeli w Excelu masz ustawione wyłączanie makr i włączanie powiadomień, to zanim uruchomisz przykładowe makro będziesz musiał potwierdzić chęć włączenia obsługi makr.

Mam nadzieję, że wiadomości zaprezentowane w dzisiejszym odcinku serii Excel Na Miękko okażą się przydatne w Twojej pracy z arkuszem kalkulacyjnym. Tradycyjnie mam do Ciebie gorącą prośbę – przekaż proszę informacje o tym artykule swoim znajomym, kolegom z pracy, aby i oni mogli wspinać się na wyżyny excelowej wiedzy. Zachęcam Cię również do pozostawienia komentarza pod tekstem. Jeśli walczysz z jakimś problemem w Excelu i nie wiesz jak go rozwiązać, to napisz do mnie – może razem znajdziemy właściwą odpowiedź.

Podobał Ci się ten artykuł?

Jeśli tak, to dołącz do grona Czytelników bloga Excel Po Godzinach, którzy każdego tygodnia otrzymują sprawdzone porady, wskazówki oraz rozwiązania nietypowych problemów.

4 myśli na temat “ENM #005: Sortowanie elementów filtru raportu tabeli przestawnej

  1. WItam
    Mam problem z ilością danych w tabeli przestawnej generowanej za pomocą makro.
    Kiedy rekordów mam ponad 64000 to wyskakuje mi run-time error „13” type mismatch
    Da się to jakoś obejść?

    1. Cześć Początkujący :)

      Powodów, dla których wyskakuje run-time error może być naprawdę wiele. Dobrze byłoby rzucić okiem na kod makra, bo próba udzielenia poprawnej odpowiedzi bez wglądu w jego zawartość to jak wróżenie z fusów. Albo się uda, albo nie . Jeżeli chcesz, to skorzystaj z formularza kontaktowego (http://excelpogodzinach.pl/kontakt) i prześlij mi treść makra – spróbuję pomóc.

      Pozdrawiam

  2. Witam
    Poniżej mój kod.
    Częściowo nagrany a reszta modyfikowana moimi rękoma:)
    Ten problem pojawia się gdy jest więcej rekordów niż 65000 z groszami ( to chyba ograniczenie po starym exelu 2003).
    Sub pivot()

    ‚ pivot Makro

    Sheets(„I”).Select
    Dim WSD2 As Worksheet
    Dim zakres As Range
    Dim q As Long
    Dim PT As PivotTable
    Dim finalcol As Long
    Dim finalrow As Long
    Set WSD2 = Worksheets(„I”)

    Dim xWs As Worksheet
    Dim xPT As PivotTable
    For Each xWs In Application.ActiveWorkbook.Worksheets
    For Each xPT In xWs.PivotTables
    xWs.Range(xPT.TableRange2.Address).Delete Shift:=xlUp
    Next
    Next

    q = Cells(Rows.Count, „A”).End(xlUp).Row

    finalrow = WSD2.Cells(Rows.Count, 1).End(xlUp).Row
    finalcol = WSD2.Cells(1, Columns.Count).End(xlToLeft).Column
    Set PRANGE = WSD2.Cells(1, 1).Resize(finalrow, finalcol)
    Range(„A1” & „:J” & q).Select

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    PRANGE, Version:=xlPivotTableVersion14).CreatePivotTable _
    TableDestination:=”I!R1C15″, TableName:=”Tabela przestawna1″, _
    DefaultVersion:=xlPivotTableVersion14
    Sheets(„I”).Select
    Cells(1, 15).Select

    With ActiveSheet.PivotTables(„Tabela przestawna1”).PivotFields( _
    „TJCWPLV1_VAT_L-PL_TAXCODE”)
    .Orientation = xlRowField
    .Position = 1
    End With
    ActiveSheet.PivotTables(„Tabela przestawna1”).AddDataField ActiveSheet. _
    PivotTables(„Tabela przestawna1”).PivotFields(„TJCWPLV1_VAT_L-TAX_AMOUNT”), _
    „Suma z TJCWPLV1_VAT_L-TAX_AMOUNT”, xlSum
    ActiveWindow.SmallScroll Down:=3
    Range(„Q2”).Select
    End Sub
    Z góry dziękuje za zainteresowanie

  3. Dzień dobry p.Michale chciałbym, aby był zaprezentowany temat Rysowanie obramowań w Excelu, w którym będzie wymienione wady i zalety stosowania tego narzędzia.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *