【问题标题】:Select Text in between 2 given lengths选择 2 个给定长度之间的文本
【发布时间】:2021-10-06 16:41:16
【问题描述】:

我正在尝试从生成的列表中提取介于 2 个给定长度之间的数字数据,但目前在我的代码中,我只使用 Text.Length(_)<=3)) 选择具有一个参数的文本,即长度小于或等于 3 个字符

请注意,为了这个问题,数据被过度简化了,我希望使用这种方法分离数据是有原因的。

M 代码:

let
Source = Excel.CurrentWorkbook(){[Name="Table10"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
#"Added Custom" = Table.AddColumn( #"Changed Type", "Custom", each Text.Split([Column1], " ")),
#"Removed Columns1" = Table.RemoveColumns(#"Added Custom",{"Column1"}),


//Extract Numerical Value Only into List 
#"Added Custom1" = Table.AddColumn(#"Removed Columns1", "Custom.1", each List.Transform([Custom], each Text.Select(_, {"0".."9", "."}))),

//Extract Values <=3 into List
#"Added Custom2"= Table.AddColumn(#"Added Custom1", "Custom.2", each List.Select([Custom.1],each Text.Length(_)<=3)),

//Combine Extracted Values into New List
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Custom.3", each Text.Combine([Custom.2], " ,")),

#"Removed Columns" = Table.RemoveColumns(#"Added Custom3",{"Custom", "Custom.1", "Custom.2"})

在 #"删除的列"

此代码通过生成列表然后仅选择数字数据来工作。接下来只有小于或等于 3 的值被提取到另一个列表中,然后最后将这些值组合起来。

当前输出我所看到的问题是,还选择了长度空单元格中的文本

有没有办法选择长度 x 为:1

Input Data: 
FF3136451  200
3152678  100
(NDM) 8315865  100
0000660  50

【问题讨论】:

  • 这很像您可以使用@RonRosenfeld here 给出的相同功能并使用[0-9]+$ 或` ([0-9]{1,3})$` 所以它会确保最后一个空格后只有 1-3 位数字。由于它是一个捕获组,它会返回其中的子字符串。
  • @JvdV 嗨,是的,我确实尝试过这个,但是,我提供的数据比上面的例子要混乱得多,尽管 Rons 的答案很好,它可以启用 6 或更大的值不幸的是,由于数据的性质,要提取它在其他地方遇到问题,所以我想到了一种不同的方法。
  • 如果你提供这些边缘情况,我相信有办法
  • 嗯,可以。谢谢。
  • 您的所有示例都表明所需的值是字符串中的最后一个值。所以只需=List.Last(Text.Split([Input]," ")) 将返回。但是,请注意,如果您不提供实际示例(正如您在 cmets 中暗示的那样),所提供的答案可能没有用。

标签: excel powerquery m


【解决方案1】:

只需将其作为条件添加到您的List.Select

#"Added Custom2"=
    Table.AddColumn(
        #"Added Custom1",
        "Custom.2",
        each List.Select(
                 [Custom.1],
                 each Text.Length(_) <= 3 and Text.Length(_) > 1
             )
),

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多