[已解决] 请教:query或pivot增加一列,用于将某列的全角字符改为半...

  [复制链接]
fwd | 2020-8-5 10:05:42 | 显示全部楼层
感谢两位老师的讲解和精彩回答,使我一下子明白了表达式的写法大概是怎么回事。对以上3种答案均进行测试,由于水平有限,有一种怎么修改测试都没弄好,实在不知道该用哪个函数。说明:一是对全部函数的功能还没有进行总体了解,二是对数据类型尤其是table和list类型不会运用。对于需要函数镶套使用的,更加迷惑(虽然在sheet表中镶套使用得比较多)。希望老师们不吝赐教,使得本帖能够让毫无基础的初学者少走一点弯路。谢谢! 9727011651154.png 9727011651155.png
回复

使用道具 举报

痴情浪子 | 2020-8-5 10:08:42 | 显示全部楼层
按照你这思路我弄个半全角的列表。方便互换。
let
  s="??123123 ! !??!!??(有限公司). ...


万分感谢老师,但我水平太差,还是没有用表达式实现对“供应商名称”列的全角转换半角。您如果有时间,请帮我看看怎么调整表达式内容,谢谢!
回复

使用道具 举报

B仔爱玉米 | 2020-8-5 10:16:42 | 显示全部楼层
完善一下全角变半角:


感谢老师这么晚还教我!
回复

使用道具 举报

简单爱你 | 2020-8-5 10:21:42 | 显示全部楼层
感谢两位老师的讲解和精彩回答,使我一下子明白了表达式的写法大概是怎么回事。对以上3种答案均进行测试, ...


红框里的可以这样写,在复制的供应商列这一步后继续:
全角转为半角=Table.TransformColumns(复制的供应商列,{"供应商ASC",each [半角字符=....., 全角字符=......,res=Text.Combine(List.ReplaceMatchingItems(Text.ToList(_),List.Zip({全角字符,半角字符}))][res]})
语句中省略号部分你自己补全,我不敲了。你测试一下,看有没有结果。瞎编的。
回复

使用道具 举报

木瓜 | 2020-8-5 10:27:43 | 显示全部楼层
好像是这个样子的 9727011651156.png
回复

使用道具 举报

泥公仔 | 2020-8-5 10:30:43 | 显示全部楼层
好像是这个样子的


红色小框那中括号]前边少了一个右括号)
应该是)))]
回复

使用道具 举报

阿九 | 2020-8-5 10:33:43 | 显示全部楼层
  1. = Table.TransformColumns(复制的供应商列,{"供应商ASC",each [半角字符=List.Transform({32..126},Character.FromNumber), 全角字符={Character.FromNumber(12288)} & List.Transform({65281..65374},Character.FromNumber),res=Text.Combine(List.ReplaceMatchingItems(Text.ToList(_),List.Zip({全角字符,半角字符})))][res]})
复制代码
回复

使用道具 举报

易水寒 | 2020-8-5 10:42:43 | 显示全部楼层
好了,测试通过,非常感谢您!已将这几种表达式记录下来,以后慢慢理解。只是,M语言的镶套真多,感觉不简洁啊。
回复

使用道具 举报

zhanght22 | 2020-8-5 10:43:43 | 显示全部楼层
好了,测试通过,非常感谢您!已将这几种表达式记录下来,以后慢慢理解。只是,M语言的镶套真多,感觉不 ...


一下子给你好东西太多了,你不知道优劣。。。哈哈。。。
这是全网首发套路,你以后会知道的。
希望你写出更加优雅简洁的M语句。
回复

使用道具 举报

lw44 | 2021-5-29 19:14:29 来自手机 | 显示全部楼层
太棒了,感谢唐楼主精彩的分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则