Avatar billede Paw Winther Mester
01. juli 2019 - 10:08 Der er 10 kommentarer

Filtrer en pivottabel ud fra en formel

Til min pivottabel har jeg et filter på, som bestemmer hvilke afdelinger der skal medtages, hvor efter pivtotabelen viser konti og beløb pr. måned, hvor der naturligvis kun er inkluderet beløb for de valgte afdelinger.

Jeg ønsker dog i stedet at filtrer på områder, som blot er en bestemt gruppe af afdelinger. For på den måde hurtigt at kunne skifte mellem de forskellige områder, uden at skulle ind og vælge de enkelte afdelinger.

Udfordringen er at datagrundlaget ikke indeholder information om områder, samt at datagrundlaget ligger i en ekstern kube, hvorfor jeg ikke bare kan tilføje data hertil.

Spørgsmålet er så om jeg selv kan tilføje en beregnet værdi (lopslag), som jeg så kan tilføje som et filter i pivottabelen?
Eller om det er muligt at lave en formel eller en makro som automatisk sætter filtret pr. afdeling, til de afdelinger som passer til det valgte område?

Ud over valg af område, vil jeg også kunne vælge om den kun skal vise drift, værksted eller begge dele. Kuben indeholder heller ikke her information om afdelingen er drift eller værksted.

    A          B                          C
1    Afdeling    Område              Drift/værksted
2    111      Fyn                      Drift
3    112      Fyn                      Drift
4    113      Fyn                      Drift
5    121      Jylland                Drift
6    122      Jylland                Drift
7    131      Sjælland              Drift
8    132      Sjælland              Drift
9    133      Sjælland              Drift
10    141      Lolland / Falster    Drift
11    151      Bornholm                  Drift
12    211      Fyn                      Værksted
13    221      Jylland                Værksted
14    222      Jylland                Værksted
15    231      Sjælland              Værksted
16    241      Lolland / Falster    Værksted
17    251      Bornholm            Værksted
Avatar billede kim1a Ekspert
01. juli 2019 - 12:08 #1
Hvis pivoten er ens hver gang, bør du kunne lave en knap for hver gruppe du vil skabe, om det så er drift/værksted eller bestemte områder.

Har du erfaring med vba? Prøv at optage et valg du tager og sæt koden der skrives ind her, så kan vi nok guide videre.
Avatar billede Jan Hansen Ekspert
01. juli 2019 - 15:23 #2
Mon ikke du kan bruge afdeling til sortering?

til drift/værksted : =HELTAL(A2/100)
1=drift 2= værksted

område : =HELTAL((A2-(D2*100))/10)

1=Fyn 2=Jylland osv.

Jan
Avatar billede Paw Winther Mester
02. juli 2019 - 12:33 #3
Jan Hansen:
Jeg forstår ikke helt dit forslag? Mit problem er jo at jeg i pivottabel ikke har mulighed for at lave en formel i filteret?


Kim1a
Jeg ville meget gerne have haft muligheden for at definere hvilke afdelinger der skal tages med til hvilke grupper i en liste.
Der kommer nemlig løbende nye afdelinger til, ligesom gamle afdelinger udgår.

Her ud over er det en generel udfordring, da jeg har mange ark hvor jeg ønsker denne mulighed for sortering i områder.

Link til eksempel: https://www.dropbox.com/s/ab2jvrwj0reqgfj/Pivot%20filter.xlsm?dl=0
Min samlede afdelings liste er væsentlig længere, så dette er blot for eksemplet skyld.
Jeg har "Afd. oversigten" lavet en kolonne ("D") der indikere om afdelingen indgår i det valg man foretager i fanen "Udvikling" celle B1 og B2. Spørgsmålet er så hvordan jeg får opdateret filteret celle B4 under "udvikling", til at medtage de afdelinger der er angivet med sand i afd. oversigten?

