Power BI的Power Query如何插入带指定数据格式的数据行?
Power Query 插入指定数据格式行的实现方法
你当前的代码直接传入文本、数字字面量插入行,不会自动匹配目标字段的要求类型,会出现日期识别错误、类型不兼容报错、前导零丢失的问题,按以下方式调整即可:
- 日期类型字段不要传日期格式的文本,直接用M语言内置的
#date(年,月,日)构造原生日期值,完全避免区域格式导致的日期解析错误 - 数值类型字段如果要明确指定类型,可以用
Number.From()、Currency.From()等函数显式转换,避免和原表列类型冲突 - 注意你代码里写的
MAINACCOUNT=00001是无效写法:M语言中数字字面量的前导零会被自动忽略,实际会被识别为数字1。如果该字段需要保留前导零,要写成文本格式"00001";如果是数字型主账号,直接写1即可 - 空值不要写空文本
"",如果对应列是日期/数字类型,空文本会触发类型报错,统一用null表示空值
调整后的可直接使用的代码如下:
Table.InsertRows( _, Table.RowCount(_), { [ DATE = #date(1990, 1, 1), MAINACCOUNT = "00001", // 如果是数字型主账号就替换为 1 AMOUNT = Number.From(0), // 如果是货币类型字段可以替换为 Currency.From(0) Financial Year = null ] } )
如果插入行后需要统一锁定全列数据格式,可以在插入操作后追加类型转换步骤,示例:
= Table.TransformColumnTypes( 上一步插入行的步骤名称, { {"DATE", type date}, {"MAINACCOUNT", type text}, // 数字型账号就替换为 type number {"AMOUNT", type number}, {"Financial Year", type text} // 按实际业务需要的类型修改即可 } )
内容的提问来源于stack exchange,提问作者liam
相关产品推荐
相关产品推荐

