PQ实战 | 数据分组压缩思路分享 2024-06-06 16:30:38 前几日群里E友们出的题,我们就直接借用一下案例(偷懒),核心还是来熟悉一下PQ的分组及一些常用的函数感受一下,PQ在数据处理方面的强大!讲解方式:动画演示,主要分解思路,适当函数讲解!演示版本:365,其他版本应该没有函数自动提示不爱看分布讲解的直接拉到地步查看M函数代码!问题说明:按照列1,对于列2中连续的数值压缩我们逐步分解思路:1、按照第一列先分组,完成A和B各一大组先完成最外层的处理,也就是按照列1分组,本案例中可以简化Table.Group(表,分组依据,{"新列名",分组处理}),实际有5个参数,目前只使用前3个。他的功能和SQL中GroupBy 或者Excel中的分组很类似!2、对分组后的表添加索引添加索引的后,我们主要使用列2-索引,如果是连续内容,那么他们的差异一定是相同的。3、列2减去索引列算出差额我们在上一步分组添加索引后的内容,进一步相减出差额,我们可以看到如果内容连续,那么和索引差额后肯定相等,因为连续的内容上下差1,索引也是如此,当然也可以是等差!4、对索引差额后的s进一步分组s列的相同数值就是连续的内容,也就是需要压缩的,我们先分好组,下一步来压缩5、压缩分组内容这里我们使用到一个技巧,就是我们书写M的过程中可以通过深化,观察一下多层包裹的内容,便于进步分析,这里主要使用List.Transform遍历这个之前有讲过:扩展学习:Transform函数Text.Format和我们的工作表函数Text格式化函数有点类似!6、最后合并压缩好的内容使用Text.Combine可以合并把List中的文本按照固定分隔符合并起来!有点瑕疵的就是一个内容也是使用了短线分割,可以优化一下7、优化单值显示使用List.Count判断一下列表中的元素个数,如果是1个就不压缩,不压缩我们也可以使用Text.From来代替上面的Text.Format,这里的if和一般的编程语言很像,但是不同于工作表函数if以上就是我们这个数字压缩练习的全部内容,虽然看上去内容很多,但是只要你思路清晰,还是很简单的!格式化后全部代码:关于实际应用,比如连续打卡分组,这里的连续更好的表示是特定规律,比如我们都是要求间隔一天送货,那么我们1、3、5 我们也可以判断为连续!这些道理都是一致的,快去动手试试吧!源码及附件下载:聊天窗口回复:PQ分组练习 赞 (0) 相关推荐 PQ-M及函数:模拟Excel中的Trim函数 小勤:PQ里的Text.Trim函数不能像Excel里的一样(具体见文章<文本修整(Trim)函数与Excel中的差别>),将文本中间的连续空格清理成一个,那怎么办好? 大海:只能用其他函 ... 这种常见的“多维”数据要横着放?分组、逆透视、透视,轻松搞定 | PQ实战 - 1 - 最近,又有朋友提了各需求,将下面的数据,按存货编号分组,对后面的数据横着放: 具体横过来之后是什么样子的呢?大家需要把手机横过来一下,不然看不全,实在太长了 : 这个问题要是在Excel里 ... PQ高阶技能:M函数 前面我们学习PQ的时候都是用鼠标操作,虽然通过这些操作能完成大部分的数据处理,但是毕竟还有些复杂的工作是处理不了的,如果想彻底驾驭PQ,必须得掌握点高级玩法.就像学习Excel一样,做个表格我们只要会 ... PQ:又双叒叕粗错了!什么叫“枚举中用于完成操作的元素过多”? 小勤:这是什么鬼啊?什么叫"枚举中用于完成操作的元素过多"? 大海:你透视的值列有多个值吧?比如同一个"生产中心"里有多个人. 小勤:嗯,的确是呢.源数据是这样 ... 两个函数搞定关键词统计! 最近,视频群里有朋友在问一个关键词统计的问题:一个订单的描述里有几个"安装服务"? 对于这个问题,结局的方法其实很多,比如在Excel传统方法中,经常把关键词通过替换的方式剔除后, ... 留言赠书第1波 | 以“去掉重复项再合并”为例,探讨PQ问题的解决思路是怎么形成的! 最近很多朋友再学习了Power Query的基础操作方法及函数之后,遇到了一些进阶过程中常见的瓶颈:看着书或视频觉得都很简单,但自己一动手就完全没有思路了. 对于这一点,的 ... 将内容按字符出现次数排列?这个在Excel里的难题因为PQ而轻松解决! 比如单元格里的内容是11124533,按各个数字出现的次数多少进行排列,结果表示为:13245. 这个问题如果通过Excel的传统功能或函数来实现,会比较困难,而使用Power Query却简单很多. ... 动态分组合并同类项内容,PQ里的M语言很多时候只需要改改参数就搞定了! 小勤:大海,上次你跟我说的分组合并同类项的方法(见文章<Excel固定类别内容分组合并同类项,PQ轻松实现>),只适用于分类情况不变的内容,但很多时候都是需要变化的啊. 大海:对的.那时因 ... 快速提取首个任意汉字前数字,2个方法,其实都很简单! | PBI实战技能 - 1 - 初一想,我们当然可以用Text.SplitAny函数来实现,添加自定义列并写公式如下: 这个公式很简单,即对内容用所有汉字(Text.Combine)进行拆分(Text.SplitAny) ... PQ算法调优 | 充分利用分组功能,提升数据处理效率 - 1:从分类加索引问题谈起 很多朋友在用Power Query处理数据时遇到效率问题,其中最常见的就是通过Table.SelectRows函数进行筛选数据并处理的情况. 这里先从一个简单的问题讲起:怎么给表里的每一类内容分别添加 ... 用通配符进行替换,居然还能这么玩儿? | PQ技巧 很多朋友都在问,Power Query里能不能使用通配符,比如最常用的星号(*),在Excel里可以实现如下图中的批量替换: 可惜,在Power Query里是没有的,比如,如果你想在替换值功能里用* ... 重要!很重要!非常重要!理解PQ里的数据结构(三、跨行引用) 小勤:上次在<理解PQ里的数据结构(二)>里大概了解了行.列."单元格"的基本引用方法,但只能引用当前行,实际上在做数据处理时经常要取其他行的内容和当前行做对比,怎么做 ... 从财务凭证摘要中提取人名信息,简单的两种方法及优化思路 最近遇到从财务凭证摘要里提取信息的情况比较多,一是学员的提问,还有就是最近的项目上也多次涉及到这样的需求,比如下面这个,要求从摘要里把人名提取出来: 又如这种: 实际情况一般没有这么乱,因为大多数公司 ... 怎么判断同一行里是否有重复值?全过程思路掰开看! - 1 - 问题和要求 源数据如下: 要求判断各行是否存在重复值,结果如下: - 2 - 思路和解法 要对一行内容进行判断,首先得取得这一行的内容,我们知道,在Power Query里,可以通过下划线 ... 公式来了!PQ里的列表排序函数超级好用! 昨天,在文章<将内容按字符出现次数排列?这个在Excel里的难题因为PQ而轻松解决!>,通过多个步骤的操作,实现了相应的排序效果,但是,原文中的操作方法也存在一个bug: 即在有相同内容的 ... PQ-M及函数:要删的内容很复杂,列举不完,那能不能想要啥就保留啥? 小勤:大海,Power Query里的Text.Remove函数(参考文章<删除所有常用汉字,只要一只大乌龟>)的确好用,但都是从删除的角度去最后得到要保留的内容,但有时候文本里的内容很复 ... PQ-综合实战:格式化表单转数据明细之3:可配置的映射关系,你的数据你做主 [本文内容需要前期基础知识准备较为充分,但是,当你充分理解并完成了本文的内容,这将变成一个通用的可配置的格式化表单数据转换工具,以后只需要根据实际表单的格式情况,做好映射表的配置,即可实现相应表单数据 ... 强大的分组:给每个类别分别添加索引编号 在前面讲<怎么在每个科目(分类)内容的后面加3个空行?还涉及分组依据的核心原理-->的时候,提到"分组依据"功能的核心原理,在此重复一下:分组的过程就是对同一类内容先分 ... 去你的”用函数,不允许增加辅助列“! 经常看到有人出一些Excel的题,要求用公式解,然后注明一句:用函数,不允许增加辅助列!比如这种: --怎么样?说假话,"还不算太难--哈哈". 不过,说实话,我对"用函 ... 把日期录成这样,即使是老板娘干的,也炒她鱿鱼! 昨天,群里传出一份数据,要求对其中的日期整理一下: 该数据实际出自ExcelHome案例 数据一上传,群友惊呼"涨姿势": 不过,也有高手一语道破:其实Excel里用分列改格式就能 ...