ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3176|回复: 6

[求助] powerpivot刷新卡死excel的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-27 21:11 | 显示全部楼层 |阅读模式

最近在使用dax查询语句返回查询表的时候,返回数据没问题,但是如果excel里的连接表属于查询状态而不是链接表的状态的话,在这种情况下点了刷新,excel直接100%卡死,请问是什么原因造成的?

image.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. [身份证号],[姓名],[工班]
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-27 21:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
经测试,发现在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. [身份证号],[姓名],[工班]
复制代码

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-28 10:47 | 显示全部楼层
本帖最后由 lyliuyouyang 于 2020-2-28 10:49 编辑
shwangfeng 发表于 2020-2-28 10:41
不是很懂,什么是查询状态,什么是链接表状态?是说不能在刷新数据连接的同时刷新DAX查询吗?
我自己试了 ...

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

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-2-28 13:26 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-28 17:04 | 显示全部楼层
wdx223 发表于 2020-2-28 13:26
用的不是PP,而是查询

数据是在数据模型里,如果写了含有变量的查询语句,这个时候进入powerpivot点刷新数据模型,同样会卡死,所以我在标题里写了powerpivot,可能引起歧义了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 07:11 , Processed in 0.040730 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表