我是小必,很高兴在这里遇见你,以Excel和Power BI会友。
本期内容主要讲解如何在Power BI或者Excel中的Power Query与Power Pivot中直接使用函数来建表。主要会使用到以下的函数。其中DAX函数有:DATATABLE和SELECTCOLUMNS函数,M函数会使用到#table和Table.FromRecords.
1
使用DAX函数建表
(1)DATATABLE函数
通DATATABLE函数主要是用来手工创建表的函数。
功能:创建以内联方式定义的数据表。
语法:DATATABLE(名称1,类型1,名称2,类型2,……,数据)
这个语法相对比较简单,其中类型主要有BOOLEAN,CURRENCY,DOUNBLE,INTEGER,STRING。这么种分别布尔型,货币型,双精度型,单精度型和文本型。
根据上述来构建一个表:
具体代码如下:(向左划动可看全)
DATATABLE (
"姓名", STRING,
"性别", STRING,
"年龄", INTEGER,
"民族", STRING,
{
{ "张三", "男", 21, "汉" },
{ "李四", "女", 25, "蒙古族" }
}
)
这个函数非常要注意,最后一个参数,是以list的方式来呈现,类似于Power Query中的M的语法,每一个为一个list。
(2)SELECTCOLUMNS函数
功能:选择列中的表或者创建新列。
语法:SELECTCOLUMNS(表,[名称1],[表达式1],……)
SELECTCOLUMNS以{}创建一个表,如果SELECTCOLUMNS+{}则创建一个空表;如果不反指定标题,那么会返回Value1,Value2……。该函数在创建表时可以不指标字段的类型。
可以构建以下的表:
代码如下:(向左划动可看全)
SELECTCOLUMNS (
{
( "张三", "男", 21, "汉" ),
( "李四", "女", 25, "蒙古族" )
},
"姓名", [Value1],
"性别", [Value2],
"年龄", [Value3],
"民族", [Value4]
)
2
Power Query中的M函数建表
(1)#table函数建表
通过#table函数就可以创建表,这个函数是#开头的,函数名称是小写。
功能:从列columns和列表rows创建一个表值。
语法:function (columns as any,rows as any) as any
上面的语法,可能是真的看不懂,那么翻译成人话就是:
=#table({字段1,字段2,字段3,……)},{{第1行},{第2行},……})
如构建一个表为:
其公式可以写成:
#table({"姓名","性别","年龄","民族"},
{
{"张三","男","21","汉"},
{"李四","女","25","蒙古族"}
}
)
但是通过上面创建的表是没有字段的类型的。下面这种方法可以构建带有字段类型的表。如将上面的表创建成带有字段类型,即“姓名”为文本型,“性别”为文本,“年龄”为数字,“民族”为文本,再添加一个日期列,内容为null值。
其公式可以写成:(向左划动可看全)
#table(type table
[
姓名=text,性别=text,
年龄=number,民族=text,
出生日期=date],
{
{"张三","男","21","汉",null},
{"李四","女","25","蒙古族",null}
}
)
与上面的公式不同的是,这里的#table的第一个参数使用了Record的方法,并且使用type table 指定了每个字段的类型。第二个参数与上面的是一样的。
实际使用过程中最常用的还是第一种方法,直接了解,可以直接通过函数或者手动书写第一个参数,但用第二个方法就有些麻烦。
(2)Table.FromRecords函数建表
还有一个建表的方法,就是先根据Power Query中的记录来生成需要的记录,再使用Table.FromRecords来转换成表。
具体代码如下:(向左划动可看全)
Table.FromRecords(
{
[ 姓名="张三",性别="男",年龄="21",民族="汉"],
[姓名="李四",性别="女",年龄="25",民族="蒙古族"]
}
)
这个方法在Power Qeury直接建表的也是很方便的。
END
我是小必:Excel与Power BI爱好者,微软MOS认证Office Master。著有《Excel人力资源管理实战宝典》一书,全网同名自媒体"Excel聚焦"主笔,以Excel与Power BI会友
1.文章《〈怎么创建表格〉excel表格怎么创建表格…》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《〈怎么创建表格〉excel表格怎么创建表格…》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好