随笔分类 - 烧脑M
Excel有不少异空间,Power Query是其中之一,他最大的功劳就是把一些乱七八糟的数据给收拾服帖了。
相对而言,Power Query的操作部分相当简单,且内容已成书,所以此地专门用来折腾M语言。
摘要:问题:条件如下图A9:B12所示,C9:C12是所对应的结果,如何在Power Query中实现。 如果使用以下公式: =IFS(AND(A2>=1,B2>=1),1,AND(A2>=1,B2<1),2,AND(A2<1,B2>=1),3,AND(A2<1,B2<1),4) 用以下M函数替代: =
阅读全文
摘要:问题:A1:E6是不规则的矩阵,其中第一行是标题。需要将其转换成G:H两列。 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 已添加索引 = Table.AddIndexColumn(源, "索引"), 逆透视的其他列 = Table.U
阅读全文
摘要:数据源: 转换结果: let 源 = Excel.Workbook(File.Contents(".....xlsx")), 整理表 = Table.SelectColumns(Table.SelectRows(源, each ([Kind] = "Sheet") and Text.EndsWith
阅读全文
摘要:问题:C列相同的,GH两列的内容横向排成一行 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 合并的列 = Table.CombineColumns(源,{"标题7", "标题8"},Combiner.CombineTextByDelim
阅读全文
摘要:问题: let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 替换租户 = Table.ReplaceValue(源,"租户","",Replacer.ReplaceText,{"房号"}), 替换二次装修 = Table.ReplaceVal
阅读全文
摘要:问题:多工作表合并,但第一行不需要,标题行从第二行起。 let 源 = Excel.Workbook(File.Contents("路径\文件名.xlsx")), 规范表 = Table.TransformColumns(源, {"Data", each Table.PromoteHeaders(T
阅读全文
摘要:问题:两表合并,其中一表有重复的数据需要事先求和或合并 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 合并查询 = Table.NestedJoin(源, {"订单号"}, 表2, {"订单号"}, "表2", JoinKind.Lef
阅读全文
摘要:问题:将“数据”列分组向下填充 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 分组 = Table.Group(源, {"编号"}, {"内容", each Table.FillDown(_,{"数据"})}), 展开 = Table.
阅读全文
摘要:问题:将表2的内容匹配到表1对应的行 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 添加表2列 = Table.AddColumn(源, "自定义", each 表2), 展开 = Table.ExpandTableColumn(添加表
阅读全文
摘要:问题:根据区块表和指标表,对源表进行筛选 let 源 = Excel.CurrentWorkbook(){[Name="源表"]}[Content], 匹配区块 = Table.NestedJoin(源, {"区块"}, 区块, {"区块"}, "匹配区块", JoinKind.RightOuter
阅读全文
摘要:问题:除类别以外,其他数据列如有增减,求和结果随之联动 如果用PowerQuery中的List.Sum添加一列进行求和,因其参数为固定的列标题名,所以当数据列有所增减时,需要手动修改公式。以下做法先将数据表进行逆透视,分组求和后再透视回原结构,再有列数增加,都会在分组求和里得到计算。 let 源 =
阅读全文
摘要:问题:对混在一起的汉字与字母混进行完全拆分 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 从中文到字母拆分列 = Table.SplitColumn(源, "列1", Splitter.SplitTextByCharacterTrans
阅读全文
摘要:问题:一列数据,每7行为一组数据,每组数据横向排列,标题独立。 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 加索引 = Table.AddIndexColumn(源, "索引"), 区分组 = Table.RemoveColumns(
阅读全文
摘要:问题:某工作簿中有若干个工作表,每个表的结果与上图AB两列同,需要列出各工作表中数据有差异的内容,如上图D:H列(需要比对的所有工作表名均为默认)。 let 源 = Excel.Workbook(File.Contents("C:\...\工作簿名.xlsx"), true), 筛选 = Table
阅读全文
摘要:数据源(左单列、右多列): //单列排序 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 排序的行 = Table.Sort(源, {"成绩", 1}) in 排序的行 //单列分组排序 let 源 = Excel.CurrentWork
阅读全文
摘要:数据源: //分组美式排名 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 分表 = Table.Group(源, "班级", {"分表", each Table.AddRankColumn(_, "排名", {"成绩", 1})}),
阅读全文
摘要:数据源: //多级美式排名 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 班级成绩排名 = Table.AddRankColumn(源, "排名", {{"班级", 0}, {"成绩", 1}}) in 班级成绩排名 //多级中式排名
阅读全文
摘要:数据源: //多列美式排名 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 拆分列 = Table.ToColumns(源), 列分组 = List.Split(拆分列, 3), 列合并 = List.Transform(列分组, eac
阅读全文
摘要:数据源: //单列美式排名 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 原序 = Table.AddIndexColumn(源, "索引"), 排名 = Table.AddRankColumn(原序, "排名", {"成绩", 1})
阅读全文
摘要:问题:编号区间为001-010,拆分成10行,如图所示。 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 最大编号 = Table.AddColumn(源, "最大编号", each if Text.Length([编号]) = 7 th
阅读全文

浙公网安备 33010602011771号