前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(中)

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

作者头像
Excel催化剂
发布2021-08-19 17:41:05
1.7K0
发布2021-08-19 17:41:05
举报
文章被收录于专栏:Excel催化剂

上篇主要介绍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工作表中,已经不会再错位显示了。不过仍有一点不太完美,出来的换行符变成是文本\n了。

没有完美的工作,只有我们不断去做修补的活,此时可使用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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel催化剂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 当dotNET遇上TabularEditor之后
  • 根据基础度量值批量生成衍生度量值
  • 导入导出度量值、计算列等信息
    • 导出操作
    • 导入操作
    • 批量查找对象
    • 结语
    • 相关阅读
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档