我正在尝试替换"x〃;在列数未知但至少有2列的表中的列名的每列(前2列除外(中。
我找到了更改一列的代码,但我希望它是动态的:
#"Ersatt värde" = Table.ReplaceValue(Källa,"x", Table.ColumnNames(Källa){2},Replacer.ReplaceText,{Table.ColumnNames(Källa){2}})
有什么解决办法吗?
如果我理解正确,我认为您可以尝试以下任一方法:
#"Ersatt värde" =
let
columnsToTransform = List.Skip(Table.ColumnNames(Källa), 2),
accumulated = List.Accumulate(columnsToTransform, Källa, (tableState as table, columnName as text) =>
Table.ReplaceValue(tableState,"x", columnName, Replacer.ReplaceText, {columnName})
)
in accumulated
或:
#"Ersatt värde" =
let
columnsToTransform = List.Skip(Table.ColumnNames(Källa), 2),
transformations = List.Transform(columnsToTransform, (columnName) => {columnName, each
Replacer.ReplaceText(Text.From(_), "x", columnName)}),
transformed = Table.TransformColumns(Källa, transformations)
in transformed,
两种方法都遵循类似的方法:
- 找出要在哪些列中进行替换(即除前2列外的所有列(
- 在上一步中确定的列上循环,然后实际进行替换
- 我使用了
Replacer.ReplaceText
,因为这是你在问题中使用的,但我相信这将取代部分匹配和完全匹配 - 如果您只想替换完整的匹配项,我认为您可以使用
Replacer.ReplaceValue