前面我的文章《这些步骤公式,我经常顺手改一下!|PQ实战技巧》里提到顺手改一下列类型的例子,但只是针对新建的列是普通单值内容的情况,如果添加的内容是列表(list)、行记录(record)又或是表(table),该怎么办?
- 1 -列表类型设置
比如,添加一个简单的数字列表{1..数量}(将产品按数量拓展相应的行数):
此时,生成的列国的类型是不定型,展开到新行:
结果当然也是不定型:
这种情况下,如果我们希望在添加自定义列的时候,直接设置好列表内容的类型,可以直接在步骤公式后面加上参数 type {number} (相对于添加单结果列来说,多了对大括号表示要设置列类型的是个列表):
假如其中有非数字的内容,是否会有问题?
实际上,当你加上 type {number} ,展开后,并不会导致数据错误:
- 2 -行记录类型设置
添加行记录,如直接使用 _ (下划线)添加当前行:
对于记录来说,因为可能存在不同的字段(列),必须使用记录的形式针对每一个列进行类型的设置,而且设置类型的列会直接影响后续展开数据所包含的列:
- 3 -表列类型设置
如果增加的是表,则是在行记录的方式上加上table,然后中括号内对每个列的类型进行明确:
实际上,对于针对行记录、表的处理方式,一是很少手工地在自定义列里添加,而且,如果要手写这么多列的类型也很不方便,从实用的角度来说,如果列比较多,直接展开后再通过检测列类型的方式快速调整可能更方便,灵活运用即可,不要拘泥于某些形式或套路。
- 4 -学以致用
但是,对于某些操作生成的表并手工增加少量列的情况,手工加一下列类型,很方便,比如我们要分组添加索引列(不了解的朋友可参考文章:PQ算法调优 | 充分利用分组功能,提升数据处理效率 - 1:从分类加索引问题谈起),此时,分组时默认生成的类型清单里,没有新增的“索引”列类型:
这时,为了使展开的数据不“丢失”新加的索引列,一种方法是,把步骤生成的类型代码删掉,然后再展开数据:
但这种情况,展开的数据里所有的列的类型都会变成非确定型:
学了上面手工确定新加表列类型的方法后,我们即可以使用随手增加列类型的方式更好地解决这个问题:
在开始分享Power BI相关的文章没多久的时候,我就说“PQ M语言代码不是写出来的,是改出来的——写在M开篇之前”,实际上,对于大多数朋友来说,的确没有必要去大段大段地写M代码,而是通过操作生成步骤后,按需进行简单的修改以适应某些特别的要求即可。
本文分享自 Excel到PowerBI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!