Power Pivot中表格的基础构造

2020-03-24 15:42:26 浏览数 (1)

1. 创建表

例如我们要创建一个这样的表。 表1:

我们知道在Power Query里面构建表的语法是

代码语言:javascript复制
=#table({"姓名","成绩","学科"},{{"张三",100,"数学"},{"李四",90,"语文"},{"王五",80,"英语"}})

如果要构建上面那张表的内容则有2中方式:

A. 通过行构建ROW
代码语言:javascript复制
ROW ( <Name>, <Expression> [, <Name>, <Expression> [, … ] ] )

参数Name代表列名,Expression代表数据,但是只能生成1行数据,如果需要生成3行数据,则还需要通过union函数进行合并。

代码语言:javascript复制
Union(
Row("姓名","张三","学科","数学","成绩",100),
Row("姓名","李四","学科","语文","成绩",90),
Row("姓名","王五","学科","英语","成绩",80)
     )
B. 通过语法构建{(),()}

而在Power Pivot里面默认格式是{(),()},也就是{(1列1行数据,2列1行数据,3列1行数据),(1列2行数据,2列2行数据,3列2行数据)},但是默认的标题为value1,value2等。所以如果要生所需要标题的表格,则还需要通过SelectColumns函数进行添加所需要的标题。请注意,如果是只生成单个列的话,字段名默认是Value。

代码语言:javascript复制
SelectColumns(
{
("张三","数学",100),
("李四","语文",90),
("王五","英语",80)
},
"姓名",[value1],
"学科",[value2],
"成绩",[value3]
)

2. 增加行

如果我们要在原来的表格里面增加一行数据的话,同理通过union进行合并即可。

代码语言:javascript复制
Union('表1',
      Row("姓名","赵六","学科","化学","成绩",70)
     )

因为Union表合并是不核对列名的,只根据列排序来进行合并,所以也简写

代码语言:javascript复制
Union('表1',
      Row("1","赵六","2","化学","3",70)
     )

3. 增加列Addcolumns

A. 语法
代码语言:javascript复制
ADDCOLUMNS ( <Table>, <Name>, <Expression> [, <Name>, <Expression> [, … ] ] )

位置

参数

描述

第1参数

Table

需要操作的表

第2参数

Name

增加的列名,需文本格式

第3参数

Expression

增加列里写的表达式内容

B. 返回

表——增加单列或者多列的表

C. 注意事项
  • 单个函数不仅可以增加1列,而且可以同时增加多列。
  • 一般用于DAX Studio中构建的虚拟表,不反回最终实表。
D. 作用

返回原表加上增加列后的表。

E. 案例

例如我们需要在上面添加一个学校名称,例如张三属于1中,李四属于2中,王五属于3中。

代码语言:javascript复制
ADDCOLUMNS('表1',"学校",
                SWITCH(true(),
                            '表1'[姓名]="张三","1中",
                            '表1'[姓名]="李四","2中",
                            '表1'[姓名]="王五","3中"
                       )
           )

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。

0 人点赞