Excel 如果包含某个单词或一组单词,Power Query将更改文本
我有一个查询,它每个月提取银行活动,并使用透视表将其与前几个月的活动进行比较。只要项目在银行中的名称保持一致,这种方法就可以很好地工作。有一些项目每个事务每月都被分配一个名称和一个新编号,因此无法与透视表进行比较。查询从CSV文件中提取数据,我正在查看“描述”列 示例中,数据包含在每个描述中,因此透视表无法将其识别为类似项:Excel 如果包含某个单词或一组单词,Power Query将更改文本,excel,powerbi,powerquery,Excel,Powerbi,Powerquery,我有一个查询,它每个月提取银行活动,并使用透视表将其与前几个月的活动进行比较。只要项目在银行中的名称保持一致,这种方法就可以很好地工作。有一些项目每个事务每月都被分配一个名称和一个新编号,因此无法与透视表进行比较。查询从CSV文件中提取数据,我正在查看“描述”列 示例中,数据包含在每个描述中,因此透视表无法将其识别为类似项: TRANSFER FROM ACCOUNT 1.010318 TRANSFER FROM ACCOUNT 1.010218 PRINCIPAL 4-401032018 PR
TRANSFER FROM ACCOUNT 1.010318
TRANSFER FROM ACCOUNT 1.010218
PRINCIPAL 4-401032018
PRINCIPAL 4-401022018
我想做的是修改我的查询,以便它查找从帐户1转账…
的描述列,并重命名所有项目从帐户1转账
和主体4-…
,并将这些项目重命名为主体
。我尝试过使用Transform>Replace值,它生成了这段代码,但是,这不起作用。如果描述列中的值包含某个单词或一组单词,您对如何替换这些值有何建议
#"Replaced Value" = Table.ReplaceValue(#"Filtered Rows1","PRINCIPAL 4-*","PRINCIAPL",Replacer.ReplaceText,{"Description"})
#"Replaced Value" = Table.ReplaceValue(#"Filtered Rows1","TRANSFER FROM ACCOUNT 1*","TRANSFER FROM ACCOUNT 1",Replacer.ReplaceText,{"Description"})
尝试执行以下操作:
定义一个函数(逻辑可能更复杂)
添加新列时调用此函数
= Table.AddColumn(#"Changed Type", "New Description", each
if Text.Contains( [Description],
"TRANSFER FROM ACCOUNT " ) and
Text.Contains( [Description],
"PRINCIPAL " )
then fGetNewDescription([Description])
else [Description] )
或者,如果要在位变换柱
= Table.TransformColumns( #"Changed Type", { {"Description",
each if Text.Contains( _, "TRANSFER FROM ACCOUNT " ) and
Text.Contains( _, "PRINCIPAL " )
then fGetNewDescription( _ )
else _, type text}})
可能您还有其他描述,所以我决定添加检查,看看它是否同时包含“从帐户转账”和“本金”。尝试执行以下操作:
定义一个函数(逻辑可能更复杂)
添加新列时调用此函数
= Table.AddColumn(#"Changed Type", "New Description", each
if Text.Contains( [Description],
"TRANSFER FROM ACCOUNT " ) and
Text.Contains( [Description],
"PRINCIPAL " )
then fGetNewDescription([Description])
else [Description] )
或者,如果要在位变换柱
= Table.TransformColumns( #"Changed Type", { {"Description",
each if Text.Contains( _, "TRANSFER FROM ACCOUNT " ) and
Text.Contains( _, "PRINCIPAL " )
then fGetNewDescription( _ )
else _, type text}})
可能您还有其他描述,所以我决定添加检查,看看它是否同时包含“从帐户转账”和“本金”。我更喜欢UI,所以我会使用查询编辑器功能区,然后转到“添加列/条件列”。在该对话框中,我将指定一系列规则以输出所需内容,如下所示:
If [Description] contains TRANSFER FROM ACCOUNT 1 then PRINCIPAL
Else If [Description] contains PRINCIPAL 4- then PRINCIPAL
Else [Description]
这将生成一个添加的列(它生成一个Table.AddColumn),因此我将添加步骤以删除原始[Description]列,并根据需要重命名添加的列。我更喜欢用户界面,因此我将使用查询编辑器功能区并转到添加列/条件列。在该对话框中,我将指定一系列规则以输出所需内容,如下所示:
If [Description] contains TRANSFER FROM ACCOUNT 1 then PRINCIPAL
Else If [Description] contains PRINCIPAL 4- then PRINCIPAL
Else [Description]
这将生成一个添加的列(它生成一个Table.AddColumn),因此我将添加步骤来删除原始的[Description]列,并根据需要重命名添加的列。我建议尝试在分隔符“.”和“-”上拆分列,或使用
Text.Left
函数(类似于Excel中的Left()
)。我建议尝试在分隔符“.”和“-”上拆分列,或使用Text.Left
函数(类似于Excel中的Left()
)。