近期Office365用户升级后解决了在Power Pivot中输入中文的问题,但是同时也带来了一个新的问题就是表属性窗口默认为“查询编辑器”模式,且无法切换回“表预览”模式。

本文和您分享在这种情况下如何对源数据进行更改操作。

导入时未进行筛选的情况

 

从Excel文件导入数据到PowerPivot,

Power Pivot表属性无法切换回表预览模式的问题-LMLPHP

注意红色部分的信息:

  1. 文件名 - 记录了所抓取的Excel文件名称和位置信息

  2. 源表 -记录了数据所在的工作表信息(Sheet)

  3. 预览并筛选 - 此处我们没有进行任何筛选操作

数据导入后,我们点击“设计”-“表属性”查看

Power Pivot表属性无法切换回表预览模式的问题-LMLPHP

查询编辑器模式下的SQL语句:

 

SELECT [Sheet1$].*   FROM [Sheet1$]

语句中的代表所有的意思,这段语句直译就是:从工作表[Sheet1$] 中选择工作表[Sheet1$] 的所有数据

按这个含义,如果源数据发生列的增减或列名变化,只要数据存放位置不变,PowerPivot就可以刷新获得最新的数据。但此处有一个小Bug,如果源数据的列发生变化,直接刷新是不能获取最新列信息的:

  • 增加列:可刷新,但新增列不会出现

  • 删除列:刷新出错

  • 更改列名:刷新出错

遇到上述问题,我们需要打开表属性窗口,然后不进行任何操作,直接点击保存。Power Pivot会按照该SQL语句自动刷新获取最新的数据进来。

如果原始数据没有发生变化,而我们希望筛选拿掉不需要的列:

  1. 会SQL语句的话直接修改语句

  2. 不会SQL语句的话新建一个Excel文件,导入同一个文件并在导入时筛选想要的结果。导入后从表属性里复制该SQL语句并粘贴回原模型文件。

  3. 不修改,直接在模型中隐藏列。

导入时已进行筛选的情况

还有一种情况就是我们在导入时已经进行过筛选,那表属性里的SQL语句大概是这样的:

SELECT [Sheet1$].[省份],[Sheet1$].[收入]   FROM [Sheet1$]

把列名逐个列出来,大家需要修改的话直接修改语句即可:

  • 增加列 – 用逗号分隔,输入需要新增的列名注意是[Sheet1$].[列名] 的格式

  • 减少列 – 直接找到对应的列名删除即可

如果语句很长的话可以复制到word里,通过查找功能进行修改,改好后替换回去即可。

05-11 15:24