随笔分类 - 烧脑M
Excel有不少异空间,Power Query是其中之一,他最大的功劳就是把一些乱七八糟的数据给收拾服帖了。
相对而言,Power Query的操作部分相当简单,且内容已成书,所以此地专门用来折腾M语言。
摘要:问题:表1和表2,需要根据表2中金额下限的设置反应对应的等级(=LOOKUP(A2,D$2:E$4)的结果)。 let 源1 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 源2 = Excel.CurrentWorkbook(){[Name="表2
阅读全文
摘要:问题: 由问题+答案生成结果 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 结果 = Table.AddColumn(源, "结果", each Text.Combine(List.Combine(List.Zip({Text.Spli
阅读全文
摘要:问题:一个单元格内若干个加号,计算其个数 //非M版 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 复制的列 = Table.DuplicateColumn(源, "名称", "名称 - 复制"), 按分隔符拆分列 = Table.Ex
阅读全文
摘要:问题:左表转成右表 let 源 = Excel.CurrentWorkbook(){[Name="表1_5"]}[Content], 添加公司名列 = Table.TransformColumns(Table.ExpandTableColumn(Table.Group(源, {"件号"}, {"内容
阅读全文
摘要:问题:如何进行自定义排序 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 排序的行 = Table.Sort(源,each List.PositionOf(Table.ToList(排序依据表),[数据])) in 排序的行
阅读全文
摘要:问题:增加数量列,来源于表2,与代码相同行,指定有效期内数据的和。 表1: let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 已添加索引 = Table.AddIndexColumn(源, "索引"), 插入起始月份 = Table.Add
阅读全文
摘要:问题:数据中存在重复的都删除 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 分组的行 = Table.Group(源, {"数据"}, {"计数", each Table.RowCount(_)}), 筛选的行 = Table.Sele
阅读全文
摘要:let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 添加姓名列 = Table.AddColumn(源, "姓名", each if [列10] = "姓名:" then [列5] & [列11] else null), 姓名列填充 = Ta
阅读全文
摘要:问题:左表转成右表 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 分组的行 = Table.Group(源, {"机房名称", "网络制式"}, {"合并", each Text.Combine([BBU名称],",")}), 按分隔符
阅读全文
摘要:let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 添加姓名列 = Table.AddColumn(源, "姓名", each if not Text.Contains([11], ":") or [11] = null then [11]
阅读全文
摘要:问题1:有明确的分隔符 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 行号 = Table.AddIndexColumn(源, "行号"), 按分号拆分成行 = Table.ExpandListColumn(Table.Transfor
阅读全文
摘要:问题:如何根据周数计算月 假设:以每周第一天为标准,一周从周一开始计 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 当前年 = Table.AddColumn(源, "23年", each Date.Month(Date.AddDays
阅读全文
摘要:问题:在PQ的某些操作,如展开,需要引用标题名,但是标题名是固定的,如果数据源中的标题发生变化,如何让其联动变化? 解决:利用Table.ColumnNames函数提取标题名实现联动。 以合并查询为例,当前表(表2)与源表进行合并,合并后展开的列有“日期”“城市/地区”“名称”“类别”“销量”“单价
阅读全文
摘要:问题:各国所属公司数量从多到少依次排列 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 按不同国家分别处理 = Table.Group(源, {"国家"}, {"公司", each Table.AddIndexColumn(Table.S
阅读全文
摘要:问题:如下图 let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 已添加条件列 = Table.AddColumn(源, "自定义", each if [列1] = "A" then [列2] else null), 向下填充 = Table
阅读全文
摘要:问题:一列数据存在若干横杠,只需要删除第一个文字前的横杠。 思路一: let 源 = Excel.CurrentWorkbook(){[Name="表2"]}[Content], 每个单元格一个字符 = Table.SplitColumn(源, "列1", Splitter.SplitTextByR
阅读全文
摘要:问题:多个如下图结构的表数据重组 效果如下: 数据整理: let 源 = Excel.Workbook(File.Contents("路径\文件名.xlsx"), null, true), 筛选掉无关工作表 = Table.SelectRows(源, each Text.Contains([Name
阅读全文
摘要:问题:删除指定内容(丙)行 VS 删除指定行(第3行) 删除指定内容(丙)行 = Table.SelectRows(步骤名, each ([列名] <> "丙")) 删除指定行(第3行) = Table.AlternateRows(步骤名,2,1,Table.RowCount(步骤名))
阅读全文
摘要:问题:两表比对,结果如下A10:E13中的显示,要求,不使用自定义的M函数,全部使用Power Query的内置功能。 let 源 = Table.NestedJoin(表1, {"单号"}, 表2, {"单号"}, "表2", JoinKind.FullOuter), #"展开的“表2”" = T
阅读全文
摘要:问题:两表合并,合并后物流部门表部分不变,检验批次和检验员提取唯一值,检验日期和时间取小于对应生产日期和时间中的最大值。 let 源 = Table.NestedJoin(物流表, {"物料号"}, 检验表, {"物料号"}, "检验表", JoinKind.LeftOuter), 展开检验表 =
阅读全文

浙公网安备 33010602011771号