使用正则表达式在 Power Bi 中创建新列
Create new Column in Power Bi with RegEx
我对 Power BI 比较陌生,想根据列生成一个新的。新列的内容应基于另一列的第一个值。例如:
ColumnA NewColumn
1123 Argentinia
5644 Brazil
5555 Brazil
3334 Denmark
1124 Argentinia
如您所见,数字的第一个值决定了将哪个国家/地区添加到新列中。
在 SQL 我知道我可以使用这样的东西:
`select * from table where column LIKE '%[2]`%'
等等,但这在 Power BI 中可行吗?非常感谢。
编辑:
我的附加列表如下所示:
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")
将您的号码/国家/地区列表添加到新的 table。假设您将其命名为 Countries
.
现在您可以向原始 table 添加一列(假设您已将其命名为 Fact Table
),使用如下内容:
Country =
LOOKUPVALUE (
Countries[Country],
Countries[ID],
VALUE ( LEFT ( 'Fact Table'[ColumnA], 1 ) )
)
参见 https://pwrbi.com/so_56391689/ 工作示例。
好的,我现在也找到了解决办法:
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"
)
效果很好:)
我对 Power BI 比较陌生,想根据列生成一个新的。新列的内容应基于另一列的第一个值。例如:
ColumnA NewColumn
1123 Argentinia
5644 Brazil
5555 Brazil
3334 Denmark
1124 Argentinia
如您所见,数字的第一个值决定了将哪个国家/地区添加到新列中。 在 SQL 我知道我可以使用这样的东西:
`select * from table where column LIKE '%[2]`%'
等等,但这在 Power BI 中可行吗?非常感谢。
编辑:
我的附加列表如下所示:
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")
将您的号码/国家/地区列表添加到新的 table。假设您将其命名为 Countries
.
现在您可以向原始 table 添加一列(假设您已将其命名为 Fact Table
),使用如下内容:
Country =
LOOKUPVALUE (
Countries[Country],
Countries[ID],
VALUE ( LEFT ( 'Fact Table'[ColumnA], 1 ) )
)
参见 https://pwrbi.com/so_56391689/ 工作示例。
好的,我现在也找到了解决办法:
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"
)
效果很好:)