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

时间:2016-12-15 12:14:12

标签: excel powerpivot powerquery m

我使用最新版本的Excel 2016(通过O365 E3许可证)并使用Power Query / Get&转换数据。我可以成功创建查询并将其加载到页面。我还成功创建了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& A创建的数据集中检索任意数据点吗?转换数据?

2 个答案:

答案 0 :(得分:2)

我认为你想要的是立方体功能:

Some Background

How to easy create cubefunctions from a pivot table

答案 1 :(得分:0)

Excel中有一项功能允许您查询PowerPivot模型,但由于某种原因,它没有被高度广告。

在PowerPivot模型中获得数据后,转到Excel - >数据标签 - >现有连接 - >表格标签

从那里,选择您要开始的表格。一旦该表的数据出现在您的Excel工作表上,您实际上可以右键单击该表 - >去"表" - > "编辑DAX"

从那里你可以输入以下DAX功能,例如

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

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

enter image description here

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