从 Excel 数据模型/Power Query(获取和转换数据)中查询单个数据点

Querying single data points from the Excel Data Model / Power Query (Get & Transform Data)

我正在使用 Excel 2016 的最新版本(通过 O365 E3 许可证)并使用 Power Query/获取和转换数据。我可以成功创建查询并将它们加载到页面。我还成功创建了 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 并不总能满足我的要求,尤其是数据在页面上的显示方式。为了实现我的目标,我可能希望能够查询单个数据点。

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

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

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

或者,我可以添加一个合并的查找列,其中 Date 和 Division 连接在一起,并使用 vlookup 提取值,例如:

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

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

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

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

** 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 / 获取和转换数据创建的数据集中检索任意数据点吗?

Excel 中有一项功能允许您查询 PowerPivot 模型,但由于某些原因它没有被广泛宣传。

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

从那里选择您想要开始的 table。一旦 table 的数据在您的 excel sheet 上,您实际上可以右键单击 table -> 转到 "Table" -> "Edit DAX"

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

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

确保在下拉列表中选择命令类型=DAX。这是它在我的屏幕上的样子:

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

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

Some Background

How to easy create cubefunctions from a pivot table