创建表的几种方式(语法总结)
小伙伴们好啊,今天和大家说说用M和DAX创建表的几种方式。
我们需要创建的表格如下:
使用DAX创建表
首先来看一种最常用的方式:
方法一:使用DATATABLE创建,实现的代码如下:
Employees_1 =
DATATABLE (
"Name", STRING,
"Age", INTEGER,
"Gender", BOOLEAN,
"Date of Birth", DATETIME,
{
{ "A", 17, FALSE, "2014/2/16 0:00:00" },
{ "B", 33, TRUE, "1988/10/10 0:00:00" }
}
)
该函数的语法如下:
DATATABLE( <name>, <type> [, <name>, <type> [, ...] ], <data> )
前面的参数成对出现,分别指明字段名称和数据类型。整个data部分用{}包裹,每条记录再次用{}分割。
方法二:SELECTCOLUMNS + {}
DAX中的表的构造符为{},直接输入{""},我们可以得到一张单列空表。每行纪录用小括号分割,每行记录中的每个字段内容用逗号分割。在不考虑标题名称前提下,可以尝试以下代码:
Employees_2 =
{
( "A", 17, FALSE, "2014/2/16 0:00:00" ),
( "B", 33, TRUE, "1988/10/10 0:00:00" )
}
效果如下:
不指定其名称,列的标题将会默认生成,Value1,Value2,Value3...标题名称修改可以通过SELECTCOLUMNS实现,最终代码如下:
Employees_2 =
VAR Data = {
( "A", 17, FALSE, "2014/2/16 0:00:00" ),
( "B", 33, TRUE, "1988/10/10 0:00:00" )
}
RETURN
SELECTCOLUMNS (
Data,
"Name", [Value1],
"Age", [Value2],
"Gender", [Value3],
"Date of Birth", [Value4]
)
效果和方法1.1一致,区别在于省去了指定数据类型的步骤,稍微简洁些。
使用M创建表
方法一:#table(columns as any, rows as any ) as any
let
源 = #table(
{ "Name", "Age", "Gender", "Date of Birth"},
{
{"A", 17, false, "2014/2/16 0:00:00"},
{"B", 33, true, "1988/10/10 0:00:00"}
}
)
in
源
效果如下:
该函数有两个参数,一参指定字段标题名称,二参内层每个List中是具体数据,最后用一个大的List包裹。
细心的小伙伴会发现此时每个字段的数据类型是any。DAX在创建表的时候可以指定数据类型,M语言可以吗?可以,不过代码要长一些:
let
源 = #table(
type table[ Name = text, Age = number, Gender = logical, Date of Birth = datetime],
{
{"A", 17, false, "2014/2/16 0:00:00"},
{"B", 33, true, "1988/10/10 0:00:00"}
}
)
in
源
此时各字段的数据类型已经指定,无需添加新的步骤。
方法二: Table.FromRecords
let
源 = Table.FromRecords(
{
[ Name = "A", Age = 17, Gender = false, Date of Birth = "2014/2/16 0:00:00" ],
[ Name = "B", Age = 33, Gender = true, Date of Birth = "1988/10/10 0:00:00" ]
} //, type table[ Name = text, Age = number, Gender = logical, Date of Birth = datetime] 指定数据类型
)
in
源
因为Records由键值对构成,本身已包含字段名称,所以不再需要我们单独指定字段名称。如果需要在建表的时候指定数据类型,同样需要借助二参实现。(注释部分)
M语言Table可以由Records和List转换而来,所以构建表的方式多种多样。除了上面提到的方法,还有:
- Table.FromRows
- Table.FromColumns
- Table.FromList
篇幅所限,本篇文章不再一一赘述,方法大都类似,有兴趣的小伙伴可以自己做尝试。
以上就是今天介绍的用DAX和M语言创建表格的方法,希望大家能够有所收获。祝大家学习愉快,下期再见!
-
PowerPivot工坊原创文章,转载请注明出处!
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
Power Pivot工坊
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)