Vrtilna tabela - filter
Vrtilna tabela - filter
Pozdravljeni,
prosim Vas za pomoč pri uporabi filtra v vrtilni tabeli. Uporabnik v razčlenjevalniku izbere poljubno leto, za katerega se izpišejo podatki. Kot dodatek k tej tabeli bi bilo potrebno izračunati indeks (primerjava izbranega in preteklega leta). Kako naj v vrtilni tabeli dobim podatke za izbrano leto in preteklo leto, če uporabnik izbire samo željeno leto?
Hvala za pomoč.
LP
prosim Vas za pomoč pri uporabi filtra v vrtilni tabeli. Uporabnik v razčlenjevalniku izbere poljubno leto, za katerega se izpišejo podatki. Kot dodatek k tej tabeli bi bilo potrebno izračunati indeks (primerjava izbranega in preteklega leta). Kako naj v vrtilni tabeli dobim podatke za izbrano leto in preteklo leto, če uporabnik izbire samo željeno leto?
Hvala za pomoč.
LP
Re: Vrtilna tabela - filter
Pozdravljeni,
Namesto da razmišljate kako bi to rešili v fazi uporabe, raje rešite to že v fazi priprave. V vašem primeru je problem dokaj trivialen, saj vas vedno zanima indeks na preteklo leto, kar pomeni, da lahko vse indekse izberete izračunate že vnaprej in so pripravljeni kot atribut v originalni tabeli. Vrtilno tabel po uredite tako, da vedno prikaže tudi atribut indeks na preteklo leto. V osnovno tabelo torej dodajte atribut 'IndeksNaPretekloLeto' in ga v originalni tabeli tudi izračunajte, v vrtilni tabeli pa ga samo prikažite.
V kolikor pa je indeks na preteklo leto sumarni indeks, torej je odvisen od skupin, ki jih uporabnik izbere v vrtilni tabeli, potem pa je problem malce težji in ni kar splošne rešitve, temveč je slednja odvisna od strukture vaših tabel. V nobenem primeru ne razmišljajte o rešitvi, kjer bi vrtilna tabela "ugotavljala" katero leto je prikazano in kateri indeks mora izračunati... Po tej poti vam ne bo uspelo. Spete je prava rešitev preprosto v tem, da v originalni tabeli dodate atribut prejšnje leto in tam podatke prejšnjega leta... potem pa lahko vedno preprosto računate indekse.
Namesto da razmišljate kako bi to rešili v fazi uporabe, raje rešite to že v fazi priprave. V vašem primeru je problem dokaj trivialen, saj vas vedno zanima indeks na preteklo leto, kar pomeni, da lahko vse indekse izberete izračunate že vnaprej in so pripravljeni kot atribut v originalni tabeli. Vrtilno tabel po uredite tako, da vedno prikaže tudi atribut indeks na preteklo leto. V osnovno tabelo torej dodajte atribut 'IndeksNaPretekloLeto' in ga v originalni tabeli tudi izračunajte, v vrtilni tabeli pa ga samo prikažite.
V kolikor pa je indeks na preteklo leto sumarni indeks, torej je odvisen od skupin, ki jih uporabnik izbere v vrtilni tabeli, potem pa je problem malce težji in ni kar splošne rešitve, temveč je slednja odvisna od strukture vaših tabel. V nobenem primeru ne razmišljajte o rešitvi, kjer bi vrtilna tabela "ugotavljala" katero leto je prikazano in kateri indeks mora izračunati... Po tej poti vam ne bo uspelo. Spete je prava rešitev preprosto v tem, da v originalni tabeli dodate atribut prejšnje leto in tam podatke prejšnjega leta... potem pa lahko vedno preprosto računate indekse.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vrtilna tabela - filter
Hvala za odgovor.
Indeks sam ni odvisen samo od leta, ampak od večih dejavnikov. S tega vidika ne morem uporabiti prve rešitve in ustvariti samo novo mero kot indeks prejšnjega leta. Moj vir vrtilne tabele je olap kocka. Ali obstaja možnost, da se filter sklicuje na vrednost posamezne celice, ki ni del vrtilne tabele?
lp.
Indeks sam ni odvisen samo od leta, ampak od večih dejavnikov. S tega vidika ne morem uporabiti prve rešitve in ustvariti samo novo mero kot indeks prejšnjega leta. Moj vir vrtilne tabele je olap kocka. Ali obstaja možnost, da se filter sklicuje na vrednost posamezne celice, ki ni del vrtilne tabele?
lp.
Re: Vrtilna tabela - filter
Tega pa ne razumem najbolje. Opišite primer oz. malce bolj konkretno...maj napisal/-a:Ali obstaja možnost, da se filter sklicuje na vrednost posamezne celice, ki ni del vrtilne tabele?
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vrtilna tabela - filter
Filter prevzame vrednost celice, k se nahaja na listu. S tem bi sprožila, da se podatki osvežujejo glede na vrednost, ki jo vsebuje določena celica.
Re: Vrtilna tabela - filter
Kolikor je meni znano in kolikor vem, se to ne da.
V tem primeru vam torej ostane samo še VBA...
V tem primeru vam torej ostane samo še VBA...
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vrtilna tabela - filter
Poskusila sem rešiti z VBA, vendar mi javi napako 1004 za PivotFields.
Ustvarila sem makro :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("E37:E38")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Set pt = Worksheets("List2").PivotTables("Vrtilna tabela2")
Set Field = pt.PivotFields("Leto")
NewCat = Worksheets("List2").Range("E37").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
Ali mi lahko prosim pomagate odpraviti napako?
Hvala za vso vašo pomoč.
Lp
Ustvarila sem makro :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("E37:E38")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Set pt = Worksheets("List2").PivotTables("Vrtilna tabela2")
Set Field = pt.PivotFields("Leto")
NewCat = Worksheets("List2").Range("E37").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
Ali mi lahko prosim pomagate odpraviti napako?
Hvala za vso vašo pomoč.
Lp
Re: Vrtilna tabela - filter
Napaka 1004 pomeni, da element ni definiran. Kaj točno pa je napačno pa je odvisno od tega, kje VAB to napako javi. V kolikor vam to javi na 'pt.PivotFields("Leto")' pomeni, da element Leto ni definiran oz. vrtilna tabela nima polja 'Leto'
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vrtilna tabela - filter
Napako javi na tem mestu:
Set Field = pt.PivotFields("Leto")
V vrtilni tabeli (vir OLAP) imam kot parameter določeno polje Leto, ki je v MDX definiran kot [Obračunsko leto mesec].[Leto].
Ali je problem v tem?
Set Field = pt.PivotFields("Leto")
V vrtilni tabeli (vir OLAP) imam kot parameter določeno polje Leto, ki je v MDX definiran kot [Obračunsko leto mesec].[Leto].
Ali je problem v tem?
Re: Vrtilna tabela - filter
Da, v tem je problem. Ime morate napisati pravilno.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vrtilna tabela - filter
Zdravo,
hvala za vso pomoč. Sporočam, da problem ni bil v poimenovanju polja, ampak v CurrentPage.
Lp.
hvala za vso pomoč. Sporočam, da problem ni bil v poimenovanju polja, ampak v CurrentPage.
Lp.