Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 7
  • 179

Czy możliwe jest użycie własnej funkcji UDF w polu obliczanym w Pivocie?

Chciałbym użyć na przykład takiej funkcji - (użyta podczas szkolenia AC03 do segmentowania):

Function fDekada(RokW As Long) As String

    Select Case RokW
                   
        Case Is < 1970
            fDekada = "Retro"
        Case Is < 1980
            fDekada = "lata 70-te"
        Case Is < 1990
            fDekada = "lata 80-te"
        Case Is < 2000
            fDekada = "lata 90-te"
        Case Else
            fDekada = "współczesne"
    End Select
    

End Function

Próbowałem, ale Pivot nie przyjmuje =fDekada('Kolumna_z_rok_wydania'), więc chyba nie jest to proste. A na pewno byłoby bardzo przydatne do wszelkiego segmentowania.

Z góry dziękuję i pozdrawiam.
Jacek.

Jacek_Kotowski
  • Zapytał
  • @ Jacek_Kotowski | 05.09.2014
    • lider
    • laureat
    • ekspert
    • 60
    • 54
    • 94
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (2)

  • 1

Na początek dwa spostrzeżenia:

1) W polach obliczeniowych tabel przestawnych nie można stosować funkcji UDF.

2) Pola obliczeniowe wykorzystywane są w obszarze wartości tabeli przestawnej. Do segmentacji potrzebujemy pola w obszarze etykiet wierszy (lub kolumn) lub w obszarze filtru raportu.

Zatem nie można rozwiązać tego problemu w sposób proponowany powyżej, aż z dwóch powodów. A co można?

Można użyć tej funkcji UDF w źródle do tabeli przestawnej i potem wykorzystać to do segmentacji.

Ten konkretny problem można też łatwo rozwiązać za pomocą grupowania i małego triku - mając źródło danych zawierające datę i rok np.


Następnie budujemy tabelę przestawną jak niżej:


Wybieramy komórkę z datą i grupujemy daty jak niżej (poleceniem Grupuj pole z grupy Grupowanie, z karty Narzędzia tabel przestawnych Analiza):


Wybieramy komórkę zawierającą rok i lata grupujemy tak:


Efekt końcowy:


Oczywiście użyteczność tego rozwiązania zależy od struktury źródła danych.

  • Odpowiedział
  • @ | 10.09.2014
  • TRENER ALTKOM AKADEMII
  • 0

Panie Jacku.

Idąc tym tropem do pola filtrowania w tabeli, nie da rady, ale można podstawić nową kolumnę w źródle, w której będzie wyliczana segmentacja (za pomocą Pana formuły). Następnie kolumna będzie używana w filtrze tabeli przestawnej (patrz załącznik).

Załączniki

  • xlsm

    grupowanie dat.xlsm ( 28K )
  • Odpowiedział
  • @ | 15.09.2014
  • TRENER ALTKOM AKADEMII