乐于分享
好东西不私藏

Excel M函数——表的合 与 分

Excel M函数——表的合 与 分

表格的拆分就是表格(Table)、列表(List)、记录(Record)之间的相互转换

表转列表——按列转(Table.ToColumns)

就是把表里面的每一个字段转为一个列表(List)

比如:

这个函数转换之后就不包含标题只有元素

表转列表——按行转(Table.ToRows)

就是每一行做出一个列表(List)

同样也不计算标题

按行和成表——(Table.FromRows)

Table.FromRows({列表},{标题}可省略)

=Table.FromRows({{1,4,7},{2,5,8},{3,6,9}})

如果加标题

=Table.FromRows({{1,4,7},{2,5,8},{3,6,9}},{"A","B","C"})

但是所有是元素数量必须一致,不然报错,系统 不会默认加空值

按列合成表——(Table.FromColumns)

Table.FromColumns({列表},{标题}可省略)

里面的每一个列表都是一个字段

=Table.FromColumns({{1,2,3},{4,5,6},{7,8,9}})

=Table.FromColumns({{1,2,3},{4,5,6},{7,8,9}},{"A","B","C"})

这个就可以有不同数量元素,系统自动补充null

练习:横向和纵向计算合计值

横向求和:

=Table.AddColumn(源,"总计",each

List.Sum(List.Skip(Record.ToList(_) )))

纵向求和:

=List.Transform(Table.ToColumns(源), each 

try List.Sum(_), otherwise "合计")

表转列表后,遍历列表对列表求和  ,try 试错函数如果出现错误输出"合计"

计算出来和还是一个记录,要把记录转表然后合并

=Table.FromRows(

List.Transform(Table.ToColumns(源), each

try List.Sum(_), otherwise "合计")

,Table.ColumnNames(源)) & 源

Table.FromRows,就是把数据横向做成表那么纵向就是Table.FromColumns

本期关键字:#Excel#M函数#Excel Power Query#表转列表#表转列表按列转#Tabel.ToColumns#表转列表按行转#Table.ToRows#合成表#按行合成表#Table.FromRows#按列合成表#Table.FromColumns#试错函数#try   otherwiser