在Power Query中检查每一行中某些字符的出现

时间:2018-10-27 18:27:26

标签: excel powerquery

我有一个用Excel编写的简单表格

+---------------+
|     name      |
+---------------+
| ST-PL-100-1   |
| ST-PL-700     |
| ST-PL-100-14  |
| ST-PL-100-6   |
| ST-PL-100     |
| ST-PL-300     |
| ST-PL-100-632 |
+---------------+

我想显示只有两个破折号的行。

我的预期结果:

ST-PL-700
ST-PL-100
ST-PL-300

2 个答案:

答案 0 :(得分:2)

添加自定义列以确定破折号的数量。然后过滤2

自定义列公式:

Text.Length([name])-Text.Length(Text.Replace([name],"-",""))

进行过滤后,您可以删除“ dashCount”自定义列,这样当您将查询加载回工作表时它不会显示。

顺便说一句,这也可以使用公式条件在具有高级筛选器的本机Excel中完成

=LEN(firstDataCell)-LEN(SUBSTITUTE(firstDataCell,"-",""))=2

答案 1 :(得分:1)

我认为您需要在Power Query Editor中添加一个虚拟列。

标记“名称”列。然后单击“添加列”->“自定义列”。

enter image description here

输入公式=Text.Start([name],9)

[name]是您要更改的列的名称,9是新列中应从左数多少个字符。您也可以为列设置一个新名称,我只是使用“列”。

enter image description here

这是结果,您的旧列在左侧,新列在右侧。

enter image description here

如果您只想保留唯一值,则可以使用“删除重复项”

enter image description here