告别复杂函数,这个更简单高效的「数据提取」技巧好用到爆!

Excel2020年11月23日发布 转载
916 470
作者:小北童鞋
来源:芒种学院(ID:lazy_info)

近期在公众号后台收到了不少关于数据提取的问题,各式各样的都有,例如:

  1. 在中英文混合的数据中提取中文/英文;
  2. 在某段话中将数字全部提取出来;
  3. 在混乱的数据中将特殊符号全部提取出来;

单纯看文字可能看不出啥,例如将下方“中英文”混合型的数据中,将所有的英文/中文/特殊字符全部匹配出来:

利用「函数法」来实现?写起来实在是太难了,而且不具备通用性,下次碰到其他的数据类型,大概率需要重写。

还是利用「Ctrl+E」呢?看着好像不错,来尝试下。

这太难受了。。。

面对这种规律性不强的数据,Ctrl+E彻底失灵了,还是那句老话。

单纯利用传统的Excel来实现会非常麻烦,建议点到为止

当然就这样结束了么?No,本着给大家提升效率的想法。

今天小北来给大家分享过下在 PowerQuery 中如何一句代码解决问题


PQ超强文本处理函数

在 PowerQuery 中就有一个超强的 Text 系列函数,可以完美解决今天遇到的小问题。

将数据导入到 PQ 中,然后点击「添加列」中的「自定义列」,输入以下函数:

= Text.Select([数据], {"A".."z"})Code language: Excel (excel)

理解起来也非常简单,提取数据中A-z的所有数据。

也就是所有英文字母,大写A为字母开头,小写z为字母结尾。

一句话就轻松将数据中的所有英文字符提取出来了,太强了!

那么提取好了英文,中文数据要如何提取呢

更改下函数为如下即可:

=Text.Select([数据], {"一".."龟"})Code language: Excel (excel)

跟字母理解起来一样,PQ中”一”为所有中文的开头,而”龟”则为最后一个中文汉字。

是不是超级简单?同样如果要提取所有的大小写/数字只需更改相应的提取规则即可。

常用的技巧也不多,小北也帮大家整理好了:

  1. {"0".."9"}代表所有的数字;
  2. {"A".."Z"}代表所有的大写字母;
  3. {"a".."z"}代表所有的小写字母;
  4. {"A".."z"}代表所有的英文字母;
  5. {"一".."龟"}代表所有的中文字符;

PQ中的文本移除函数

在某些情况下直接使用 Text.Select 并不能很快的解决问题。

主要在于提取规则过于复杂,这个时候可以考虑另外一个思路。

既然提取不出来,我们可以将不需要的全部删除,变相等于提取了

这个时候就可以使用 Text.Remove 函数了。

例如下面的数据需要提取「中文+特殊字符」。

同样的步骤,插入如下公式:

=Text.Remove([数据], {"A".."z"})Code language: Excel (excel)

意思就是将所有英文字母全部移除,现在同样能轻松提取。

如果想要提取「特殊字符」,就可以将中文+英文+数字全部删除,更改公式:

=Text.Remove([数据], {"0".."9","一".."龟", "A".."z"})<strong></strong>Code language: Excel (excel)

换个思路轻松解决问题,因为单独选择特殊字符是一件非常麻烦你的事情,操作结果如下。

而且利用 PQ 处理得数据,如果数据更新了,只需要右击即可刷新

无需重复操作,比 Ctrl+E 和函数强太多了。

是不是非常强呢?当然 PQ 的 Text 系列函数还有非常多超强的技巧值得学习,在芒种鸽了 N 久的 PQ 课中会和大家更加详细的分享~

好了,那么今天的「PQ混合数据提取」技巧就分享到这里了,下次提取数据,再也不用手动提取了。


阅读原文

© 版权声明

相关文章

