Thema Datum  Von Nutzer Rating
Antwort
Rot Wie schließe ich zwei Elemente aus einer SSAS-Pivot-Tabellenspalte?
29.07.2024 15:53:16 DeluxeInk
NotSolved
29.07.2024 16:34:56 Gast24839
NotSolved

Ansicht des Beitrags:
Von:
DeluxeInk
Datum:
29.07.2024 15:53:16
Views:
381
Rating: Antwort:
  Ja
Thema:
Wie schließe ich zwei Elemente aus einer SSAS-Pivot-Tabellenspalte?

Ich versuche, eine Spalte in einer SSAS-Cube-Pivot-Tabelle zu filtern. Ich möchte nur zwei identifizierte Werte aus dieser Spalte ausschließen und alle restlichen Werte in dieser Spalte auswählen.

Irgendwie schließt mein Code viele andere Werte aus und wählt nur wenige andere aus. Irgendwie zufällig.

Kann mir jemand helfen und mir sagen, was ich falsch mache? Hier ist der Code:

 

    ActiveSheet.PivotTables("PivotTable1").PivotFields( _
        "[MasterData Publisher Groups].[Publisher Group].[Publisher Group]"). _
        ClearAllFilters
    Range("E8").Select
    
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    Dim includeItems As Collection
    Dim item As Variant
    Dim i As Long
    Dim excludeList As Variant
    Dim visibleItemsArray() As Variant
    Dim itemCount As Long

    ' Set your PivotTable and PivotField
    Set pt = ActiveSheet.PivotTables("PivotTable1")
    Set pf = pt.PivotFields("[MasterData Publisher Groups].[Publisher Group].[Publisher Group]")

    ' Refresh the PivotTable to ensure it has the latest data
    pt.RefreshTable

    ' Define the items to exclude
    excludeList = Array("[MasterData Publisher Groups].[Publisher Group].&[30118]", _
                        "[MasterData Publisher Groups].[Publisher Group].&[27123]")

    ' Initialize the collection to store items to include
    Set includeItems = New Collection

    ' Loop through all items in the pivot field
    For Each pi In pf.PivotItems
        ' Check if the item is in the exclude list
        Dim shouldExclude As Boolean
        shouldExclude = False
        
        For i = LBound(excludeList) To UBound(excludeList)
            If pi.Name = excludeList(i) Then
                shouldExclude = True
                Exit For
            End If
        Next i

        ' Add the item to includeItems if it should not be excluded
        If Not shouldExclude Then
            includeItems.Add pi.Name
        End If
    Next pi

    ' Convert the collection to an array
    itemCount = includeItems.count
    ReDim visibleItemsArray(1 To itemCount)
    For i = 1 To itemCount
        visibleItemsArray(i) = includeItems(i)
    Next i

    ' Clear existing filters
    pf.ClearAllFilters

    ' Set the VisibleItemsList property
    pf.visibleItemsList = visibleItemsArray

Die Liste der Elemente ist SEHR lang, deshalb kann ich in einer VBA-Anweisung nicht angeben, welche Elemente ausgewählt werden sollen. Als ich anfangs versuchte, alle sichtbaren Elemente in die Liste aufzunehmen, erhielt ich einen Laufzeitfehler, dass die Anweisung zu lang sei. Daher gehe ich diesen Weg, um die excludeList und includeList zu erstellen.

Wenn ich beim Debuggen den Mauszeiger über pi.Name in der obigen LBound-/RBound-Schleife bewege, hat der Wert die Form „[MasterData Publisher Groups].[Publisher Group].&[30118]“ und nicht den tatsächlichen Ausgabenamen (z.B "Test Name Publisher Here"), den ich in der Excel-Pivot sehe. Ist das normal? Vielleicht funktioniert der Code deshalb nicht wie er sollte?


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Wie schließe ich zwei Elemente aus einer SSAS-Pivot-Tabellenspalte?
29.07.2024 15:53:16 DeluxeInk
NotSolved
29.07.2024 16:34:56 Gast24839
NotSolved