Zdroj: https://wall.cz/excel-navod/hromadne-skryvani-polozek-v-kontingencni-tabulce • Vydáno: 23.5.2010 14:46 • Autor: admin

Hromadné skrývání položek v kontingenční tabulce

ExcelPokud potřebujete v kontingenční tabulce skrýt velké množství položek (PivotItem), bude se vám hodit tento tip. Pro demonstraci použiji denní plán pro celý rok a v kontingenční tabulce chci zobrazit jen plány od určitého data. V praxi by to znamenalo skrýt například 150 položek (dní).

Tento tip je pro pokročilé uživatele, kteří mají zkušenosti s VBA a zpracováním kontingenčních tabulek. V případě, že se chcete/potřebujete seznámit s tvorbou kontingenčních tabulek, můžete vyzkoušet některý související článek.

Zpět k příkladu. V poli Datum jsou všechny dny z kalendářního roku a pokud by jste potřebovali skrýt data od ledna až po květen, asi by se nikomu moc nechtělo odškrtávat cca 150 položek.

Hromadné skrývání položek v kontingenční tabulce

Popis řešení.

V ukázkovém souboru na listu s kontingenční tabulkou jsem definoval název Datum s odkazem na buňku N2. Do této buňky vložíme datum, od kterého chceme položky zobrazit. V makru bude datum z buňky Datum předáno proměnné mDate. V cyklu, který prochází všechny položky (PivotItems - Datum je v proměnné iDate) nastaví vlastnost Visible = True (zobrazí) u všech, které splní podmínku mDate >= iDate. Pokud podmínka nebude splněna, bude nastavena vlastnost položky Datum na Visible = False (skryje).

Sub ShowDate() Dim pvtTable As PivotTable Dim pvtitem As PivotItem Dim Datum As Date, iDate As Date Datum = Range("Datum") Set pvtTable = ActiveSheet.PivotTables("Kontingenční tabulka 1") For Each pvtitem In pvtTable.PivotFields("Datum").PivotItems iDate = CDate(pvtitem.Value) If Datum >= iDate Then pvtitem.Visible = False Next End Sub

Obslužné makro vám zajistí nastavení položek řádově v sekundách. V makru si můžete změnit podmínku, PivotFields a tím ho přizpůsobit vašim potřebám. Vzorovou tabulku i s makrem si můžete prohlédnout v souboru Nejste přihlášen(a).