Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Powerbi 使用正则表达式在Power Bi中创建新列_Powerbi_Data Transform - Fatal编程技术网

Powerbi 使用正则表达式在Power Bi中创建新列

Powerbi 使用正则表达式在Power Bi中创建新列,powerbi,data-transform,Powerbi,Data Transform,我对Power BI比较陌生,希望基于列生成一个新的BI。新列的内容应基于另一列的第一个值。例如: ColumnA NewColumn 1123 Argentinia 5644 Brazil 5555 Brazil 3334 Denmark 1124 Argentinia 如您所见,数字的第一个值决定将哪个国家添加到新列中。 在SQL中,我知道我可以使用如下内容: `select * from table where column LIKE '%[2]`%' ID Country 1 A

我对Power BI比较陌生,希望基于列生成一个新的BI。新列的内容应基于另一列的第一个值。例如:

ColumnA NewColumn
1123 Argentinia
5644 Brazil
5555 Brazil
3334 Denmark
1124 Argentinia
如您所见,数字的第一个值决定将哪个国家添加到新列中。 在SQL中,我知道我可以使用如下内容:

`select * from table where column LIKE '%[2]`%' 
ID Country
1  Argentina
2  Swiss
3  Denmark
4  Norway
5  Brazil
NewColumn = IF('table'[ColumnA] = "%[1]`%" 
THEN "Argentinia"
ELSE if IF('table'[ColumnA] = "%[2]`%
THEN Swiss
ELSE "No Country")
以此类推,但这是否可能与功率BI有关?非常感谢

编辑:

我的附加列表如下所示:

`select * from table where column LIKE '%[2]`%' 
ID Country
1  Argentina
2  Swiss
3  Denmark
4  Norway
5  Brazil
NewColumn = IF('table'[ColumnA] = "%[1]`%" 
THEN "Argentinia"
ELSE if IF('table'[ColumnA] = "%[2]`%
THEN Swiss
ELSE "No Country")
等等

我想我可以用这样的东西:

`select * from table where column LIKE '%[2]`%' 
ID Country
1  Argentina
2  Swiss
3  Denmark
4  Norway
5  Brazil
NewColumn = IF('table'[ColumnA] = "%[1]`%" 
THEN "Argentinia"
ELSE if IF('table'[ColumnA] = "%[2]`%
THEN Swiss
ELSE "No Country")

将您的号码/国家/地区列表添加到新表中。让我们假设你称之为国家

现在,您可以向原始表中添加一列,假设您调用了一个事实表,使用如下方法:

Country = 
LOOKUPVALUE ( 
    Countries[Country],
    Countries[ID],
    VALUE ( LEFT ( 'Fact Table'[ColumnA], 1 ) )
)

参见示例。

好的,我现在也找到了一个解决方案:

NewColumn = SWITCH(TRUE();

                 LEFT(table[ColumnA]; 1) in {"1"}; "Argentina";
                 LEFT(table[ColumnA]; 1) in {"2"}; "Swiss";
                 LEFT(table[ColumnA]; 1) in {"3"}; "Denmark";
                 LEFT(table[ColumnA]; 1) in {"4"}; "Norway";
                 LEFT(table[ColumnA]; 1) in {"5"}; "Brazil"
            )

效果很好:

你的问题不清楚。你们有第二张表,把数字映射到国家吗?你目前试过什么代码?没有,我只有一个包含这些数字的列表。但如果更简单的话,我也可以将这些数据用作列。我试过使用IF-ELSE语句,但我不知道如何使用它。你需要回答你的问题,以更清楚地说明你的要求、你迄今为止尝试了什么,以及你遇到的具体问题。如果您确实有一个将数字映射到国家的列表,那么有许多方法可以加入并识别相关国家,但没有对您的数据和代码进行更清晰的描述,很难给出有意义的建议。我还建议从你的问题标题中删除正则表达式-据我所知,这与正则表达式无关。我希望我的编辑现在更容易理解?正如我所写的,我在使用powerbi方面相对较新。很抱歉