【问题标题】:Filter PowerPivot field containing criteria筛选包含条件的 PowerPivot 字段
【发布时间】:2018-05-21 21:48:31
【问题描述】:

我是一名职业会计师,实际上只是通过在 Excel/VBA 中胡闹的自学成才。我处理通过 PowerPivot 从 OLAP 多维数据集提取的大量数据,并试图通过自动化流程来工作。

我被困在我认为可能是一个非常简单的问题上:如何将过滤器应用于具有“喜欢”或“包含”特定条件的 PowerPivot 字段?这甚至不是动态要求,但仍然令人困惑......

这就是我所拥有的,假设我想找到所有 包含“数据”的行描述:

Sub DataPivot()

Sheets("Data").Select
Dim pt As PivotTable
Dim pf As PivotField

Set pt = ActiveSheet.PivotTables("DataPivot")
Set pf = pt.PivotFields("[DataQuery].[LineDesc].[LineDesc]")

pf.ClearAllFilters
pf.CurrentPageName = "[DataQuery].[LineDesc].&[" & "*" Data "*" & "]"


End Sub

我在使用 VBA 和常规数据透视表方面的经验略多一些,但 PowerPivot 只是将一切都搞定了。

感谢您的任何帮助!谢谢!

【问题讨论】:

  • 您的 LineDesc 是否在数据透视表中显示为标签?还是在价值观领域?即它是在行还是列上?还是在中间?
  • 两者都不存在(这是一个合适的答案哈),我仅在数据透视表字段的“过滤器”区域中使用它。我不需要显示 LineDesc,只需根据该行是否包含“数据”一词来显示其他变量。我能够通过使用公式 '=SEARCH("Data",[LineDesc],,0)' 在 PowerPivot 模型中使用计算字段来开发解决方法,然后设置当前页面名称以选择值中带有“1”的行。

标签: vba excel excel-2013 powerpivot


【解决方案1】:

据我所知,您不能在 CurrentPageName 但必须提供/应用特定成员

Data = "a spefic member or a list"
pf.CurrentPageName = "[DataQuery].[LineDesc].&[" &  Data  & "]"

但是,如果 [LineDesc] 在 ROWS/COLUMNS 中,您可以

pf([DataQuery].[LineDesc].[LineDesc]).PivotFilters.Add2 Type:= xlCaptionContains, Value1:=Data

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2020-05-20
    • 1970-01-01
    相关资源
    最近更新 更多