「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(中)

上篇主要介绍TabularEditor的界面级别的操作,其最核心的使用脚本自动化方面的高级功能没有涉及,本篇尝试将较为经典用脚本自动化功能引出,让日常建模工作可以立即用上的。深入的话建议阅读工具作者的文档。

当dotNET遇上TabularEditor之后

TabularEditor是一款使用dotNET语言开发的工具,笔者最喜欢它的地方在于,其类似Excel这样,预留了我们可以使用C#语言通过简单的脚本调用,实现一些批量化操作的功能,批量化操作不限于批量增删改查度量值、计算列、修改属性信息如数字格式、显示文件夹等,亦可以批量筛选出指定符合条件的内容。

再一次见证微软系的魅力所在,dotNET语言的熟练,可以应用的面何等地广泛,在数据建模的领域,在TabularEditor的辅助下,又可以如虎添翼般做出许多高级的应用和自动化出来。

根据基础度量值批量生成衍生度量值

一般情况下,我们会先创建一堆基础的度量值如销售量、销售额、成本额等。这些函数都比较简单,都是直接求和、计数等即可。

创建完这些基础的度量值,想求同比、环比、历史、当年、当季、当月累计等指标时,因其主要是度量值的引用的不同,其他部分都相同,所以可以利用脚本来完成。如下图先选定基础度量值,再脚本视图下点击三角型运行却可。

以上代码的作用,就是用C#脚本遍历当前选择的度量值,然后根据基础度量值的名称,构造出新的度量值表达式,通过新建度量值方法进行创建新度量值,对新度量值名称及显示文件夹进行设置,最后将新度量值的属性数字类型修改为原基础度量值的格式。
同理,一个环比值又做出来了。

再来一个环比率,一样一键完成。无论多少个度量值,都不是问题。

还可以调用子脚本片段,推倒重来多少遍都不怕。

导入导出度量值、计算列等信息

模型一大,度量值、计算列一多,必然引起模型维护的复杂繁琐,就算用了以上的批量生成的方法生成的标准化的衍生度量值,最起码还是需要做一个检查复核的动作。

在Excel催化剂插件的功能实现上,可以一键导出整个模型的关键元数据,如度量值、计算列、关系等,但一般来说导出容易导入难,导出只是读取操作,导入可要写入操作。

在TabularEditor已经内置了简单的方法调用即可。真是一山比一山高,面对更好的,肯定毫不犹豫选择它了。

导出操作

观察到脚本最后用的是Output方法而不是SaveFile方法,因Output后直接弹出结果清单,复制到Excel表格中制作,比导出一个tsv文件(也是文本文件,只是字段间隔换成是Tab制表符而非逗号分隔,因DAX公式中大量逗号,不适用用csv文件导出)。

在当前情况下,导出的结果,因为DAX函数有制表符和换行符之类的存在的原因,导出来是错位的。

所以若导出Expresstion字段,还是需要做一些额外的处理,先将其复制到notepad++上,再用notepad++的查找替换功能。

替换完即可复制到Excel工作表中,已经不会再错位显示了。不过仍有一点不太完美,出来的换行符变成是文本 了。

没有完美的工作,只有我们不断去做修补的活,此时可使用Excel催化剂的【正则替换功能】,为了这个功能,重新修正了一下,使用【换行符】来表达真正的换行操作。

执行完的效果

导入操作

导入操作要求比较严格一些,首列作为标识列是不能修改的,并且不能新增操作,只能修改原来的信息,如下图修改度量值的名称(修改度量值名称是高危险操作,因度量值可能是中间度量值,其他度量值对其有引用,批量修改的方式不自动修改过来,界面修改可以自动同步)。

同时更多的场景是批量修改显示文件夹、数字格式这些,原理一样,只需保证有首列,其他想修改的内容列追加即可。

复制后将其粘贴到文本文件中如notepad++中,保存文件供调用。

或者直接使用Excel催化剂一键完成Excel选区到文本文件。按指示操作即可。

记得保存的时候是保存为utf8文件格式。

导入命令非常简单,路径换到刚刚整理好的文件名位置即可。

完成后效果如下。

批量查找对象

在工具的Filter命令中,可以做数据模型对象的筛选操作,简单的筛选只需输入关键字即可搜索含有此关键字的所有对象名,对象名可以是表名、字段名、度量值名等一切模型的对象成员的名字。

复杂的查询,可以使用Linq语法进行模型对象其他属性的查询,非常好用和高级。

以上所分享的详尽的教程文档,可以自行查阅工具作者的github中的wiki文档。

结语

此篇带领大家走进TabularEditor的精彩应用,使用C#脚本和TabularEditor交互,让其批量化操作的功能更强大,通过脚本的方式来做一大好处是标准化程度高,生成的数据规范且有逻辑和规律可寻,后期在模型维护方面将带来极大效率提升。

同时本篇所列出的脚本应用,全是笔者在真实项目中使用到的,非常具有应用价值。

TabularEditor更强大的部分是可以让SSAS建模工作以团队式开发来开展,还有许多精彩的应用,等待下篇再作介绍。

笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。

相关阅读

「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(上)https://www.jianshu.com/p/939f7e8f68d5

「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(中) https://www.jianshu.com/p/0c61ea76d031

关于Excel催化剂

Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q

联系作者

公众号

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

关于Excel催化剂作者

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。

原文地址:https://www.cnblogs.com/ExcelCuiHuaJi/p/11331561.html