47 条评论

  • 满足的熊猫
    满足的熊猫 游客

    这招真的省事儿👍

    韩国
    回复
  • 磨坊主秦廿三
    磨坊主秦廿三 游客

    公司电脑太旧,PQ根本打不开,哭了。

    中国湖北
    回复
  • 柳岸居
    柳岸居 游客

    生僻字能抓出来吗?比如“龘”这种。

    中国湖北
    回复
  • DingleberryDuke
    DingleberryDuke 读者

    这函数看着跟天书一样,能记住才怪。

    中国湖北
    回复
  • 芝士焗饭
    芝士焗饭 游客

    明天就拿这个试日报,希望能省点时间。

    中国广东
    回复
  • 梦浮云端
    梦浮云端 游客

    围观一下,你们说的我都看不懂🤔

    中国河北
    回复
  • Wandering Monk
    Wandering Monk 读者

    这技巧挺实用,回头试试看。

    美国
    回复
  • 云朵糖果
    云朵糖果 读者

    这思路可以,删除不需要的反向操作。

    韩国
    回复
  • 松鼠松松
    松鼠松松 游客

    如果数据里还有日文字符,能直接用类似区间提取吗?请大神指点

    日本
    回复
    • 元気少女
      元気少女 游客

      日文字符区间没那么简单吧,Unicode不连续的

      韩国@ 松鼠松松
      回复
  • 洋葱不流泪
    洋葱不流泪 读者

    我试了下,真的省了不少时间

    菲律宾
    回复
  • 逆风少年
    逆风少年 游客

    太贵了吧这也,公司还不给买Pro版?

    中国北京
    回复
  • 浣纱女
    浣纱女 游客

    要是数据里混了表情符号能提出来吗?

    日本
    回复
    • 赤焰狂想
      赤焰狂想 读者

      表情符号能提吗?试了下好像不行啊

      中国四川@ 浣纱女
      回复
  • 无双战狂
    无双战狂 读者

    之前搞过这个,确实折腾了好久

    中国广东
    回复
  • 噬魂厉鬼
    噬魂厉鬼 游客

    感觉还行,不过我还在用函数硬扛

    中国辽宁
    回复
  • RenPetals
    RenPetals 游客

    这方法可以试试,明天就用新表练手

    澳大利亚
    回复
  • 小日
    小日 读者

    话说日文字符那个问题有人解决了吗?

    中国陕西
    回复
  • 晚风轻抚
    晚风轻抚 游客

    Text.Remove原来还能这么玩,学废了😂

    日本
    回复
  • 渣渣
    渣渣 游客

    要是早看到这个,上周就不会加班到半夜了

    中国浙江
    回复
  • Harmonious Cloud
    Harmonious Cloud 读者

    那个啥,[一]到[龟]真能覆盖所有汉字?有例外没?

    韩国
    回复
  • 狂神降世
    狂神降世 游客

    刷新就能更新数据这点太香了

    日本
    回复
  • BumbleBeeBaby
    BumbleBeeBaby 读者

    PQ这招比Ctrl+E强太多了

    美国
    回复
  • 云朵午后
    云朵午后 读者

    之前一直用函数折腾半天,这下省事了

    印度
    回复
    • 虚无漫游者
      虚无漫游者 读者

      同感,以前太费时间了。

      美国@ 云朵午后
      回复
  • 心灵回响
    心灵回响 读者

    提取特殊字符那个思路绝了

    印度
    回复
    • 忧郁的海洋
      忧郁的海洋 读者

      换了个思路,一下就通了。

      中国浙江@ 心灵回响
      回复
  • 逆风者
    逆风者 游客

    这函数真香,比写正则轻松多了

    中国重庆
    回复
  • 雪照人
    雪照人 读者

    中文提取用“一”到“龟”这个范围挺妙的

    中国山东
    回复
  • 奶泡柯基
    奶泡柯基 读者

    提取规则还能这么写,学到了

    中国北京
    回复
  • AoiHush
    AoiHush 游客

    那个“一”到“龟”覆盖全汉字?存疑🤔

    日本
    回复
  • 虚无暗影
    虚无暗影 游客

    公司还在用2016版,根本跑不动PQ😭

    中国上海
    回复
    • 反向摸鱼
      反向摸鱼 读者

      2016版真的没法用?我还在用2013硬扛😅

      日本@ 虚无暗影
      回复
  • Skywalker_风行者
    Skywalker_风行者 读者

    这个思路确实不错,可以收藏备用

    芬兰
    回复
  • 旋转的陀螺
    旋转的陀螺 游客

    特殊符号提取那段救我命了,刚处理完客户乱码数据

    中国广东
    回复
  • 红绡
    红绡 读者

    试了下,中英文混合提取挺管用

    中国上海
    回复
    • 寒冰射手
      寒冰射手 读者

      同款,省了好多事

      印度@ 红绡
      回复
  • 笔底春风
    笔底春风 读者

    PQ这招比Ctrl+E强,不用每次手动调

    澳大利亚
    回复
    • 邪灵附体
      邪灵附体 读者

      确实,刷新一下就能搞定

      中国浙江@ 笔底春风
      回复
  • 数字观测者
    数字观测者 游客

    明天就拿日报表开刀,看能不能省半小时

    泰国
    回复
  • 泡泡小企鹅
    泡泡小企鹅 读者

    数字+中文混排试了下,秒出结果!

    中国上海
    回复
  • 樱花汽水
    樱花汽水 读者

    Text.Remove移除英文后中文还在,稳了

    中国北京
    回复
  • 寂静的诗人
    寂静的诗人 读者

    这方法比Ctrl+E靠谱多了,终于不用猜它抽什么风了

    日本
    回复
  • 落月孤舟
    落月孤舟 游客

    “一”到“龟”真能覆盖生僻字?比如“䶮”这种能提出来吗?

    中国陕西
    回复