dax和m的区别_一分钟格式化所有DAX及M语句
【2020/7/3】补充:该项目可能会改为以代码开源的形式共享,可关注:项目d-bi.gitee.io
以下是原文:
“DAX & M批量格式化工具”
作为Power BI报表开发者,DAX代码的可读性十分重要,几年前SQLBI推出了一个免费web服务:daxformatter,它允许你粘贴你的DAX代码到输入框,一键助你完成代码的换行与缩进,提升代码可读性,最近,PQ里的M语言也有了类似的服务—Power Query Formatter, 利用这些工具,可以帮你无需手工操作就能完成换行缩进,提升你的报表开发效率。不过,这些工具的美中不足是不能一次性格式化多个公式,即使可以,一个个粘贴公式也是不方便的,因此,我开发了一个小工具—“DAX & M批量格式化工具”,它可以帮你一次性格式化你的PBIX文件内的所有DAX公式,包括所有表的度量值以及计算列。工具截图如下:
(注: 同时也可以帮你格式化所有表的M语句, 这里需要说明的是,该格式化工具的原理是通过向daxformatter以及powerqueryformatter网站发送POST请求并返回格式化的结果写入PBIX中的配置文件以完成全部代码格式化,但由于powerqueryformatter网站处于测试状态,接口还存在问题,因此格式化M语句功能暂不可用)
该工具对于那些大型Power BI报表项目的作用十分明显,因为你可能会有上百个DAX度量值以及计算列等等,一个个的格式化将是十分耗时且效率低下的,而通过该工具,仅需1分钟即可完成报表文件中全部DAX的格式化,使你把更多精力专注于更重要的环节:模型设计和效率优化。
如何使用
第一次使用,需要多一个小步骤,打开Power BI Desktop, 打开选项:
基于作者本人的Desktop版本(2020年5月),此时需要在预览功能处勾选如下功能,然后重启Power BI Desktop:
接下来是工具的使用方法,以如下文件为例:
这是其中的Sales表的其中一个计算列:
以及部分度量值:
还有很多其他计算列和度量值存在不同的表,此处不一一列举。现在关闭PBIX文件(推荐另存为PBIT格式,此处另存为PBIT命名为formatterTemp),修改文件的后缀为ZIP,解压文件,你会看到一个名为DataModelSchema的文件,我们的所有DAX以及M代码等等都在此文件中定义,因此工具的任务是通过程序修改该文件以达到一次性格式化目的。现在,右键复制该文件的路径:
打开“DAX & M批量格式化工具”后将路径粘贴到输入框,然后点击“执行”,等待几秒钟后会提示“已完成”:
现在文件夹里的DataModelSchema已是修改好的文件了,最后重新打开zip文件,将更新后的DataModelSchema拖入覆盖即可:
最后,只需将文件ZIP后缀改回PBIT或PBIX,打开文件即可发现所有的DAX代码均已成功格式化!如图:
获取该工具
由于该工具的M格式化部分尚有未完成部分,因此暂时不会发布,感兴趣的读者可以点赞+收藏此文,并在评论区留下邮箱,后期完成会第一时间将工具安装包发送到您邮箱(注:该工具属于公益性质,不会收费,但也不会保证任何时效性,并且日后是否继续开发以及优化改进,增添新功能等等,还取决于社区及读者对该工具的需求程度及反馈数量)
dax和m的区别_一分钟格式化所有DAX及M语句相关推荐
- dax和m的区别_动态股票K线图----从M语言到DAX表达式
偶然见别人画的股票K线图,不禁见猎心喜,也来模仿一番.原图是不能动的,一动MACD移动平滑趋势线就没有了.这是微软excel的一个缺陷. 所以我想了一个办法弥补这个缺陷.由于手头没有数据,开始实施网抓 ...
- 公有云私有云的区别_一分钟秒懂公有云、私有云、混合云的区别?
公有云.私有云.混合云有什么区别?在讲这几个的区别前,可以先说下经常被一起谈起的云计算. 什么是云计算? 我们可以先理解云计算中的"云"是什么意思,通俗的理解,这里的"云 ...
- 机器人编程与python语言的区别_一分钟看懂“机器人编程”和“少儿编程”的区别!...
随着编程学习全球化的趋势,国内编程学习热潮日盛,越来越多的家长开始让孩子接触学习编程. 然而在挑选学习课程的过程中,机器人编程和少儿编程是最让家长头疼的问题之一. 因为两者的名称都有"编程& ...
- 单模光纤和多模光纤的区别_一分钟了解光纤、单模光纤、多模光纤
光纤的基本结构 光纤裸纤一般分为三层:纤芯.包层和涂覆层. 光纤纤芯和包层是由不同折射率的玻璃组成,中心为高折射率玻璃纤芯(掺锗二氧化硅),中间为低折射率硅玻璃包层(纯二氧化硅).光以一特定的入射角度 ...
- dax和m的区别_德国股票指数DAX, MDAX与TecDAX的区别是什么?
展开全部 DAX是德国股市三十只主要股票进行加权计算得出的指e68a8462616964757a686964616f31333366303232数.指数行情:网页链接 MDAX覆盖更多的股票.指数行情 ...
- 时间序列 线性回归 区别_时间序列分析的完整介绍(带R)::线性过程I
时间序列 线性回归 区别 In the last tutorial , we saw how we could express the probabilistic form of the best l ...
- zoho邮箱收费和免费区别_您需要了解有关适用于ios和android的新zoho vault移动应用程序的所有信息...
zoho邮箱收费和免费区别 The secret phrase is the true standard of computerized validation and access. Any run ...
- 两个质数互质是_两个质数一定是互质数_互质数和质数的区别_分解质因数的方法_互为质数和互质数...
宜城教育资源网www.ychedu.com两个质数一定是互质数_互质数和质数的区别_分解质因数的方法_互为质数和互质数质数,互质数,分解质因数,合数一个数只有1和它本身两个约数,这样的数叫做质数.一个 ...
- CIF、DCIF、D1区别_昂首阔步_百度空间
CIF.DCIF.D1区别_昂首阔步_百度空间 CIF.DCIF.D1区别 关于视频监控分辨率CIF.DCIF.D1格式的介绍 什么是D1? 做闭路电视监控系统这一行久了,大家都以为D1是硬盘录像机显 ...
最新文章
- springboot项目实例_Springboot项目的接口防刷(实例)
- java 变量与常量_详解Java变量与常量
- 查询语句索引不能使用的一些情况
- 网速测量、流量监控软件 Bandwidth Meter Pro
- 拜读了《婆媳关系好坏取决于老公》一文,看似有道理,细读感觉其实应该不是那么回事...
- VSCode 报错 Parsing error: x-invalid-end-tag
- 关于windows消息机制的猜想
- c语言中日期间的天数怎么计算,关于计算两个日期间天数的代码,大家来看看...
- 数据库面试题 常考的概念
- java面向对象编程的三大基本特性--封装,继承,多态
- android简易双屏支持【转】
- Java如何简单实现一个定时器
- java如何使用while_java中的while(true)语句的用法是什么
- Javascript 清空input type=file 的值方法
- java可选参数_Java可选
- 虚拟机服务器安装iis报错,Windows2008R2安装iis和iis下搭建web服务器(9.18 第七天)...
- IAR (10.10.1) 安装与破解教程
- 使用阿里云Maven仓库
- 华为P40与周冬雨排列
- linux看视频装哪个软件,Ubuntu安装视频播放软件 SMPlayer 14.9.0.7042