..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

Vrtilna tabela - filter

Pomoč pri delu z MS Excelom

Vrtilna tabela - filter

OdgovorNapisal/-a maj » Pe maj 09, 2014 8:51 am

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
maj
 
Prispevkov: 6
Pridružen: Pe maj 09, 2014 8:25 am



Matjazev.NET
 

Re: Vrtilna tabela - filter

OdgovorNapisal/-a admin » Pe maj 09, 2014 9:05 am

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.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3485
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Vrtilna tabela - filter

OdgovorNapisal/-a maj » Pe maj 09, 2014 9:23 am

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.
maj
 
Prispevkov: 6
Pridružen: Pe maj 09, 2014 8:25 am

Re: Vrtilna tabela - filter

OdgovorNapisal/-a admin » Pe maj 09, 2014 9:48 am

maj je napisal/-a:Ali obstaja možnost, da se filter sklicuje na vrednost posamezne celice, ki ni del vrtilne tabele?

Tega pa ne razumem najbolje. Opišite primer oz. malce bolj konkretno...
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3485
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Vrtilna tabela - filter

OdgovorNapisal/-a maj » Pe maj 09, 2014 9:52 am

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.
maj
 
Prispevkov: 6
Pridružen: Pe maj 09, 2014 8:25 am

Re: Vrtilna tabela - filter

OdgovorNapisal/-a admin » Pe maj 09, 2014 10:09 am

Kolikor je meni znano in kolikor vem, se to ne da.

V tem primeru vam torej ostane samo še VBA...
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3485
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Vrtilna tabela - filter

OdgovorNapisal/-a maj » Pe maj 09, 2014 1:19 pm

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
maj
 
Prispevkov: 6
Pridružen: Pe maj 09, 2014 8:25 am

Re: Vrtilna tabela - filter

OdgovorNapisal/-a admin » Pe maj 09, 2014 1:35 pm

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
admin
Site Admin
 
Prispevkov: 3485
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Vrtilna tabela - filter

OdgovorNapisal/-a maj » Pe maj 09, 2014 1:51 pm

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?
maj
 
Prispevkov: 6
Pridružen: Pe maj 09, 2014 8:25 am

Re: Vrtilna tabela - filter

OdgovorNapisal/-a admin » Pe maj 09, 2014 2:17 pm

Da, v tem je problem. Ime morate napisati pravilno.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3485
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Vrtilna tabela - filter

OdgovorNapisal/-a maj » Sr maj 14, 2014 12:19 pm

Zdravo,

hvala za vso pomoč. Sporočam, da problem ni bil v poimenovanju polja, ampak v CurrentPage.

Lp.
maj
 
Prispevkov: 6
Pridružen: Pe maj 09, 2014 8:25 am


Vrni se na Excel

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron