2016-12-15 77 views
0

我使用最新版本的Excel 2016(通过O365 E3许可证)并使用Power Query /获取&转换数据。我可以成功创建查询并将其加载到页面。我也成功创建了Power Pivot报告。从Excel数据模型/电力查询(获取和转换数据)查询单个数据点

我想从通过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") 

查找值(日期和部门)可以从页面或硬编码到公式的单元格进行检索。这是我正在处理的几个报告的要求。

或者,我可以用日期和司级联添加组合查找列,并使用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

我认为你想要什么是cubefunctions:

Some Background

How to easy create cubefunctions from a pivot table

+0

这是有帮助的 - CUBEVALUE似乎是我的解决方案。 Power Pivot数据模型可以使用 '= CUBEVALUE(“ThisWorkbookDataModel”,...)' https://support.office.com/zh-cn/article/CUBEVALUE-function-8733da24-26d1-4e34 -9b3a-84a8f00dcbe0?ui = zh-CN&rs = zh-CN&ad = US 虽然成员表达式的语法很神秘。 – bkgraham

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

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