Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Excel UI查找透视表切片器的数据源?_Excel_Pivot Table_Powerpivot_Vba - Fatal编程技术网

如何通过Excel UI查找透视表切片器的数据源?

如何通过Excel UI查找透视表切片器的数据源?,excel,pivot-table,powerpivot,vba,Excel,Pivot Table,Powerpivot,Vba,注意:我不认为这有什么根本区别,但我正在使用运行在PowerPivot模型之上的pivot表 示例场景: 模型中的三个表:SalesTransaction、BuyerCustomers、SellerCustomers,具有两个定义的PowerPivot关系: BuyerCustomers.CustomerCode --> SalesTransaction.BuyerCustomerCode SellerCustomers.CustomerCode --> SalesTransacti

注意:我不认为这有什么根本区别,但我正在使用运行在PowerPivot模型之上的pivot表

示例场景:

模型中的三个表:SalesTransaction、BuyerCustomers、SellerCustomers,具有两个定义的PowerPivot关系:

BuyerCustomers.CustomerCode --> SalesTransaction.BuyerCustomerCode
SellerCustomers.CustomerCode --> SalesTransaction.SellerCustomerCode
我使用SalesTransaction作为数据源定义了一个数据透视表

现在,如果我想在BuyerCustomer和SellerCustomer上创建切片器,在Pivot Table fields窗口中,我可以右键单击并“添加为切片器”:

  • SalesTransaction.BuyerCustomerCode
    SalesTransaction.SellerCustomerCode
    (交易表中的两列)
  • BuyerCustomers.CustomerCode
    SellerCustomers.CustomerCode
    (单个查找表)
  • 无论哪种方式,行为都是相同的。我的问题是:设置好后,如何通过Excel中的UI判断切片器绑定到了什么?除了能够通过列名推断出明显的关联外,人们如何判断

    使用VBA,可以发现如下关联:

    ActiveWorkbook.SlicerCaches("Slicer_CustomerCode").SourceName  
    
    …这将产生:

    "[SalesTransaction].[BuyerCustomerCode]"  
            or  
    "[BuyerCustomers].[CustomerCode]"
    

    …但据我所知,无法通过UI查看此内容。

    您无法通过UI找到切片器TableName.ColumnName数据源,您只能查看ColumnName

    如问题中所述,您可以通过VBA查看表名和列名:

    ActiveWorkbook.SlicerCaches("Slicer_YourSlicerName").SourceName  
    
    …这将产生:

    "[TableName].[ColumnName]"  
    

    无法通过公式将此结果拖动到单元格中,但您可以通过转到切片器工具>>选项>>数据透视表连接来查看切片器(或其缓存)绑定到哪个数据透视。要将其放入单元格,您必须使用UDF。对不起,我不是要显示它,我只是想查看切片器在透视表中作用于哪个列。有时,列命名非常模糊,以至于您确实无法确定它绑定到哪个列-如果不编写VBA代码,就无法知道这一点,这似乎令人难以置信。我误解了。原始表中绑定到的字段可以在切片器工具>>选项>>切片器设置中找到。这是对话框顶部的“Source Name”。是的,我看到了,问题是它只显示列名,而不是可以通过SlicerCache(“slicerName”)看到的TABLE.COLUMN Name。SourceName(注意:我在上面的代码示例中意外排除了.SourceName,现已修复。)在列名不总是唯一的大型模型中,无法看到完全限定的名称是不幸的。遗憾的是,我认为这个问题的正确答案是:“你看不到切片器绑定到的TABLE.COLUMN,只有列的名称。”是的。我同意在这种情况下,答案是“不”。我已经用一个切片器连接了将近52个小表格,所以我可以想象,微软的掌门人决定不显示表格/字段,因为它可能会压倒对话框。