电源查询替换值

Posted

技术标签:

【中文标题】电源查询替换值【英文标题】:Power query replacing values 【发布时间】:2021-09-18 12:08:18 【问题描述】:

我正在替换 Power 查询中的值。我用在 excel 中创建的公式替换了正确的值,但现在我看到 Power 查询不能这样工作:/

the idea is to replace the value "½" to get the values as in this picture

无效的公式是这样的:

= Table.ReplaceValue(#"Odstranjeni stolpci","½","=Value(INDIRECT(ADDRESS(ROW();COLUMN()+1))-0.5)",Replacer.ReplaceValue,"Column1" , "第 2 列", ....................

如果有人能帮我解决这个问题,那将有很大帮助!

【问题讨论】:

标签“excel公式”是否适合这个Q?? 【参考方案1】:

鉴于您的文本数据行,假设您有几行数据,并且您可能在数据中有任何“分数”,我将在 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

结果

【讨论】:

以上是关于电源查询替换值的主要内容,如果未能解决你的问题,请参考以下文章

如何修复电源查询中的“值不是单个字符串”

如何保持电源查询的空返回值?

电源查询。合并具有折叠值的行中的重复行

当 Excel 中的数据源更新时,电源查询运行后硬编码的值错位

从同一行电源查询中获取列

如何在电源查询中执行 COALESCE?