重要!很重要!非常重要!理解PQ里的数据结构(二、行列引用)

2021-08-31 10:13:44 浏览数 (1)

小勤:前面对PQ的数据结构做了一个总体的介绍,那在PQ里怎样取到一行、一列,甚至一个“单元格”里的值呢?

大海:上次我们知道了每个查询步骤的名称其实就是表名,有了表名之后,可以这样取行(Record)、列(List)以及“单元格”的内容。我们接着上一篇内容的案例来练习。

首先是行的,用大括号括住行标(从0开始),比如要取第1行的内容,我们添加个自定义列显示出来=合并的查询{0}

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

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

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

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

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

小勤:嗯,大概理解了,但现在都是取某一个固定行的,怎么动态地去取呢?比如我要取当前行的内容。

大海:PQ里有一个很特殊的字符——英文下划线(_),表示当前内容,比如要引用当前行=_

结果就是当前行的内容:

小勤:啊!原来这样!这下划线也太神奇了吧!

大海:是啊!这个下划线的应用十分灵活,很难通过几句话来简单解析清楚,后面我们会结合更多的实际案例去慢慢体会。

小勤:好的。那引用当前行某列里的内容呢?

大海:这个用直接用列名就行了,以前很多公式里其实都是这么直接用的,比如取当前行的单价=[单价]

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

其结果都是一样的:

小勤:原来这样。这个我真要自己动手练一练。

0 人点赞