[已解决] powerpivot刷新卡死excel的问题

  [复制链接]
查看226869 | 回复172 | 2020-9-25 01:20:38 | 显示全部楼层 |阅读模式
最近在使用dax查询语句返回查询表的时候,返回数据没问题,但是如果excel里的连接表属于查询状态而不是链接表的状态的话,在这种情况下点了刷新,excel直接100%卡死,请问是什么原因造成的?

10262101709571.png
如图在这个dax查询语句中,如果只是返回模型里面的表,刷新就没问题,,但是如果写了查询语句,直接就把excel卡死了。个人的数据量不大,返回数据模型里的表只需几秒钟就完成刷新,最大的一个表也就3000多行,请问这是什么原因。
查询语句类似这种:

  1. DEFINE

  2.   VAR table1 =

  3.   SUMMARIZECOLUMNS (

  4.     '人员考核'[身份证号],

  5.     "姓名", VALUES ( '人员考核'[姓名] ),

  6.     "工班数", DISTINCTCOUNT ( '人员考核'[工班] )



  7.   )

  8.   VAR table2 =

  9.     SUMMARIZECOLUMNS (

  10.     '人员考核'[身份证号],

  11.     '人员考核'[工班],

  12.      FILTER ( table1, [工班数] > 1 ),

  13.     "姓名", VALUES ( '人员考核'[姓名] ),

  14.     "性别", VALUES ( '人员考核'[性别] ),

  15.     "年龄", VALUES ( '人员考核'[年龄] ),

  16.     "进场时间", MAX ( '人员考核'[统计时间] ),

  17.     "籍贯", LOOKUPVALUE ( 'dim籍贯'[籍贯], 'dim籍贯'[编号], VALUES ( '人员考核'[籍贯编码] ) ),

  18.     "年份", LOOKUPVALUE ( '日期表'[年份], '日期表'[日期], MIN ( '人员考核'[统计时间] ) )

  19.   )

  20.   var table3=SUMMARIZECOLUMNS('人员考核'[工班],"人数",COUNTA('人员考核'[姓名]))

  21. EVALUATE

  22. table2

  23. order by

  24. [身份证号],[姓名],[工班]
复制代码
回复

使用道具 举报

huangbo88 | 2020-9-25 01:28:38 | 显示全部楼层
经测试,发现在excel里的大学表达式不能如果写了变量var就无法刷新,但是可以查询,改成下面的代码就没问题了,刷新查询都可以
  1. EVALUATE

  2.   SUMMARIZECOLUMNS (

  3.     '人员考核'[身份证号],

  4.     '人员考核'[工班],

  5.     FILTER (

  6.       SUMMARIZECOLUMNS (

  7.       '人员考核'[身份证号],

  8.       "姓名", VALUES ( '人员考核'[姓名] ),

  9.       "工班数", DISTINCTCOUNT ( '人员考核'[工班] )

  10.       ),

  11.       [工班数] > 1

  12.     ),

  13.     "姓名", VALUES ( '人员考核'[姓名] ),

  14.     "性别", VALUES ( '人员考核'[性别] ),

  15.     "年龄", VALUES ( '人员考核'[年龄] ),

  16.     "进场时间", MAX ( '人员考核'[统计时间] ),

  17.     "籍贯", LOOKUPVALUE ( 'dim籍贯'[籍贯], 'dim籍贯'[编号], VALUES ( '人员考核'[籍贯编码] ) ),

  18.     "年份", LOOKUPVALUE ( '日期表'[年份], '日期表'[日期], MIN ( '人员考核'[统计时间] ) )

  19.   )

  20. order by

  21. [身份证号],[姓名],[工班]
复制代码
回复

使用道具 举报

石龙肥锋 | 2020-9-25 01:31:39 | 显示全部楼层
所以,我通过搜索看到了本版的另外的一个帖子,是2018年9月的帖子,其实是类似的情况,就是在编辑dax
查询语言的时候使用了变量就导致了刷新卡死,解决方法就是,直接使用evaluate查询,不要使用变量,如果写了变量需要将几个变量通过函数嵌套的方法,直接将表达式写在evaluate后面。我比较困惑的是都1年多过去了,这个问题居然还没解决,而且写查询语句也不支持智能感知,还好下载一个DAXstudio来辅助,studio支持变量,excel,希望能向官方反馈一下这个问题,毕竟写代码实现的效果多样性比直接生成数据透视表要丰富很多!
回复

使用道具 举报

20082008 | 2020-9-25 01:38:39 | 显示全部楼层
不是很懂,什么是查询状态,什么是链接表状态?是说不能在刷新数据连接的同时刷新DAX查询吗?
我自己试了一下带VAR的写法,没有遇到问题啊(用的是365版本)?
回复

使用道具 举报

ydw | 2020-9-25 01:43:39 | 显示全部楼层
不是很懂,什么是查询状态,什么是链接表状态?是说不能在刷新数据连接的同时刷新DAX查询吗?
我自己试了 ...


我想表达的意思是通过dax查询语句返回表的操作本身没有问题,不管有没有变量都能正常得到想要的数据。问题就在于如果表达式里用了变量,也通过evaluate或者return返回了变量的值,这个时候如果点刷新数据源的话,我的excel就100%会无响应,被卡死,但是我如果把语句改了一下,不用变量,直接通过evaluate返回查询表,刷新就没问题,(问题是通过dax studio知道其实变量是可以使用的,并且可以使用很多次),你也可以验证一下。
回复

使用道具 举报

浅草 | 2020-9-25 01:45:39 | 显示全部楼层
用的不是PP,而是查询
回复

使用道具 举报

kelisi | 2020-9-25 01:53:40 | 显示全部楼层
用的不是PP,而是查询


数据是在数据模型里,如果写了含有变量的查询语句,这个时候进入powerpivot点刷新数据模型,同样会卡死,所以我在标题里写了powerpivot,可能引起歧义了。
回复

使用道具 举报

zyzjy | 2021-5-19 21:57:04 | 显示全部楼层
在撸一遍。。。
回复

使用道具 举报

biaofbi | 2021-7-14 08:46:56 | 显示全部楼层
占坑编辑ing
回复

使用道具 举报

LULU | 2021-9-26 09:56:13 | 显示全部楼层
介是神马?!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则