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中"
)
)
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。