本人一直钟情于使用Sqlserver数据库的一大原因是其提供了非常好用、高效的数据分析函数(窗口函数),可以在做数据清洗和数据分析场合等多个场景使用。只需简单的一个函数即可做出常规SQL语句很难以实现的效果。
这么好用的函数,如今Excel催化剂已部分将其搬到Excel的环境内使用,同样带来了极大的数据处理、分析的便利性和简化操作。
文章出处说明
背景介绍
自从Excel催化剂推出了可返回多值的自定义函数,在函数的使用上已经突破了许多过往很难想像的功能突破,例如在过往教程中经常使用到的GetFiles函数,上一波的序列函数等。
只需一次计算就立马返回所有运算结果值。对于性能的提升也是立竿见影。如传统在一个数据表中加入SUMIF、COUTIF等函数,之所以每每运算效率低下,是因为其不断地在每一行中做了大量的重复计算。
例如第1,5,9行的值为A,统计A出现的次数,将重复统计3次(可能Excel内部会有一些性能优化的算法,但如果是二次开发的自定义函数就估计很难有优化空间)。
今天推出的众多分组计算函数中,同样采用了一次返回多值的方式,计算上仅需只算一次,对数据量大的情况下,性能改善明显。
60万行数据求COUNTIF计数仅需3秒时间
一般来说,通用型函数的开发,没有说为哪个特定业务场景的需求而开发,但只要业务场景匹配到,通用型的函数发挥的可应用的场景是很丰富的。
若对今天介绍的函数想更进一步的扩展了解Sqlserver的原型函数,可百度上搜索Sqlserver窗口函数关键词即可有大量的文章。
函数介绍
此篇为分组计算函数,即对一列或多列的去重后出现的组成员中,通过排序列的排序依据,对某指标进行汇总聚合、生成序号、排名、和取其同一组内的某一列的某个值(上一个、下一个、开头、结尾)等功能。
可在部分场合完美替代SUMIF/COUNTIF/SUMIFS/COUNTIFS/MAXIF/MINIF/AVERAGEIF等常用函数的使用。
函数列表小缺点说明
一次多值返回的函数为数组函数,有以下的不足之处
不能在有数据公式的表中进行排序操作。
不能在智能表里输入数组函数
不能更改数组函数内的多个单元格的任一单元格函数内容。
若需要进行以上所提及的操作,请先对返回结果的自定义函数进行数值化处理或删除操作。
数组函数扩展功能分组计数
类似COUNTIF函数的效果,若分组列为多列时,类似COUNTIFS函数的效果,但性能更优,因一次性返回多值,仅一次运算即可。
分组计数函数,分组列为一列
分组列为两列时的效果分组序号
分组序号函数特点,在分组内的记录数中,每一行返回从1开始的不重复的递增的序列,基于排序列定义的顺序,分组列,排序列可以为多列,当排序规则下的排序列相同,将从上往下填充递增序号。
使用场景:对于数据清洗工作尤其有用,当数据有重复时,需要去根据分组的唯一值进行去重是保留最开始出现的记录还是最后出现的记录时,只需配合排序列的升序或降序处理,即可仅保留序号为1的记录,其他记录删除的方式实现数据清洗。
排序列的重复值较多,但不影响返回的序列的递增唯一性
当排序列为多列时的效果
当出现多个分组列时,因自定义函数参数位置固定的原因,只有第1参数才是分组列的输入参数,故需要嵌套FZJS分组列合并函数,用于合并多个分组列。
多个分组列下的单个排序列效果分组排名
类似以上的分组序号,返回递增的序列值,但此处对重复的值有相同的排名
同时对重复值排名区分了美式排名和中式排名两种
分组排名效果分组求和
结果类似SUMIF和SUMIFS函数的求和效果,因采用一次计算多值返回的手段,效率性能对大数据量有极大的提升
类似SUMIF的单组求和效果
类似SUMIFS的多组求和效果取某一位置值
在需要取某一位置的值时,可以灵活地提取上一元素、下一元素、首元素、末元素。
使用场景:可用于计算买家连续两次购买时间段的间隔时长、首次购买时间、末次购买时间等
可在分组情况下实现上一元素、下一元素、首、末元素的提取总结
当Excel不再纯粹只是一个Excel时,大量的外界的力量可以给Excel插上翅膀,让它飞得更高更远。此篇借鉴了Sqlserver等数据库的分析函数的功能,在Excel上使其可供使用,大大地武装了Excel对数据的处理和分析能力。同时在使用传统COUNTIF/SUMIF等函数普遍感到效率性能低下时,提供了全新的解决方案,让性能得到极大的提升。
系列文章
一文带你全面认识Excel催化剂系列功能
安装过程详解及安装失败解决方法
第1波-工作表导航
第2波-数字格式设置
第3波-与PowerbiDesktop互通互联
第4波-一大波自定义函数高级应用,重新定义Excel函数的学习和使用方法
第5波-使用DAX查询从PowerbiDeskTop中获取数据源
第6波-导出PowerbiDesktop模型数据字典
第7波-智能选区功能
第8波-快速可视化数据
第9波-数据透视表自动设置
第10波-快速排列工作表图形对象
第11波-快速批量插入图片
第12波-快速生成、读取、导出条形码二维码
第13波-一键生成自由报表
第14波-一键生成零售购物篮分析
第15波-接入AI人工智能NLP自然语言处理
第16波-N多使用场景的多维表转一维表
第17波-批量文件改名、下载、文件夹创建等
第18波-在Excel上也能玩上词云图
第19波-Excel与Sqlserver零门槛交互-查询篇
第20波-Excel与Sqlserver零门槛交互-数据上传篇
第21波-Excel与Sqlserver零门槛交互-执行SQL
第22波-Excel文件类型、密码批量修改,补齐Power短板
第23波-非同一般地批量拆分工作表
第24波-批量发送邮件并指点不同附件不同变量
第25波-小白适用的文本处理功能
第26波-正确的Excel密码管理之道
第27波-Excel工作表设置快捷操作
第28波-工作薄瘦身,安全地减少非必要冗余
第29波-追加中国特色的中文相关自定义函数
第30波-工作表快捷操作(批量创建、命名、排序、工作表目录)
第31波-数量金额分组凑数功能,财务表哥表姐最爱
第32波-空行空列批量插入和删除
第33波-报表形式数据结构转标准数据源
第34波-提取中国身份证信息、农历日期转换相关功能
第35波-Excel版最全单位换算,从此不用到处百度找答案
第36波-新增序列函数用于生成规律性的循环重复或间隔序列
关于Excel催化剂
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
领取专属 10元无门槛券
私享最新 技术干货