如何利用大写的首字母来拆分 M 语言函数

Power Query dhuang ⋅ 于 2018-11-05 16:32:54 ⋅ 最后回复由 月照 2018-11-09 19:21:41 ⋅ 1810 阅读

我想将函数拆分:比如:
类别 函数 拆分列1 拆分列2 拆分列3 拆分列4 拆分列5
Type FunctionRequiredParameters Function Required Parameters
BinaryFormat BitEncodedUnsignedInteger Bit Encoded Unsigned Integer
Cube AddAndExpandDimensionColumn Add And Expand Dimension Column
Splitter SplitTextByRepeatedLengths Split Text Repeated Lengths
Combiner CombineTextByEachDelimiter Combine Text By Each Delimiter

我目前只能搞定知道大写字母有哪些,后面的就不知怎么写了。
file

回复数量: 5
  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-05 17:51:32

    fyi

    可以试试Splitter类函数,具体用法请参考施阳大神的文章:https://pqfans.com/1529.html

    Splitter.SplitTextByPositions(Text.PositionOfAny(“文本”,{"A".."Z"},2))(“文本”)

  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-05 18:12:44

    或者也可以在PBID中使用Python正则...\p{Lu}表示大写字母,(?=\p{Lu})表示顺序环视,查找到后边紧跟大写字母的位置

    = Python.Execute("import regex as re
    df=pandas.DataFrame([re.split(r'(?V1)(?=\p{Lu})','CombineTextByEachDelimiter')[1:]])
    ")

    file

  • dhuang
    2018-11-06 13:51:22

    感谢答复,不过这二个都没太看懂。之前没接触过Python,无从下手。

  • klzb
    2018-11-06 16:00:06

    let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    转换 = Table.Combine(Table.AddColumn(源,"a",each Table.Transpose(Table.RemoveColumns(Table.Group(Table.FillDown(Table.AddColumn(Table.AddIndexColumn(Table.FromColumns({Text.ToList([数据])}),"序号",1,1),"判断",each if Text.Contains(Text.Combine({"A".."Z"}),[Column1]) then [序号] else null),{"判断"}),"判断",{"b",each Text.Combine([Column1])}),"判断")))[a])
    in
    转换

  • 月照
    2018-11-09 19:21:41

    用下面公式将大写字符替换成类似 "-''&"A" 这样的形式,然后根据添加的分隔符拆分替换后的列即可: = Table.AddColumn(源, "替换", each List.Accumulate({"A".."Z"},[函数],(x,y)=>Text.Replace(x,y,"-"&y)))

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter