Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如果包含某个单词或一组单词,Power Query将更改文本_Excel_Powerbi_Powerquery - Fatal编程技术网

Excel 如果包含某个单词或一组单词,Power Query将更改文本

Excel 如果包含某个单词或一组单词,Power Query将更改文本,excel,powerbi,powerquery,Excel,Powerbi,Powerquery,我有一个查询,它每个月提取银行活动,并使用透视表将其与前几个月的活动进行比较。只要项目在银行中的名称保持一致,这种方法就可以很好地工作。有一些项目每个事务每月都被分配一个名称和一个新编号,因此无法与透视表进行比较。查询从CSV文件中提取数据,我正在查看“描述”列 示例中,数据包含在每个描述中,因此透视表无法将其识别为类似项: TRANSFER FROM ACCOUNT 1.010318 TRANSFER FROM ACCOUNT 1.010218 PRINCIPAL 4-401032018 PR

我有一个查询,它每个月提取银行活动,并使用透视表将其与前几个月的活动进行比较。只要项目在银行中的名称保持一致,这种方法就可以很好地工作。有一些项目每个事务每月都被分配一个名称和一个新编号,因此无法与透视表进行比较。查询从CSV文件中提取数据,我正在查看“描述”列

示例中,数据包含在每个描述中,因此透视表无法将其识别为类似项:

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()
)。