理解PQ里的数据结构(二、行列引用)

小勤:上次对PQ的数据结构做了一个总体的介绍,那在PQ里怎样取到一行、一列,甚至一个“单元格”里的值呢?大海:上次我们知道了每个查询步骤的名称其实就是表名,有了表名之后,可以这样取行(Record)、列(List)以及“单元格”的内容。我们接着上一篇内容的案例来练习。首先是行的,用大括号括住行标(从0开始),比如要取第1行的内容,我们添加个自定义列显示出来=合并的查询{0}:

结果如下,添加的列里面每个“单元格”的内容都是一个Record,都是第1行的内容:

我们如果要去某列的内容,则用中括号括住列名即可,如我们添加个自定义列取“合并的查询”结果表的产品列来体验一下,公式=合并的查询[产品]

结果如下,新添加的列里每一个“单元格”里都是一个List,即合并查询表里的产品列所有内容:

那么,要取某一“单元格”的内容呢?就是行跟列取法的组合,比如我们取合并的查询里第1行产品列的内容=合并的查询{0}[产品]:

结果里每一个“单元格”的内容都是第1行产品的内容。

小勤:嗯,大概理解了,但现在都是取某一个固定行的,怎么动态地去取呢?比如我要取当前行的内容。大海:PQ里有一个很特殊的字符——英文下划线(_),表示当前内容,比如要引用当前行=_:

结果就是当前行的内容:

小勤:啊!原来这样!这下划线也太神奇了吧!大海:是啊!这个下划线的应用十分灵活,很难通过几句话来简单解析清楚,后面我们会结合更多的实际案例去慢慢体会。小勤:好的。那引用当前行某列里的内容呢?大海:这个用直接用列名就行了,以前很多公式里其实都是这么直接用的,比如取当前行的单价=[单价]:

前面咱们说了下划线表示当前行,所以,取当前行的单价,也可以用=_[单价]:

其结果都是一样的:

小勤:原来这样。这个我真要自己动手练一练。【热门文章】1个Excel文件,30+个案例表,日常函数50+个全搞定66篇Excel Power Query干货文章,助你666从入门到全面实战!神一般的数据分析案例之一:高手在民间从身份证号码提取相关信息,你还在纠结用什么公式?真的out了!Power Query和超级表结合,实现文件夹及文档管理怎么在Excel中截图?这是我常用的几种方法!

(0)

相关推荐