Text.SplitAny 分开的函数 只适合文本 不能用list
= Table.AddColumn(自定义1, “A”,each Table.FromRows({List.Combine(List.Zip(Record.ToList([a=List.Select(Text.SplitAny([产品信息],字母),each _<>""),b=List.Select(Text.SplitAny([产品信息],Text.Combine(a)),each _<>"")])))}))
深化与查询
深化引用查询
1.担当vlookup
=Table.AddColumn(源,“部门”,each 某表{[业务员=[业务员]}[部门]})
其中的表可以是不同的表 也可以是在一张表中的不同操作步骤
动态引用多工作簿内容
1.深化多个工作簿
2.选择各个表中的列的汇总值进行汇总
合并一个文件夹中多个表格
= Table.Combine(Table.Combine(List.Transform(源,each Excel.Workbook(_,true,true)))[Data])
合并多个表中的相同位置的值采用深化即可。
合并多个表中的不同位置的列的方式
Record 可以将1列进行提取对应的列转换为Record然后展开成多列
=Table.TransformColumns(“表”,{‘Data’,each [数量={[型号=“合计”]}[商品数量],金额={[型号=“合计”]}[商品金额]]})
自定义函数
查询 当let中的语句只有一句话的时候 就不用加LET
累计求和
添加自定义列进行求和
当用传递行数的时候可以 设置为参数
累计求和中创建的索引列应该从1开始;
=Table.AddColumn(已添加索引,“累计求和”,each List.Sum(List.FirstN(已添加索引[销售业绩],[索引])))
传递函数:
Table.AddColunmn(已添加索引,“累计求和”,(x)=> List.Sum(List.FirstN(已添加索引[销售业绩],x[索引])))
构建Record
=Record.Combine({查询1,查询2}) =Record.Combine({[姓名=“万金发”],[年龄=35],[性别=“男”]]}) 必须为List 格式
Table.ToList
Record.FromList(源,{“title1”,“title2”})
Record.ToList(Record)
通过一个record 来获得列表的时候 的列字段 名称 必须是 Name Value
Record.FromTable
Table.Range 重新获取数据
Table.FromRecords({})
Table.ToRecords 为将title与每一条明细变成Title
Record.FormTable 为原表中有一列为Name列 一列为Value列
=Table.FromRecords(List.Transform({0…11},each Record.FromTable(Table.range(重命名的列,_*间隔数(8),获取几行(6))) 8
注意Table.Range
构建List
列表是没有字段标题的
List列表中可以嵌套其他列表元素
英文 中文 拼音的列
={“a”…“Z”}
=Text.ToList()
12345678 1
2
3
4
5
6
7
8
List.Combine
= List.Combine({{1,2},{3,4}})
LIst 中的每一个为List的 才客户
列表
List
List
List
List.Positions 获取List中的位置关系
根据初始值,总项目数,步进递增量,返回指定项数的list数字列表
List.Date List.Times,List.DateTime List.Durations
List.Repeat
List.Reverse
构建Table
=#table({字段名称},{{行值},{行值}})
注意是小写
List当中是Table 就可以用Table.Combine
Table.ToRows 拆分成一行的list 无字段
Table.FromRows从多个Rows的List进展开
=Table.FromRows(源,{字段Title})
Table.ToRecord
Table.FromRecords
Table.ToCoLumns
Table.ToList 将表中的内容设置为文本类型,然后进行合并
Table.FromList 将一列List中以逗号隔开的内容,转置为表格
注意,只能是逗号
=Table.FromList(源,each Text.Split(_,"/"),{字段标题},备选值)
Table.ToColumns
Table.FromColumns
其中的List为每个Column的值
三大容器构建宇宙
指定的列进行分组
Table.Group 分组 是将表格中的所有内容进行分组,如果需要将表格中的某列进行合并需要深化出来
=Table.Group(表,{“年级”},{“姓名”,each Text.Combine(_[姓名]," ")})
List.Zip
支持结构
=List.Zip({{1,2},{3,4}})
Output
{1,3},{2,4}
了解函数语法及常用聚合函数
Table.Group 局部分组 和 全局分组
=Table.Group(table,{分组字段},{{分组的列},{分组的列}},全局,大小写)
0 局部
1或者缺省为全部
其中全局为根据分组依据,将表中所有行进行汇总
局部分组为根据表格的上下文,进行分组 ,不是统计全部的表,相邻进行统计。
区分大小写 Comparer.Ordinal
Comparer.OrdinalIgnoreCase
Comparer.FromCulture
可以制作多列
List 聚合函数
Text.Combine
List.Product 乘法
List.Count
List.NonNullCount
List.Mode 众数
List .Modes
1
3
2
4
3
5
实现乘法
扩展分组套路
统计不同班级 同类科目中的第一名
=Table.Group(源,{“班级”},{“a”,each Table.Max(_,“语文”)})
=Table.Group(源,{“班级”},{“a”,each Table.First(Table.Sort(_,{“语文”,1}))})
=Table.First(_)
=Table.Sort(表,{“排序的列”,1(升序or降序)})
扩展分组套路-纵向分组
=Table.Group(源,{“品名”},{“统计”,each “订单数量:”&Text.From(Table.RowCount())&"#(lf)"&“订单金额:”&Text.From(List.Sum([金额])})
& 连接符 前后应该为同一格式?文本格式?
横向分组:
=Table.Group(源,{“品名”},{“统计”,each [订单数量=Table.RowCount(),销售金额=List.Sum([金额])]})
拓展分组——模拟分类汇总
=Table.Group(源,{“品名”,{“品名”,each Table.FromRows(TableToRows(_)&{{={0}[品名]&“小计”,null,List.Sum([数量]),List.Sum([成本金额],List.Sum([销售金额])}}.Table.ColumnNames(源)})
拓展分组 统计连赢场次:
List.Skip(List,0) 如果忽略0 将自动默认为
Text.Length 统计一个格中的字符个数
方法1:整体分组嵌套局部分组 ,统计连赢场次 ,求最大值:
=Table.Group(源,{“球队”},{“a”,each List.Max(Table.SelectRows(Table.Group(,{“值”},{“b”,each Table,RowCount()},0),each [值]=“胜”)[b])})
方法2: 分组后,将对应的一行 转为多行的List 然后进行合并,多项拆分后,统计字符长度。
=Table.Group(源,{“球队”},{“a”,each List.Max(List.Transform(Text.SplitAny(Text.Combine(List.Skip(Table.ToRows(_){0})),“平负”),Text.Length))})
判断齐码断码
Number.Sign 将数字转换为数字符号(0,1)
Text.Contains (text,“条件”)
1.利用全局分组,局部分组进行统计 套路同上
=Table.Group(提取的符号,{“款号”},{“A”,each if List.Max(Table.Group(,{“数量”},{“b”,each List.Sum([数量])},0)[b]) > 2 then “齐码” else “断码”})
2.分组后,将一行转换成多列,统计连续的
=Table.Group(源,{“款号”},{“a”,each if Text.Contains(Text.Combine(List.Transform(List.Skip(Table.ToRows(){0},each Text.From(Number,Sign())),“111”) then “齐码” else “断码”})
转换列字段 Table.TransformColumns
转换所有字段 =Table.TransformColumns(源,{},Text.Form)
该字段的意思为去除{}内的列以为,的其他列的格式,因为{}中为空,故是所有列。
将表格中的所有的列转换为文本的格式
Table.TransformColumns(源,{{},{}}) 多个字段进行操作
根据表中某列数字从1开始进行扩展
=Table.TransformColumns(源,{“库存”,each {1…_}})
转换中的一列 务必记得添加"{}"符号
只转换表中的几列,其他的列不转换 或转换为其他类型
将表中的一列不进行转换,其他列转换为信息符号 (1,0)
=Table.TransformColumns(源,{{“款号”,each _}},Number.Sign)
如果转换的列在表中无此列,需要添加一列的
=Table.TransformColumns(源,{{“价格”,each _}},null,MissingField.UseNull)
扩展转换应用到行
将颜色防在同一采购价的同一个格中 ,以逗号的形式 ,然后分隔开,对应相应的采购价
方法一:=Table.ExpandListColumn(Table.TransformColumns(源,{“颜色”,each Text.Split(_,",")})
方法二,利用拆分列,进行拆分(excel 界面即可)
扩展转换应用到列
=Table.TransformColumns(源,{{“颜色明细”,each List.Transform(Text.Split(Text.Remove(,"]"),"["),each Record.FromList(Text.Split(,"["),{“颜色”,“尺码”})},{“尺码明细”,each List.Transform(Text.Split(Text.Remove(,"]"),"["),each Record.FromList(Text.Split(,"["),{“尺码”,“明细”}))}})
Record.FromList 格式
其中的Record 可以替换为 1,田佳兴
将列转换为表
Table.FromList
=Table.TransformColumns(源,{“产品信息”,each Table.FromList(Text.Split(,"#(lf)"),each Text.Split(,","),{“1”,“2”,“3”,“4”,“5”})})
Table.TransformRows
转换结果
=Table.TransformRows(源,each _) 将原表的每一行根据title转换成为Record
1.在每一行中间插入空行
=Table.FromList.Combine(Table.TransformRows(源,each {_,Record.FromList(List.Repeat({null},8),Table.ColumnNames(源))}))
Table.TransformRows(源,each _)
将表中的一行转换成为Records然后进行编辑
重组行
=Table.TransformRecords(源,each [日期=[日期],客户信息=[销售城市]&[客户]&[渠道],业务员=[业务员],商品单价=[商品总价]/[商品数量]])
转换行数
方法一,自学成才,哈哈哈
= Table.Combine(Table.TransformRows(源, each Table.FromRows((List.Transform({0…2},(x)=>List.Range(Record.ToList(_),x*3,3))))))
因为Table.TransformRows 中将每行转置为Record,其中将Record 的每一行转换成为List 然后 每个List中有三行,然后展开后进行Table.Combine 结合即可
方法二 使用Table.ToRows进行转换
=Table.FromRows(List.Combine(List.Transform(Table.ToRows(源),each List.Transform({0…2},each List.Range(_,x*3,3))))
方法三:将所有的列进行合并后,并重新进行分配排列
=Table.FromRows(List.Transform({0…75},each List.Range(List.Combine(Table.ToRows(源),_*3,3)))
转换列名称
转换列的数据类型
=Table.TransformColumnTypes(源,{{列名称,type date},{列名称,type number}})
更改列的名称
=Table.RenameColumns(源,{{ole,new},{old,new},{old,new}},2)
1,2 表示 如果表中无此字段时候怎么显示
2,可以添加无此列的意思
=Table.TransformColumnNames(源,{“列”}
转换表格中整体列的名称
=Table.TransformColumnNames(自定义1,each Text.Remove(_,“城”),[MaxLength=10])
MaxLength 表示 列最长的字段长度
List.Transform
Text.Combine 必须将表格中的内容转换为Text进行合并后才OK
Date.ToText (_,“yyyy年m月d日”)
此处的_,必须为Date 格式 不能为数字格式
List.Transform
除常用的对列的转换外还有 以下使用方式
在同一张表内进行跨表查询
=List.Transform(List.Positions(L2),each L2{}*L1{})
跨表相成
=List.Transform(List.Positions(L1),each L1{}*产品[商品数量]{})
其中的{_}为每一行
将公式做为内容,为一个List 对某列进行计算
=List.Transform({List.Count,List.Sum},each _(List))
笛卡儿积
List.TransformMany
=List.TransformMany({…},(t)=>{…},(x,y)=>Text.From(x*100+y))
List.TransformMany(List.TransformMany({“1”,“2”,“3”},(t)=>{“一”,“二”,“三”,“四”},(x,y)=x&“栋”&y&“单元”),(t)=>List.TransformMany({1…5},(a)=>(1…3),(x,y)=>Text.From(x*100+y)),(x,y)=>x&y)
=List.TransformMany({“红桃”,“黑桃”,“方片”,“草花”},(t)=>{“A”,“1”…“9”,“10”,“J”,“Q”,“K”},(x,y)=>x&y)
Tip
Table.CombineColumns
合并列
=Table.CombineColumns(源,{需要合并列的Title,需要合并列的Title},each ,{新合并列的名称})
=Table.CombineColumns(表,{“行业”,“省份”},each Text.Combine(,"-"),“1”)
单元格内分组统计
套路一:深化为List 多个单元格内容合并后,进行拆分 对列进行修改。
Text.ToList
=Table.FromRecords(List.Transform(Text.Split(Text.Combine(,","),","),each [单位=Text.Remove(,{“0”…“9”}),金额=Text.Remove(_,Text.ToList(单位))]))
注意 Text.ToList 的格式 其中Record中的一列内容为Text
数字和文本为一个单元格内容时,数字为文本格式。
方法二,转换表格中的列,分列后进行转换
注意:其中的List.Transform
=Table.TransformColumns(源,{“合作方”,each List.Transform(Text.Split(,","),each [单位=Text.Remove(,{“0”…“9”}),金额=Number.From(Text.Remove(_,Text.ToList(单位)))])})
一列转置多列
Table.Range(表,起始位置(0),获取的行数)
=Table.PromoteHeanders(Table.Combine(List.Transform({0…Table.RowCount(表)/5},(x)=>Table.Transpose(Table.Range(表,_*5,5))))))
列中间隔Title
=Table.Combine(List.Transform({0…12},(x)=>Table.Range(Table.PromoterHeaders(Table.Combine(List.Transform({0…Table.RowCount(源/5},each Table.Transpose(Table.Range(源,_5,5)))))),x2,1)))
自定义行列转置
每个一列为字段名称列后 ,删除Title列后进行表格的合并
隔行取数:
Table.Range 改变表的范围
行列重组
List.Alternate(List,跳几行,获取几行,从哪行开始(1,上面的列会被保留))
Table.AlternateRows(源,从哪行开始,跳过几行,获取几行)
间隔获取行后进行重组
=Table.FromColumns(Table.ToColumns(Table.AlternateRows(源,1,1,1)&{List.Alternate(源[浏览人数],1,1,0)}),{“课程名称”,“金额”,“报名人数”})
多项目结构重组
=List.Range(List,从第几行开始,获取几行)
=Table.Group(源,List.FirstN(Table.ColumnNames(源),6),{“a”,each Table.SelectRows(Table.FromRows(List.Transform({6,8,10},(x)=>List.Range(Table.ToRows(_),x,2)),{“缺陷”,“数量”}),each _[数量]<>null)}})
转换为工资条
=Table.PromoteHeaders(Table.FromRows(List.Combine(Table.TransformRows(源,{Table.ColumnsNames(源)}&Record.ToList(_)}))))
分表汇总成总表
将多个表中的内容转换
思路:将表格转换成为List 进行合并 后为一列List, 然后截取一部分 合并为多个List后 进行拆分 然后转置为Table后进行合并
=Table.Combine(List.Transform({0…35},(x)=>Table.PromoteHeaders(Table.Transpose(Table.FromList(List.Range(List.Combine(Table.ToColumns(源)),x*8,6),each Text.Split(_,")))))
查找分组横向展开
下表为2列表 此方法主要是进行归类 将编码开头为1…7的产品 分类 统计数量
=Table.FromColumns(List.Combine(List.Transform({“1”…“7”},(x)=>Table.ToColumns(Table.SelectRows(源,each Text.Start(Text.From([商品编码]),1)=x)))),List.Combine(List.Zip(Table.ToColumns(Table.Transpose(Table.FromRows(List.Transform({0,1},each List.Range(List.TransformMany(Table.ColumnNames(源),(x)=>x&y),_*7,7))))))))
=Table.FromColumns(List.Combine(List.Transform({“1”…“7”},(x)=>Table.ToColumns(Table.SelectRows(源,each Text.Start(Text.From([商品编码]),1)=x)))),List.Combine(List.Zip(List.Transform({0,1},each List.Range(List.TransformMany(Table.ColumnNames(源),(x)=>{“1”…“7”},(x,y)=>x&y,_*7,7)))))
脑洞题将结果表转置为源表
=Table.SelectRows(Table.Combine(List.Transform({0…7},(x)=>Table.FromColumns(List.Range(Table.ToColumns(自定义1),x*2,2),each [Column1] <> null)
多维转换
将下表转置重组
=Table.FromColumns({List.Combine(List.Transform({0…4},each List.Repeat(List.Range(表1[列1],_6,1)))}&Table.ToColumns(Table.Combine(List.Transform({0…4},(x)=>List.Range(Table.ToColumns(Table.PromoteHeaders(Table.Transpose(源))),x6,6))))),{“1”,“2”,“3”,“4”,“5”,“6”,“7”})
Table.Skip
List.Range 与List.Alternate的区别 List.Range选择的数据为无位置纯数据,List.Alternate为不改变其位置 的选取
故在重组表格Title中选择字段名称需要用的是List.Range 而不是List.Alternate
方法二,
=Table.FromColumns({List.Combine(List.Transform({0…4},each List.Repeat(List.Range(源[列1],_6,1)31)))}&Table.ToColumns(List.Transform({0…4},(x)=>Table.Skip(Table.Transpose(Table.Range(源,x6)),1)))),{“班级”,“姓名”}&List.Range(源[列1],1,5))
筛选符合条件的行(Table.SelectRows)
Date.QuarterOf0Year()
Text.StartsWith
Text.EndsWith
Text.Middle
Text.Contains
Date.Year
Date.ToText
DateTime.ToText
IsInPreviousMonth
=Table.SelectRows(表,each _)
=Table.SelectRows(源,each Date.Year([日期])=2015)
=Table.Select.Rows(源,each Date. QuarterOfYear([]))
=Table.AddColumn(源,“Quarter”,each Date.QuarterOfYear([日期])
模糊匹配
=Table.AddColumn(源,“价格”,each Table.SelectRows(价格,(x)=>Text.Contains([产品名称],x[颜色])){0}[工价])
模糊匹配方法二: 通过去除产品名称中的其他
Text.SplitAny(Text,Text.Combine({}))
根据给定的任意分隔符 中的任意一个进行拆分
注意Text.Combine的用法
=Table.AddColumn(源,“A”,each List.Select(Text.SplitAny([产品名称],Text.Combine({“0”…“z”})),each _ <>null){1})
Table.AlternateRows(源,开始的行,跳过的行数,留下的行数)
获取指定位置的行
Table.Range(源,跳过的行数,获取几行)
=Table.UnPivotOtherColumns(Table.Combine(List.Transform({0…3},(x)=>Table.PromoteHeaders(Table.Range(源,x*7,5)))),{“品名”,“店铺”},“月份”,“数量”)s
间隔获取行(无需使用List.Transform,指的是在一张表中 间隔几行获取几行)
=Table.AlternateRows(源,从第几行开始跳 ,跳过几行,获取几行) 达到的目的与Table.Range一致
=Table.UnpivotOtherColumns(Table.AlternateRows(源,4,3,4),{“品名”,“店铺”},“月份”,“数量”)
获取前后位置的行 Table.FirstN
Table.FirstN (源,条件)
注:Condition 为碰到不满足条件即结束 如果不排序即到了不满足的行即停止,只获取前几行 获取的行必须排在第一行。
=Table.FirstN (源,5) 获取表中的前5行
不排序:
=Table.First.N(源,each [销售城市] = “长沙”)
将表格进行排序;如果下面的行紧接着不是广州即停止。
=Table.FirstN(排序的行,each [销售城市] = “长沙” or [销售城市] =“广州”)
获取最大行 最小行
Table.FirstN Table.MaxN
单条件进行筛选时,会将该表按照一列进行拍寻
多条件进行排序时,多个条件 以书写顺序确定先后, 并且适用遇到不符合条件为止
当用MaxN的时候只能用> ,当用MinN的时候只能用<
Table.First Table.Max
=Table.Min(源,each [商品数量])
=Table.Max(源,each [商品数量])
= Table.MaxN(源
=Table.MaxN(排序的行,{“商品数量”,“商品总价”},each ([商品总价] >3000)
会在商品数量中进行排序,然后找到商品总价大于3000的Records 碰到不满3000的计算将结束,对第二条件不进行排序筛选
区间等级判断
利用Table.Min,Table.Last进行匹配
=Table.AddColumn(源,“跳高结果”,(x)=>Table.Last(Table.MinN(标准,“跳高”,each [跳高] <=x[#“跳高(cm)”]))[评价])
MinN 一个是从大到小排列 MaxN是从小到大进行排列
选择删除行和列
=Table.SelectColumns(源,{列字段名称},0)
0,1,2 ,是否包含该列,如果无则新加一列
=Table.RemoveColumns( )
=Table.SelectRowsWithError( )
= Table.RomoveRowsWithError 删除错误行
区间等级判断
利用 Table.Last 和Table.MinN进行整理
Table 添加列
=Table.AddColumn()
Date.From 从数字中获取日期
Text.Middle
Number.IsOdd 判断奇偶数
DateTime.ToText
Date.ToText
为将长日期 和段日期转换为其他的文本格式 ,文本格式可以比较大小。
yyMMdd 如果不添加自定义格式的话将转换为标准日期格式
yyMMdd hh:mm:ss
Date.From为识别日期中的格式
日期中的年 Date.Year
利用身份证识别年龄
=Table.AddColumn(源,“年龄”,each Date.Year(DateTime.LocalNow())-Date.Year(Date.From())-Number.From(DateTime.ToText(DateTime.LocalNow(),“MMdd”) Table.透视与逆透视列 Table.Pivot=(源,{透视的标签非重复值},“透视源的表的名称透视的列的字段名称”,“透视的值的字段名称”,函数) =Table.Pivot(源,List.Distinct(删除的列[字段名称]),“透视的列的字段名称”,“值字段名称”,List.Sum) =Table.Pivot(源,List.Disinct(删除的列[销售城市]),“销售城市”,“数量”,each Text.Combine(List.Transform(_,Text.From),",")) Table.UnPivotOtherColumns(源,{不逆透视列的字段名称},“转换后的字段标签字段名称”,“转换后的值列字段标签”) Table.UnPivot(源,{透视的列字段标签},“转换后的标签字段名称”,“转换后的值列字段名称”) Table合并连接查询 =Table.NestedJoin(左表,{“查询字段”},右表,{“查询字段”},“新字段名称”,链接方式) JoinKind.Inner 内部连接(交集) 0 直接在表上进行查询就会造成循环引用 ,需要新建查询进行合并 Table的展开与聚合 Table,ExpandRecordColumn (表,“展开字段名称”,{“旧列名”},{“新列名”}) Table.ExpandListColumn Table.ExpandTableColumn =Table.ExpandRecordColumn(Table.TransformColumns(源,{“信息”,each RecordFromList(Text.Split(_,","),{“性别”,“年龄”,“省份”})}),“信息”,{“旧Record名”},{“新列名”}) Table拆分列 Text.Split 可以用多个字符进行拆分 =Text.Split(_,“123”) Splitter.SplitTextByEachDelimiter =Table.SplitColumn(源,“拆分列”,Splitter.SplitTextByDelimiter(),{“拆分后字段名称”,"",""}) True 为右 False 为左 按照指定字符进行拆分 按照一些字符进行拆分,注意 拆分序列需要和表中的出现顺序一致,True为右 False为左 TorF开头为小写,在写之前必须写QuoteStyle 按照制定长度进行拆分 =Table.SplitColumn(源,“个人信息”,Splitter.SplitTextByLength({4,4,4,2},true),{“0”,“1”,“2”,“3”,“4”}) 根据指定长度进行拆分,T or F 从右 到左 按照重复长度进行拆分 无法区分左右。 按照位置进行拆分 按照空格进行拆分 =Table.SplitColumn(源,“产品信息”,Splitter.SplitTextByWhitespace(0),{“1”…“5”}) 按照开始位置,偏移位置进行拆分 QuoteStyle.None 可选的引用样式 QuoteStyle.Csv 按照Csv进行拆分 Csv 如果表中拆分后的数据有其他规律性符号,选择此种数据格式可以去除标点符号 =Text.PositionOfAny(源,{“A”…“Z”},2) 0,第一个位置 1,第二个位置 3,所有位置 拆分 合并 合并要求所有列的格式为文本格式 不会去除空值,去除空值如下: =Table.CombineColumns(源,Table.ColumnNames(源),Each Combiner.CombineTextByDelimiter("/")(List.RemoveNulls(_)),“信息”) Table.CombineColumns(源,Table.ColumnNames(源),Combiner.CombineTextByDelimiter("/"),“NewColumnNames”) Combiner.CombineTextByDelimiter("/") Table.CombineColumns 是对每一行的操作 =Table.ComnbineColumns(源,Table.ColumnNames(源),Combiner.each CombineTextByEachDelimiter({"/","@","#","-"})(List.RemoveNulls(_)),“信息”) =Table.CombineColumns(源,Table.ColumnNames(源),Combiner.CombineTextByLengths({10,3,1,5,2},“哈哈哈哈哈哈哈哈哈”),“信息”) 解释: 主要是固定每个字段的字符长度进行合并 ,如果长度不够可以用指定的字符长度进行替换 前提是替换的字段的字符长度 大于每列字符的长度 否则以空格进行代替 =Table.CombineColumns(自定义2,Table.ColumnNames(自定义2),Combiner.CombineTextByPositions({0,6,9,10,18}),“信息”) 注释:类似与已经有一列,让它们在对应的位置出现,如果列的字符数超过 相隔字符数,将自动截取。不够将以null值进行填充 =Table.CombineColumns(自定义2,Table.ColumnNames(自定义2),Combiner.CombineTextByRanges({{},{},{},{},{},{}}),“信息”) Table的合并拓展 =Table.CombineColumns(源,{ },each _,“b”) 添加一列名称为b的空列, 注意其中_,代表的为一列 对一列的整理和定义 =Table.CombineColumns(源,{“姓名”},each “销售部”&"-"&_{0},“名字”) 标红字段的意义相等,其中红色字段表示的为他们两个等价 =Table.CombineColumns(源,List.Skip(Table.ColumnNames(源)),each List.Transform(List.Zip({List.Skip(Table.ColumnNames(源)),List.Transform(,Text.From)}),(x)=>Text.Combine(x,",")),&"#(lf)总分:"&"Text.From(List.Sum()),"“成绩”) =Table.CombineColumns(源,List.Skip(Table.ColumnNames(源)),each let a = Text.Combine(List.Transform(List.Select(Lsit.Zip({List.Skip(Table.ColumnNames(源)),}),each{1}>90),each Text.Combine(List.Transform(,Text.From)"/"),",") in if a = “” then “无” else a ,“成绩”) 插入替换行 =Table.InsertRows(源,位置,Table.ToRecords(表)) =Table.ReplaceRows(源,起始位置,替换行数,Table.ToRecords(替换表)) 多行进行替换 注意此对应多行替换必须将行内的内容填写完整。 =Table.ReplaceValue (源,要替换的原内容,新内容 as any,Replacer.ReplaceValue,{替换的列}) 注意其中替换值为any 调用旁边的行 =Table.ReplaceValue(源,要替换的内容,each [调用旁边的列],Replacer.ReplaceValue,{替换的列}) =Table.ReplaceErrorValues(表,{{列名,新值},{列名,新值}}) Table 移除行 Table.Skip =Table.RemoveRows(源,开始的行,移除的行) =Table.RemoveMatchingRows(源,{{}}) =Table.FirstN =Table.LastN() =Table Table.ReplaceValue(源,null,each 删除的副本{[物品代码=[物品代码]]}[物品名称],Replacer.ReplaceValue,{“物品名称”}) 表中为非重复行时是可以用Record指定
JoinKind.LeftOuter 左外链接(左差集,加上交集)1
JoinKind.RightOuter 右外 2(右差集,加上交集)2
JoinKind.FullOuter 3 所有的
JoinKind.LeftAnti 左反,显示左边有的 右边无的 4
JoinKind.RightAnti 右反 右边有的 左边没有的 5
({",","."})
根据多个字符逐个进行拆分
Splitter.SplitTextByDelimiters(“abc”,QuoteStyle.Csv)
Splitter.SplitTextByEachDelimiters({"","","",""},QuoteStyle.None,false),{“1”,“2”,“3”,“4”,“5”})
Splitter.SplitTextByLengths({4})
Spitter.SplitTextByRepeatedLengths
=Table.SplitColumn(源,“银行卡信息”,Splitter.SplitTextByRepeatedLengths(4),{“1”,“2”,“3”,“4”,“5”})
Splitter.SplitTextByPositions 与Text.PositionOfAny
Splitter.SplitTextByWhitespace
Splitter.SplitTextByRanges ({{开始位置,偏移位置}})
Combiner.CombineTextByEachDelimiter({"/",“a”,"#"})
Comnbiner.CombineTextByLengths({“3”,“2”},“中华人民共和国”)
Combiner.CombineTextByPositions()
Combine.CombineTextByRanges({})
数字应该是逐渐增长的。
=Table.ReplaceMatchingRows(源,{{[old,old],[new,new]},{[old,old],[new,new]}})
表中为非重复行的时候可以这么写