【问题标题】:Create new Column in Power Bi with RegEx使用 RegEx 在 Power Bi 中创建新列
【发布时间】:2019-05-31 08:49:24
【问题描述】:

我对 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")

【问题讨论】:

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

标签: powerbi data-transform


【解决方案1】:

将您的号码/国家/地区列表添加到新表中。假设你称它为Countries

现在您可以在原始表格中添加一列(假设您已将其命名为 Fact Table),使用类似:

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

有关工作示例,请参阅 https://pwrbi.com/so_56391689/

【讨论】:

    【解决方案2】:

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

    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"
                )
    

    效果很好:)

    【讨论】:

      猜你喜欢
      • 2020-01-06
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多