1

我正在使用最新版本的 Excel 2016(通过 O365 E3 许可证)并使用 Power Query / Get & Transform Data。我可以成功创建查询并将它们加载到页面。我还成功创建了 Power Pivot 报表。

我想从通过 Power Query 加载的数据中查询单个数据点。例如,想象一个名为 DivisionalRevenue 的数据集:

Date        Division    Revenue
2016-01-01  Alpha       1000
2016-01-02  Alpha       1500
2016-01-01  Beta        2000
2016-01-02  Beta         400

我可以轻松地将其加载到 Excel 工作簿或将其包含在数据模型中并创建一个电源轴。但是,Power Pivot 并不总是能满足我的要求,尤其是关于数据在页面上的显示方式。为了实现我的目标,我可能希望能够查询单个数据点。

我想在页面上有一个带有公式的单元格,我可以用它来查询单个数据点。如果它在数据透视表中,我可以使用类似的东西:

=GETPIVOTDATA("Revenue",$A$3,"Date",DATE(2016,1,1),"Division","Alpha")

查找值(日期和除法)可以从页面上的单元格中检索或硬编码到公式中。这是我正在处理的几份报告的要求。

或者,我可以添加一个结合了 Date 和 Division 的组合查找列,并使用 vlookup 来提取如下值:

=VLOOKUP("42371Alpha",I9:L13,4,FALSE)

最后,我可以结合使用 INDEX 和 MATCH 来识别正确的行号,然后提取数据。

所有这些解决方案都需要将数据加载到工作表上。一个需要一个必须刷新才能正常工作的数据透视表。其他两个需要创建任意查找列,以便您可以基于多个字段(本示例中的日期和除法)匹配一行,并且您必须确保该查找字段的公式正确地扩展到数据表的长度. 在这两种情况下,我在与同事共享此工作簿时都会担心,以防有人影响数据透视表或查找的相当脆弱的设置。

所以,我真正想要找到的是相当于对数据集进行数据透视表查询的东西。

** This doesn't exist, but I would like to know if something like it does **
=GETQUERYDATA("Revenue","DivisionalRevenue","Date",DATE(2016,1,1),"Division","Alpha")

这样的事情存在吗?这样的事情能做到吗?我可以从通过 Power Query / Get & Transform Data 创建的数据集中检索任意数据点吗?

4

2 回答 2

2

我认为你想要的是立方体函数:

一些背景

如何从数据透视表轻松创建多维数据集函数

于 2016-12-15T18:49:43.927 回答
0

Excel 中有一个功能可以让您从 PowerPivot 模型中查询,但由于某种原因它并没有被高度宣传。

在 PowerPivot 模型中获得数据后,转到 Excel -> 数据选项卡 -> 现有连接 -> 表选项卡

从那里,选择您要开始使用的表。一旦该表的数据在您的 Excel 表上,您实际上可以右键单击该表 -> 转到“表”->“编辑 DAX”

从那里您可以输入以下 DAX 函数,例如

EVALUATE
FILTER(SampleData,[Date]=DATE(2016,1,1) && SampleData[Division]="Alpha")

确保在下拉菜单中选择 Command Type=DAX。这是它在我的屏幕上的外观:

在此处输入图像描述

为了进一步提高查询能力,您可以为 Excel 安装可选的“DAX Studio”插件,它允许您编写自定义 DAX 查询,然后将结果直接导出回 Excel 工作表。

于 2016-12-15T18:33:54.013 回答