随笔分类 - 烧脑M
Excel有不少异空间,Power Query是其中之一,他最大的功劳就是把一些乱七八糟的数据给收拾服帖了。
相对而言,Power Query的操作部分相当简单,且内容已成书,所以此地专门用来折腾M语言。
    
摘要:数据源: 任意数据源 目标: 将第一行提升为标题 操作过程: 【主页】(或【转换】)》【将第一行用作标题】 M公式: = Table.PromoteHeaders( 表, [PromoteAllScalars=逻辑值, Culture = "指定区域" ]) 逻辑值: 第一行是非文本或数值时,如日期
        阅读全文
                
摘要:数据源: 任意数据源 目标: 设置适合的数据类型 操作过程: 选取指定列》【主页】》【数据类型】》选取 选取指定列》【转换】》【数据类型】》选取 选取指定列》【转换】》【检测数据类型】 单击列标题左侧的【数据类型】按钮选取 M公式: = Table.TransformColumnTypes( 表,{
        阅读全文
                
摘要:数据源: 10列55行数据,其中包括含有重复项的“部门”列和可求和的“金额”列。 目标: 按“部门”列进行分组,显示各部门金额小计。 操作过程: 【主页】》【分组依据】》“部门”》新列名“金额小计”》操作【求和】》柱“金额” 【转换】》【分组依据】》“部门”》新列名“金额小计”》操作【求和】》柱“金
        阅读全文
                
摘要:表函数 判断记录在表中是否存在 = Table.Contains( 表, 记录, {"指定列1",…, "指定列n"}) = Table.ContainsAll( 表, {记录1,…,记录n}, {"指定列1",…, "指定列n"}) = Table.ContainsAny( 表, {记录1,…,记
        阅读全文
                
摘要:数据源: 任意工作簿 目标: 使用自定义函数实现将数据源导入Power Query编辑器 操作过程: PowerQuery编辑器》主页》新建源》其他源》空查询 编辑栏内写入公式》调用 M公式: = (自定义参数名) => Excel.Workbook(File.Contents(自定义参数名), n
        阅读全文
                
摘要:数据源: 一列若干行数据。 目标: 根据特定条件拆分 操作过程: 选取“品名”列》【主页】(或【转换】)》【拆分列】 选取“品名”列》【主页】(或【转换】)》【拆分列】 M公式: = Table.SplitColumn( 表, "待拆分列", 拆分函数, {"拆分列1",…, "拆分列n"}或拆分列
        阅读全文
                
摘要:转换列: 格式Table.TransformColumns 提取Table.TransformColumns 标准Table.TransformColumns 科学计数Table.TransformColumns 三角函数Table.TransformColumns 舍入Table.Transfor
        阅读全文
                
摘要:数据源: 略 目标: 将指定列拆分为行 操作过程: 选取指定列》【主页】(或【转换】)》【拆分列】》【按分隔符】/【按字符数】/【按位置】》高级选项》拆分为【行】 M公式: = Table.ExpandListColumn(Table.TransformColumns( 表, {"列名", 拆分函数
        阅读全文
                
摘要:数据源: 任意查询表 目标: 对其中一列数据进行排序 操作过程: 选取对象》【主页】》【排序】》【升序排序】 选取对象》【主页】》【排序】》【降序排序】 M公式: = Table.Sort( 表,{{ "1级列名", 排序方式},...,{ "n级列名", 排序方式}}) 排序方式: 升序:1/Or
        阅读全文
                
摘要:删除行(表): 删除指定行:=Table.RemoveRows( 表, 起始行数, 删除的行数) 起始行数从0开始计 删除前面N….Skip/RemoveFirstN 删除后面N….RemoveLastN 去除指定….RemoveMatching… 删除错误行:=Table.RemoveRowsWi
        阅读全文
                
摘要:选择行: 筛选Table.SelectRows-文本与数值 筛选Table.SelectRows-日期与时间 保留错误行:= Table.SelectRowsWithErrors( 表, {"列名1" ,..., "列名n"}) 列表筛选行:= List.Select( 列表, 筛选条件) 筛选条件
        阅读全文
                
摘要:each _ 固定结构,表示每一个(废话,each这单词中文意思就是每一个) 但后面的下划线,是个省略参数的写法…… 首先,each后面不是非要跟_ 其次,_代表的意思是指定列里同行的每一个,这时的公式中已经有指定列 第三,_和指定列不能随意互换 第四,each和_之间有空格 第五,each和_之间
        阅读全文
                
摘要:逻辑真:true 逻辑假:false 与函数:and true and true,结果为TRUE true and false,结果为FALSE false and false,结果为FALSE 或函数:or true or true,结果为TRUE true or false,结果为TRUE fa
        阅读全文
                
摘要:公式: 判断表:=Table.IsEmpty( 表) 判断列表:=List.IsEmpty( 列表) 说明: 此公式的参数一般是一个由公式生成的结果 最终效果: 表/列表中全部是空的返回true 表/列表中只要有内容则返回false
        阅读全文
                
摘要:表去除指定行: =Table.RemoveMatchingRows( 表, 列表, "指定列") 表中指定列中与列表中相同的行会被去除 表只有一列时,第三参数可以缺省 示例1:“表1”有若干列,其中有“编号”列是1~9的数字;“列表2”是原是3行1列的“表2”,其中有数字2、3、5,通过以下公式转成
        阅读全文
                
摘要:数据源: 包含日期与时间的任意数据 目标: 对日期与时间进行筛选 M公式: = Table.SelectRows( 表,筛选条件) 筛选条件: 等于:each [日期列] = #date(年,月,日) 不等于:each [日期列] <> #date(年,月,日) 早(小)于:each [日期列] <
        阅读全文
                
摘要:数据源: 包含文本与数值的任意数据 目标: 对文本和数值进行筛选 M公式: = Table.SelectRows( 表, 筛选条件) 筛选条件: 等于:each [指定列] = "指定值" 不等于:each [指定列] <> "指定值" 大于/大于等于/小于/小于等于:修改以上运算符号 开头为:ea
        阅读全文
                
摘要:返回指定字段: = Record.Field( 记录, "字段名") = Record.FieldOrDefault( 记录, "字段名", 找不到时返回的值) 当字段名不存在于记录中时,Record.Field返回错误,而Record.FieldOrDefault返回null或第三参数 返回字段数
        阅读全文
                
摘要:数据源: “姓名”“基数”“个人比例”“个人缴纳”“公司比例”“公司缴纳”“总计”,共7列7行数据,其中第4行整行为空 目标: 删除整行为空的行 操作过程: 【主页】》【删除行】》【删除空行】 M公式: = Table.SelectRows( 表, each not List.IsEmpty(Lis
        阅读全文
                
摘要:数据源: “姓名”“基数”“个人比例”“个人缴纳”“公司比例”“公司缴纳”“总计”,共7列7行数据,其中姓名列第1、2行与第6、7行内容重复 目标: 删除姓名列中内容重复的行 操作过程: 选取指定列》【主页】》【删除行】》【删除重复项】 M公式: = Table.Distinct( 表, {{ "列
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号