gpt4 book ai didi

powerbi - 使用 DAX 或查询编辑器替换或替代 - Power BI

转载 作者:行者123 更新时间:2023-12-01 18:11:15 41 4
gpt4 key购买 nike

我有一个要求,我必须循环遍历文本字段中的每个字符

例如:

<表类=“s-表”><标题>输入预期输出 <正文>a#123456; 12341123456;12341a123456 12341bd123456;12341a2017d 12341ds12341a123456/12341bd123456;12341不适用空

基本上我在这里清理我的数据:

  1. 我将删除所有非数字字符。
  2. 仅当至少有 5 个连续数字时,数字才有效。
  3. 在输入中区分ID的空格或“;”或者可以使用“,”或“/”。在某些情况下会出现多个 ID,但不限于两个。
  4. 为了保持不变,我将用“;”替换所有这些连接器

注意:- 我的步骤可能不正确,但我的预期输出正是我希望从数据中获得的结果。

我们如何使用 Power BI 中的 DAX 或查询编辑器来执行此操作?

最佳答案

我将分两步尝试此操作。

首先,让我们删除所有不是数字或分隔符的内容。我们可以创建一个自定义列来使用此公式执行此操作(假设您的起始列名为 Raw):

Text.Remove([Raw], List.Transform({33..43,60..255}, each Character.FromNumber(_)))

这使用了 Windows-1252 character numbering ,但您可以使用 Text.Remove 函数编写一个大的字符列表来删除。

这个自定义列现在看起来像这样:

Custom
123456; 12341
123456 12341
2017 12341
123456/12341
/

从这里开始,计划是使用每个分隔符分割它并过滤掉太短的字符串。

Text.SplitAny 函数允许我们指定多个分隔符。例如,公式 Text.SplitAny("1;23 4.5-6/7:8,9", ",-./:;") 将返回 {"1", “23”、“4”、“5”、“6”、“”、“7”、“8”、“9”}

一旦我们有了子字符串列表,我们就可以使用 List.Select 过滤掉不需要的子字符串,然后使用 Text.Combine 将它们从子字符串列表连接成单个字符串。

将所有这些放在一起,我们得到这个公式

Text.Combine(List.Select(Text.SplitAny([Custom], " ,-./:;"), each Text.Length(_) > 4), ";")

如果您愿意,您可以将其全部分解为一个步骤:

= Table.AddColumn(#"Previous Step", "Clean",
each Text.Combine(
List.Select(
Text.SplitAny(
Text.Remove(
[Raw],
List.Transform(
{33..43,60..255},
each Character.FromNumber(_)
)
),
" ,-./:;"
),
each Text.Length(_) > 4),
";"
)
)

关于powerbi - 使用 DAX 或查询编辑器替换或替代 - Power BI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52967442/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com