Jeg har forsøgt at optage en makro, men dels bliver det lidt tungt at lave en makro pr. kombinationsmulighed der er i valg af afdelinger, og der ud over tager den udgangspunkt i hvilke afdelinger der skal skjules, og ikke hvad der skal vises. Det betyder at der hver gang der tilføjes en ny afdeling, skal jeg ind og ændre makroerne for alle andre, og tilføje denne afdeling til dem der skal skjules.
Avatar billede kim1a Ekspert
02. juli 2019 - 12:49 #4
Ja det lyder meget rigtigt at det er tungt. Måske du kan have et skjult faneblad der har nogle arrays med afdelingsløsningerne. Så dine knapper hiver disse, så du kun skal opdatere et sted.
https://www.thespreadsheetguru.com/blog/2014/9/27/vba-guide-excel-pivot-tables
Under Report Filter On Multiple Items ser ud til at kunne skrive begge veje (true false i visible).

I stedet kunne du måske have en makro som sætter flere kolonner på de data som er skabt i kuben, så du får opdelingen lavet (nogle vlookups som du selv talte om)
Avatar billede Paw Winther Mester
02. juli 2019 - 13:51 #5
Jeg går ud fra det er nedenstående kode du henviser til:

Sub ReportFiltering_Multiple()
'PURPOSE: Filter on multiple items with the Report Filter field
'SOURCE: www.TheSpreadsheetGuru.com

Dim pf As PivotField

Set pf = ActiveSheet.PivotTables("PivotTable2").PivotFields("Variance_Level_1")

'Clear Out Any Previous Filtering
  pf.ClearAllFilters

'Enable filtering on multiple items
    pf.EnableMultiplePageItems = True
   
'Must turn off items you do not want showing
    pf.PivotItems("Jan").Visible = False
    pf.PivotItems("Feb").Visible = False
    pf.PivotItems("Mar").Visible = False

End Sub


Som jeg ser det, så starter den fint med at nulstille alle tidligere filtreringer, men her efter vælger den også de afdelinger den ikke vil se, og altså ikke dem den vil se? Dette giver den udfordring at jeg hele tiden skal holde øje med om der bliver tilføjet nye områder i datagrundlaget, som jeg ikke er interesseret i.

Her ud over mangler jeg en kode som kan vælge de afdelinger fra kolonne A, som i kolonne D er angivet som "SAND", og sætte dem til at blive vist i pivottabelen.
Avatar billede Paw Winther Mester
02. juli 2019 - 13:58 #6
Mht. muligheden for at tilføje ekstra felter data fra kuben, ser jeg ikke som en mulighed.
Kuben indeholder rigtigt mange afdelinger, som hver har mange konti, hvor der igen er beløb for alle måneder.
Avatar billede kim1a Ekspert
02. juli 2019 - 19:59 #7
Ja kuben har mange felter, men udtrækket er stadig (en tabel i) et Excelark, og derfor kan du tilføje data efter du har trukket det ud.

Kan du ikke slukke alle felter og så sætte true ved dem du vil have?
Avatar billede Paw Winther Mester
04. juli 2019 - 11:17 #8
Hov, må have overset en notifikation om dit svar :(

Den løsning jeg søger er helt klart den du beskriver i #4
Min udfordring er at få makroen til at hive alle afdelinger over fra en liste, som jeg så ønsker at sætte til "Visible = False".

Min makro ser pt. sådan her ud:
    With ActiveSheet.PivotTables("Pivottabel2").PivotFields("Afdeling")
        .PivotItems("121").Visible = False
        .PivotItems("(blank)").Visible = False
    End With


Men i stedet for angivet afdeling "121" skal jeg have lavet noget der siger alle afdelinger i liste 'Afd. oversigt'!A12:A27 hvis 'Afd. oversigt'!D12:D27=False.
Avatar billede kim1a Ekspert
04. juli 2019 - 13:18 #9
Du skal ind og kigge på Arrays, jeg er ikke skarp nok tror jeg.
Avatar billede Paw Winther Mester
04. juli 2019 - 13:27 #10
Ok, men jeg takker for hjælpen, nu er jeg da et skridt nærmere :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester