M语言基本上和其他语言一样,用敲键盘的方式写入.修改.删除,这个是废话. M语言可以在[编辑栏]或[高级编辑器]里直接写入.修改.删除,这个也是废话. M语言还有个地方可以写入.修改.删除,就是[自定义列],在Power Query编辑器的[添加列]选项卡下. 在[自定义列]里编辑M公式,除了可以用键盘以外,还可以用鼠标--需要输入列名时,双击[可用列]里的指定列,或者选取列名后单击[插入]. 好吧,这统统都是废话--…
M函数和M公式是Power Query专用的函数与公式,M代码是Power Query专用的用于实现查询功能的代码.M函数公式和M代码统称M语言. 查看M公式:[编辑栏] 查看方法:在Power Query编辑器的[视图]选项卡下,勾选[编辑栏],选取不同的[应用的步骤]即可看到[功能区]和[查询表]之间的M公式. 查看M代码:[高级编辑器] 查看方法:在Power Query编辑器的[视图]或者[主页]选项卡下,单击[高级编辑器]即可.…
2021-12-11更新 主页(选项卡) 管理列(组) 选择列 选择列Table.SelectColumns 删除列 删除列Table.RemoveColumns 删除其他列Table.SelectColumns 减少行(组) 保留行 保留前面N-.First/FirstN 保留后面N-.Last/LastN 保留中间指定的-.Range/Middle 保留重复项 选择-Select- 筛选Table.SelectRows-文本与数值 筛选Table.SelectRows-日期与时间 删除行 删…
数据源: 任意超级表 目标: 将超级表中的数据加载到Power Query编辑器中 操作过程: 选取超级表中任意单元格(选取普通表时会自动增加插入超级表的步骤)>数据>来自表格/区域 M公式:  = Excel.CurrentWorkbook(){[Name="超级表名"]}[Content] 扩展: 以二进制形式返回文件内容:= File.Contents("路径\文件名.后缀名") 从工作簿:= Excel.Workbook(二进制Excel工作簿,…
数据源: 任意工作簿 目标: 使用自定义函数实现将数据源导入Power Query编辑器 操作过程: PowerQuery编辑器>主页>新建源>其他源>空查询 编辑栏内写入公式>调用 M公式: = (自定义参数名) => Excel.Workbook(File.Contents(自定义参数名), null, true) 固定结构: M公式 = (参数1,...,参数n) => 包含参数的表达式 M代码(生成自定义函数) (参数1,...参数n) => let…
转换列: = Table.TransformColumns( 表, {{"列名1", 转换函数1, 数据类型1},-,{"列名n", 转换函数n, 数据类型n}}, 剩余列转换函数, 处理不存在的列) 示例:除"品名"列加前缀"N-"以外,其他所有列乘以10 = Table.TransformColumns(表, {"品名", each "N-" & _}, each _ *10…
数据源: 至少两列 目标: 列顺序重新排列 操作过程: 选取待移动的列>鼠标拖放列标题 选取待移动的列>[转换]>[移动]>选取 M公式:  = Table.ReorderColumns( 表, {"顺序列1",..., "顺序列n"}, 处理不存在的列) 处理不存在的列 0:代表MissingField.Error 1:代表 MissingField.Ignore 2:代表 MissingField.UseNull 扩展: 记录项重新排列顺…
数据源: 任意列中包含空单元格 目标: 将空单元格填充为其上或其下单元格中的内容 操作过程: 选取指定列>[转换]>[填充]>[向下] 选取指定列>[转换]>[填充]>[向上] M公式: 向下填充:= Table.FillDown( 表, {"列名1",...,"列名n"})  向上填充:= Table.FillUp( 表, {"列名1",...,"列名n"}) 最终效果: 如图…
数据源: 任意数据源,一列数值,一列非数值(文本) 目标: 对数值列进行求和等计算,对非数值列进行计数等计算 操作过程: 选取待计算的列>[转换]>[统计信息]>选取   M公式: 求和:= List.Sum( 数值列表, 精度) 精度: Precision.Double / 0 / 缺省:双精度 Precision.Decimal / 1:小数精度(可用于修正浮点误差) 计算忽略null值,除非整个列表为空 最小值:= List.Min( 列表, 空列时返回值, 条件, 逻辑值) 示例…
数据源: 任意五行两列 目标: 计算行数(包括空行) 操作过程: [转换]>[对行进行计数] M公式:  = Table.RowCount( 表 ) 扩展: 对表中列进行计数:= Table.ColumnCount( 表 ) 对列表进行计数:= List.Count( 列表 ) 对列表进行不包含null的计数:统计信息 字段数目:返回记录中的指定内容Record.Field-…