Just nu i M3-nätverket
Gå till innehåll

Senaste poster i Etikettfilter i pivottabell


Vice Hövdingen

Rekommendera Poster

Vice Hövdingen

Hej

 

Jag har en pivottabell där jag varje vecka uppdaterar värden. Som kolumnrubrik har jag veckonummer, och min fråga är om man automatiskt kan filtrera etikettfilter på 10 högsta värdena (dvs 10 senaste veckorna i mitt fall) likt det man kan göra i värdefiltret.

 

Tack på förhand!

Länk till kommentar
Dela på andra webbplatser

Jag har för mig det kan finnas en property som går att sätta i VBA men minns inte vad den hette.

 

Enklast är nog att

1: Sortera på dina etiketter (vecka)

2: lägg även in vecka som värdefält, räkna medel (borde bli samma som veckonumret som är värdefilter.

3: Lägga till visa top 10, basera på vecko-fältet bland värdena.

 

Länk till kommentar
Dela på andra webbplatser

Vice Hövdingen

Tack. Lösningen fungerar- men blir inte riktigt bra för mig eftersom jag har både rad- och kolumnrubriker.

 

Jag söker vidare efter VBA-lösning. :)

Länk till kommentar
Dela på andra webbplatser

jag minns nog fel VBA för att begränsa antal rader.

 

Lägg istället in en kolumn till i din datatabell där du räknar fram vilka veckor (de tio senaste är enkelt att räkna fram) och sätta ett tecken i kolumnen för rader, veckor, du vill ha med.

Lägg till det tecknet som filter på tabellen och du ser enbart dessa.

Länk till kommentar
Dela på andra webbplatser

Vice Hövdingen

Det var förtvivlat vad det skulle vara svårt då... Efter lite googlande och pusslande utifrån vad du skriver Monshi blev lösningen följande, Med start i Cell P4 och 10 celler neråt. Notera att det är en matrisformel.

 

{=INDEX(tblData[Vecka];PASSA(STÖRSTA(OM(ANTAL.OM($P$3:P3;tblData[Vecka])=0;ANTAL.OM(tblData[Vecka];"<"&tblData[Vecka]);"");1);ANTAL.OM(tblData[Vecka];"<"&tblData[Vecka]);0))}

 

I min tabell är det sedan enkelt att lägga in följande formel för att se om respektive vecka är bland de 10 största:

 

=OM(OCH([@Vecka]<=$P$4;[@Vecka]>=$P$13);"Ja";"Nej")

 

 

Länk till kommentar
Dela på andra webbplatser

Vice Hövdingen

Gaaaaah jag ångrar mig. Har man för mycket data (dvs många tusen rader i tabellen) blir den formeln sjuuuuukt seg... Suck :angry:

Länk till kommentar
Dela på andra webbplatser

Matrisformler är beräkningsintensiva. Borde gå att lösa enklare.

=OM([@Vecka]>STÖRSTA([Vecka];10);[@Vecka];"")

exempelvis.

eller i kortformat

=([@Vecka]>STÖRSTA([Vecka];10))*[@Vecka]

som dock ger nollvärde i alla veckor som inte ska visas.

 

 

Länk till kommentar
Dela på andra webbplatser

Vice Hövdingen

Nja, detta verkar förtvivlat svårt. Problemet är att respektive vecka kan förekomma många gånger i databasen, men vill ju ändå selektera ut de 10 hösta "unika" om ni förstår vad jag menar. Nedan skall alltså generera att de 10 senaste veckorna är vecka 4-13. I ert fall tar det ju bara de 10 högsta posterna, dvs 9-13.

 

Tack för er hjälp ändå så här långt!

 

13

13

13

12

12

12

11

10

10

9

9

8

8

7

7

7

6

5

5

4

4

3

3

2

2

2

1

1

osv...

Länk till kommentar
Dela på andra webbplatser

Äh, det är VECKOR vi talar om. 52 st.

Behövs inga matrisformler. Bara en stödtabell om 52 rader som max.

Skriv veckonummer i en ny kolumn, ny tabell.

Bredvid

=OM(ÄRFEL(PASSA(G2;$A$2:$A$30;0));"";G2)

där g2 är din lilla tabell med veckor

A2:A30 finns dina egentliga veckor

Och i kolumn brevid

=STÖRSTA(H2:H54;10)

och i din tabell bara en jämförelse som ovan om veckonumret är större än det i cellen med STÖRSTA i skriv veckonumret till ny kolumn och basera pivot på denna.

Exempelvis.

Borde inte ta mycket beräkningskraft. Om så kan  man alltid ta fram max-veckan och använda den som start för veckotabellen eller kapsla passa till att inte räknas om den inte måste.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...