鉴于您的文本数据行,假设您有几行数据,并且您可能在数据中有任何“分数”,我将在 PQ 中将其更改为数字:¼, @ 987654326@,¾.
在下面的代码中,进行多次替换:
- 将文本字符串转换为列表
-
List.ReplaceMatchingItems 允许在一行代码中用不同的替换项替换多个不同的项目。
- 我们还将您在数字和分数之间的
space 替换为null
- 然后将列表组合回文本字符串,并将其转换为数字。
- 如果您的小数是包含空格的较长字符串的一部分,您需要确保只在正确的位置插入空值。
来源
M 代码
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WOrRXSUfJTOHQHiBlqgDhAbGxwqF9SrE60UpGMI6OkglElTlElaGBUmwsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t]),
typed = Table.TransformColumnTypes(Source, List.Transform(Table.ColumnNames(Source), each {_, Text.Type})),
//Replace all values
colXformOps = List.Transform(Table.ColumnNames(typed), (cn)=>{cn, each Number.FromText(
Text.Combine(
List.ReplaceMatchingItems(
Text.ToList(_),{{"¼",".25"},{"½",".5"},{"¾",".75"},{" ",null}})
)),Number.Type}),
replTbl = Table.TransformColumns(typed, colXformOps)
in
replTbl
结果