随笔分类 - 烧脑M
Excel有不少异空间,Power Query是其中之一,他最大的功劳就是把一些乱七八糟的数据给收拾服帖了。
相对而言,Power Query的操作部分相当简单,且内容已成书,所以此地专门用来折腾M语言。
    
摘要:数据源: 任意二维表,至少一列条件列,至少两列同属性统计列(少于两列不再是二维表) 目标: 二维表转成一维表 操作过程: 选取统计列》【转换】》【逆透视列】 M公式: = Table.UnpivotOtherColumns( 表, {"条件列1",...,"条件列n"}, "属性列", "值列") 
        阅读全文
                
摘要:数据源: 任意一维表,至少两列,条件列和统计列各一列,条件列即透视列 有两列以上统计列时,其中之一为透视列 目标: 一维表转成二维表 操作过程: 选取条件列(之一)》【转换】》【透视列】》【值列】选取统计列》【高级选项】》选取聚合值函数【确定】 M公式: = Table.Pivot( 表, 新标题列
        阅读全文
                
摘要:数据源: 至少两列 目标: 列顺序重新排列 操作过程: 选取待移动的列》鼠标拖放列标题 选取待移动的列》【转换】》【移动】》选取 M公式: = Table.ReorderColumns( 表, {"顺序列1",..., "顺序列n"}, 处理不存在的列) 处理不存在的列 0:代表MissingFie
        阅读全文
                
摘要:数据源: 任意列中包含空单元格 目标: 将空单元格填充为其上或其下单元格中的内容 操作过程: 选取指定列》【转换】》【填充】》【向下】 选取指定列》【转换】》【填充】》【向上】 M公式: 向下填充:= Table.FillDown( 表, {”列名1",...,"列名n"}) 向上填充:= Tabl
        阅读全文
                
摘要:数据源: 任意数据源,一列数值,一列非数值(文本) 目标: 对数值列进行求和等计算,对非数值列进行计数等计算 操作过程: 选取待计算的列》【转换】》【统计信息】》选取 M公式: 求和:= List.Sum( 数值列表, 精度) 精度: Precision.Double / 0 / 缺省:双精度 Pr
        阅读全文
                
摘要:数据源: 任意五行两列 目标: 计算行数(包括空行) 操作过程: 【转换】》【对行进行计数】 M公式: = Table.RowCount( 表 ) 扩展: 对表中列进行计数:= Table.ColumnCount( 表 ) 对列表进行计数:= List.Count( 列表 ) 对列表进行不包含nul
        阅读全文
                
摘要:数据源: 任意五行两列 目标: 将原排列顺序颠倒 操作过程: 【转换】》【反转行】 M公式: = Table.ReverseRows( 表 ) 扩展: 反转列表:= List.Reverse( 列表 ) 反转字符串:= Text.Reverse( "字符串" )
        阅读全文
                
摘要:数据源: 任意五行两列 目标: 转置成两行五列 操作过程: 【转换】》【转置】 M公式: = Table.Transpose( 表 )
        阅读全文
                
摘要:数据源: 任意超级表 目标: 将超级表中的数据加载到Power Query编辑器中 操作过程: 选取超级表中任意单元格(选取普通表时会自动增加插入超级表的步骤)》数据》来自表格/区域 M公式: = Excel.CurrentWorkbook(){[Name="超级表名"]}[Content] 扩展:
        阅读全文
                
摘要:按相同分隔符合并: =Combiner.CombineTextByDelimiter("分隔符", 引号字符) 分隔符 直接输入 特殊符号 制表符:#(tab) 回车:#(cr) 换行:#(lf) 不间断空格:#(00A0) 引号字符 QuoteStyle.Csv/1:(半角)引号不显示 Quote
        阅读全文
                
摘要:数据源: 任意表,表中列数超过两列 目标: 其中两列合并为一列 操作过程: 选取两列》【转换】》【合并列】》选取或输入分隔符》输入新列名》【确定】 M公式: = Table.CombineColumns( 表,{"合并列1", "合列列2",...,"合并列n"}, 合并函数,"新列名") 合并函数
        阅读全文
                
摘要:数据源: 销量表和部门表 目标: 其中一表的数据追加到另一表后面,相同列直接追加,不同列增加新列 操作过程: 选取销量表》【主页】》【追加查询】/【将查询追加为新查询】》选择要追加的表》【确定】 M公式: = Table.Combine({表1,表2,...,表n}, {"追加列1",...,"追加
        阅读全文
                
摘要:数据源: 任意数据源,表中有待展开的列 目标: 展开列 操作过程: 选取持展开的列》【转换】》【展开】》选取展开列》设置标题名前缀》【确定】 单击列标题上的【展开】按钮》【展开】 M公式: 展开表:= Table.ExpandTableColumn( 表, "待展开列", {"展开列1",..., 
        阅读全文
                
摘要:数据源: “销量表”和“部门表”两个查找表,每个表中都有“姓名”列 目标: 根据“姓名列”将“部门表”中对应的部门合并到“销量表”中。 操作过程: 选取“销量表”》【主页】》【合并查询】/【将查询合并为新查询】》选取“部门表”》选取匹配列》【确定】 展开Table.Expand… M公式: = Ta
        阅读全文
                
摘要:数据源: 任意数据源,数据中有错误值 目标: 将错误值替换为0 操作过程: 【转换】》【替换值】》【替换错误】 M公式: = Table.ReplaceErrorValues( 表, {{"列名1", "替换值1"},…,{"列名n","替换值n"}}) 效果:如图
        阅读全文
                
摘要:数据源: “姓名”“基数”等列 目标: 修改“姓名”列标题为“员工姓名” 操作过程: 【转换】》【重命名】》修改标题名》回车 双击标题名》修改标题名》回车 M公式: = Table.RenameColumns( 表,{{ "原列名1", "新列名1"},...,{ "原列名n", "新列名n"}},
        阅读全文
                
摘要:按相同分隔符拆分: =Splitter.SplitTextByDelimiter("拆分符号", 引号字符) 拆分符号 直接输入 特殊符号 制表符:#(tab) 回车:#(cr) 换行:#(lf) 不间断空格:#(00A0) 引号字符 QuoteStyle.Csv/1:(半角)引号不显示 Quote
        阅读全文
                
摘要:数据源: “姓名”“基数”“个人比例”“个人缴纳”“公司比例”“公司缴纳”“总计”,共7列5行数据 目标: 删除掉前面三行(只留下后面两行数据) 操作过程: 【主页】》【删除行】》【删除最前面几行】》输入删除的行数》【确定】 M公式: 删除行:= Table.Skip( 表, 删除的行数或条件) 说
        阅读全文
                
摘要:数据源: “姓名”“基数”“个人比例”“个人缴纳”“公司比例”“公司缴纳”“总计”,共7列5行数据 目标: 删除掉后面三行(保留前面两行) 操作过程: 【主页】》【删除行】》【删除最后几行】》输入删除的行数》【确定】 M公式: = Table.RemoveLastN( 表, 删除的行数或条件) 说明
        阅读全文
                
摘要:数据源: 任意数据源,包括文本和非文本两列 目标: 对数据进行替换操作 操作过程: 【主页】(或【转换】)》【替换值】 M公式: = Table.ReplaceValue( 表, 查找值, 替换值, 替换种类, { "列名1",..., "列名n"}) 替换种类: Replacer.ReplaceV
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号