2016-04-10 50 views
1

我在Power Query中有一列文本值(名为“Page”),每一行都是用“ - ”分隔的文本/数字组合,如下所示:从M中的字符串中提取数字列表(PowerQuery/PowerBI)

Page 
movie-batmanseries-240000-movie-100000xx-500 
345000zz-1.5-1000-starwars5-500000-game 

现在我想创造价值的的每一行列表(分隔符“ - ”),然后提取整数的第一次出现(不是小数)放入一个新列

这里是什么我写为列公式:

List.First(List.Select(Text.Split([Page],"-"), each Number.IsNaN(_) = false)) 

但我收到“错误”值与此详细信息:

“我们无法将值”345000zz“转换为键入Number。”

这是否有任何解决方法?

+0

嗯,这不是一个数字。您需要分割zz字符,然后才能将该值转换为数字。 – teylyn

+0

但我想跳过任何值的文本和数字组合(分割后用“ - ”分隔符),只保留数字列表,然后选择第一个列表成员 – Behnam2016

回答

3

这应该工作:

List.First(List.Select(Text.Split([页], “ - ”),每个Number.Mod(试行Number.From(_),否则无效,1) = 0))

由于Text.Split将以文本格式返回,因此需要在检查它是否是整数((Number.Mod,1)= 0)之前转换为数字。除此之外,如果无法进行编号转换(尝试......否则),则需要处理返回的错误。

+0

谢谢,不知道这一点,问题解决了。 – Behnam2016