< návrat zpět
MS Excel
Téma: Filtrování KT dle 2 datumů
Zaslal/a Nomi 30.5.2022 13:31
Zdravím poradil by někdo jak zprovoznit makro které bude filtrovat tabulku dle datumů.
Mám XY lidí a jejich denní výkaz z kterého se mi dělá KT+Graf a já bych si chtěl někdy vyfiltrovat jen třeba posledních 10 dni tak že mám buňku B1 kde je dnešní datum, v B2 mám kolik dní chci filtrovat a tím se mi dopočítá B3.
Pak mám Makro které do promněné načte datum z B1 a B3 do druhé a pak by se mělo KT zafiltrovat mezi daty B1 a B3.
Problém je že promněná:
DoData = Range("B1").Value
se datum uloží v CZ formátu dd.mm.yyyy ale v tabulce se mi pak chce filtrovat jako v US formátu mm/dd/yyy = z data 30.5.2022 to pak hledá jako by 5/30/2022 což mi pak žádná data nenajde.
Případně snad víc napoví přiložený soubor.
PS: dá se do grafu nějak upravit aby čas v levém sloupci byl na celá čísla, Např 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00H. Našel jsem nastavení Min Max osy 0,15 až 0,5 ale touto změnou se moc dobře nemanipuluje
Příloha: 52797_filtrovani-grafu.zip (69kB, staženo 12x)
elninoslov(30.5.2022 17:48)#052799 Sub T()
With Worksheets("Home")
DoData = Format(.Range("B1").Value, "d.m.yyyy")
OdData = Format(.Range("B3").Value, "d.m.yyyy")
With .ChartObjects("Graf 2").Chart.PivotLayout.PivotTable.PivotFields("Datum")
.ClearLabelFilters
.PivotItems("(blank)").Visible = False
.PivotFilters.Add2 Type:=xlCaptionIsBetween, Value1:=OdData, Value2:=DoData
End With
End With
End Sub
Ja by som si ale previedol ten "dátum" na dátum a potom by to bolo
Sub T()
With Worksheets("Home")
DoData = CDbl(.Range("B1").Value)
OdData = CDbl(.Range("B3").Value)
With .ChartObjects("Graf 2").Chart.PivotLayout.PivotTable.PivotFields("Datum")
.ClearLabelFilters
.PivotItems("(blank)").Visible = False
.PivotFilters.Add2 Type:=xlDateBetween, Value1:=OdData, Value2:=DoData
End With
End With
End Subcitovat
lubo(30.5.2022 18:05)#052800 Spíš bych přidal druhý sloupec "datum" a vložil bych filtr "časovou osu". (analýza KT, filtr, vložit časovou osu).
(první datum se v kt automaticky převádí na text, proto ta kopie)
Add manipulace s časem v ose - makro, převést čas na desetinné číslo a vložit do osy.
citovat
Nomi(31.5.2022 8:21)#052807 Děkuji moc za rady.
@elninoslov
opět úžasné a elegantní řešení.
citovat