Power Query:自定义函数,用于将单个文本逗号分隔列表输入转换为新列表,“包装”在其他文本中

问题描述 投票:0回答:1

如果有帮助,我将不胜感激。我正在尝试在 Power Query(在 Power BI 中,而不是 Excel)中编写我的第一个函数,该函数将文本字符串作为输入并将其输出“包装在其他文本中”。

输入是逗号分隔的单个 即。

"GB02, NL01, IT05, FR03"

期望的输出是:

"[Company].[GB02],[Company].[NL01],[Company].[IT05],[Company].[FR03]"

我开始使用文本分割函数,我创建了一个名为 List2Table 的函数:

List2Table:

(InputText as text) =>
let 
SplitData = 
    
    Table.FromList(
        Text.Split(InputText,",")
        )

in SplitData

当调用时...

= List2Table("GB02,NL01,IT05,FR03")

返回:

Column1
GB02
NL01
IT05
FR03

我现在想附加文本

"[Company].[" 

....到每个值的开头,并且

"]"

....到最后,然后重新组合成一个文本字符串,每个值用逗号分隔,但我不知道如何在原始函数中执行此操作。

我已经研究过这一点,我相信这是通过“each”运算符实现的,所以我尝试了这个:

(InputText as text) =>
let 
SplitData = 
    
    Table.FromList(
        Text.Split(InputText,",")
        , each "[Company].[" & _ & "]")

in SplitData

但这给出了错误:

An error occurred in the ‘’ query. Expression.Error: We cannot convert the value "[Company].[GB02]" to type List.
Details:
    Value=[Company].[GB02]
    Type=[Type]

收到任何帮助

迈克

function powerquery m
1个回答
0
投票

您将所需的输出显示为文本字符串,而不是表格。

要根据输入创建输出字符串,您只需使用

List.Transform
函数即可。

例如:

(InputText as text)=>

let 
    SplitData = Text.Split(InputText,","),
    Process = List.Transform(SplitData, each "[Company].[" & _ & "]")
in 
    Text.Combine(Process,",")

调用时:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.