ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何优化累计求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-19 17:42 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位老师:
        我从SQL SERVER读取了出入库单据,希望做一个库存台账的查询,想在最后加一列,按照日期累计的求和。
         微信截图_20180619172346.png
   
  • 据查询到的数据大概在40W行左右。
  • 该页面时通过钻取跳转过来。每次只显示1个存货的库存台账。
    微信截图_20180619172954.png
  • 我参照了各教程中比较多用的pattern,但是这个运算速度实在太慢了,我测试了下TOP1000,不论结果是否准确,会出现结果,但是完整的数据集下,始终在转圈圈出不来。我猜测PB对整个数据集执行计算,而我想要的是仅对当前钻取过来的这个存货进行累计求和的运算。
  1. cumulative=
  2. CALCULATE (
  3.         SUM ( vou_six[iQuantity] ),
  4.         FILTER (
  5.             ALLEXCEPT ( 'vou_six'[cInvCode] ),
  6.             'vou_six'[单据日期] <= MAX ( 'vou_six'[单据日期] )
复制代码

请老师指点下,这种情况,如何能提高这个度量值的计算速度。万分感谢。



TA的精华主题

TA的得分主题

发表于 2018-6-21 21:46 | 显示全部楼层
filter是迭代函数,每次计算都会从头迭代一遍,一般如果要提高速度,并且需要两列比较时,可以用变量定义个max,然后直接calculate的简易写法,数据量大的时候尽量不要用迭代函数  var A=MAX(【日期】) return  calculate(sum,allexcept,【日期】<A)  这种写法是允许的,而且速度快的多

TA的精华主题

TA的得分主题

发表于 2018-6-22 15:35 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-5 00:27 , Processed in 0.027521 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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