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

Posted

技术标签:

【中文标题】从 Excel 数据模型/Power Query 查询单个数据点(获取和转换数据)【英文标题】:Querying single data points from the Excel Data Model / Power Query (Get & Transform Data) 【发布时间】:2016-12-15 12:14:12 【问题描述】:

我正在使用最新版本的 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 创建的数据集中检索任意数据点吗?

【问题讨论】:

【参考方案1】:

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

Some Background

How to easy create cubefunctions from a pivot table

【讨论】:

这很有帮助 - CUBEVALUE 似乎是我的解决方案。 Power Pivot 数据模型可使用 =CUBEVALUE("ThisWorkbookDataModel",...) support.office.com/en-us/article/… 获得,不过 member_expression 语法非常神秘。【参考方案2】:

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 工作表。

【讨论】:

以上是关于从 Excel 数据模型/Power Query 查询单个数据点(获取和转换数据)的主要内容,如果未能解决你的问题,请参考以下文章

使用 Power Query 从 Excel 缩进中提取层次结构

Python如何批量修改替换Excel Power Query里面的SQL脚本

Excel Power Query导入MySQL数据

SharePoint 列表数据的 Excel Power Query 导入更改日期/时间值

Excel数据建模——提高Power Query数据处理效率

Power Query 将表类型数据加载到单个 Excel 工作表