如何根据 Power BI 中的内容提取列
How to extract a column based on it's content in PowerBI
我的 table 中有一列如下所示。
ResourceIdentifier
------------------
arn:aws:ec2:us-east-1:7XXXXXX1:instance/i-09TYTYTY79716
arn:aws:glue:us-east-1:5XXXXXX85:devEndpoint/etl-endpoint
i-075656565f7fea3
i-02c3434343f22
qa-271111145-us-east-1-raw
prod-95756565631-us-east-1-raw
prod-957454551631-us-east-1-isin-repository
i-02XXXXXXf0
我想要一个名为 'Trimmed Resource Identifier' 的新列,它查看 ResourceIdentifier,如果值以“arn”开头,则 returns 最后一个“/”之后的值,否则 returns整个字符串。
例如
arn:aws:ec2:us-east-1:7XXXXXX1:instance/i-09TYTYTY79716 ---> i-09TYTYTY797168
i-02XXXXXXf0 --> i-02XXXXXXf0
我该怎么做?我尝试通过提取 ResourceIdentifier 列的前 3 个字母来创建一个名为“前 3 个字母”的新列,但我在添加条件列的步骤中遇到了困难。请看下图。
有没有一种方法可以使用 DAX 一步完成所有这些操作,而不是创建新的中间列?
非常感谢
GUI 太简单了,无法完全满足您的要求,但请继续使用它来创建下一步,然后我们可以对其进行修改以使其正常工作。
像这样填写 GUI
将生成一行代码,如下所示(如果您没有看到此公式,请打开查询编辑器中“视图”选项卡下的“公式栏”)。
= Table.AddColumn(#"Name of Previous Step Here", "Custom",
each if Text.StartsWith([ResourceIdentifier], "arn") then "output" else [ResourceIdentifier])
前三个字母位已经用我选择的运算符处理了,所以剩下的就是将 "output"
占位符更改为我们真正想要的。我们可以使用一个方便的 Text.AfterDelimiter function。
Text.AfterDelimiter([ResourceIdentifier], "/", {0, RelativePosition.FromEnd})
这告诉它在第一个 /
之后获取文本(从末尾开始)。将 "output"
替换为此表达式,您应该可以开始了。
我的 table 中有一列如下所示。
ResourceIdentifier
------------------
arn:aws:ec2:us-east-1:7XXXXXX1:instance/i-09TYTYTY79716
arn:aws:glue:us-east-1:5XXXXXX85:devEndpoint/etl-endpoint
i-075656565f7fea3
i-02c3434343f22
qa-271111145-us-east-1-raw
prod-95756565631-us-east-1-raw
prod-957454551631-us-east-1-isin-repository
i-02XXXXXXf0
我想要一个名为 'Trimmed Resource Identifier' 的新列,它查看 ResourceIdentifier,如果值以“arn”开头,则 returns 最后一个“/”之后的值,否则 returns整个字符串。
例如
arn:aws:ec2:us-east-1:7XXXXXX1:instance/i-09TYTYTY79716 ---> i-09TYTYTY797168
i-02XXXXXXf0 --> i-02XXXXXXf0
我该怎么做?我尝试通过提取 ResourceIdentifier 列的前 3 个字母来创建一个名为“前 3 个字母”的新列,但我在添加条件列的步骤中遇到了困难。请看下图。
有没有一种方法可以使用 DAX 一步完成所有这些操作,而不是创建新的中间列?
非常感谢
GUI 太简单了,无法完全满足您的要求,但请继续使用它来创建下一步,然后我们可以对其进行修改以使其正常工作。
像这样填写 GUI
将生成一行代码,如下所示(如果您没有看到此公式,请打开查询编辑器中“视图”选项卡下的“公式栏”)。
= Table.AddColumn(#"Name of Previous Step Here", "Custom",
each if Text.StartsWith([ResourceIdentifier], "arn") then "output" else [ResourceIdentifier])
前三个字母位已经用我选择的运算符处理了,所以剩下的就是将 "output"
占位符更改为我们真正想要的。我们可以使用一个方便的 Text.AfterDelimiter function。
Text.AfterDelimiter([ResourceIdentifier], "/", {0, RelativePosition.FromEnd})
这告诉它在第一个 /
之后获取文本(从末尾开始)。将 "output"
替换为此表达式,您应该可以开始了。