本次评测聚焦于几款主流报表工具:润乾报表、帆软报表、SmartBI、永洪 BI。
主要对比报表排名及跨行组计算。
对比结果
对比项 | 润乾报表 | 帆软报表 | SmartBI | 永洪 BI |
复杂报表的支持度 | 强 | 强 | 中 | 中 |
值转换处理方式 | 数据字典,显示值表达式 | 数据字典,动态形态表达式 | 数据字典 | 数据字典 |
排名处理方式 | 层次坐标 | 层次坐标 | Excel 原生函数 +SmartBI 函数 | 内置统计模型 |
关联计算 | 数据集关联和单元格关联 | 数据集关联和单元格数据过滤 | 数据集关联 | 数据集关联 |
跨行组计算方式 | 内置函数 spl() | 需要辅助单元格 + 隐藏行列 | Excel 函数 +SmartBI 函数 | JavaScript 脚本方式 |
测试用例
报表样式
需求:报表需要计算出 2024 年各小组的组内排名、组间排名以及相较去年销售额提升前三的投手。
难点:计算相较去年销售额提升前三的投手。
实现过程:需要先将 2024 年和 2023 年的排名计算出来,然后根据组内名次变化,最后得出较去年销售额提升前三的投手
数据结构
报表设计差异分析
润乾报表
设计关键点
使用层次坐标结合 count()函数,实现组内排名和组间排名,比如 H4 格组内排名 =count(G4[A4]{G4>$G4})+1,统计当前小组内销售额之和大于当前投手的人员个数,然后再加 1,即当前投手的排名。
另应用其独有的 spl()函数,通过简单的参数配置获取组内销售额提升前三的投手,比如 B5 格 =disp(A4)+“组内销售额提升前三的投手是:”+string(spl(“?.m(?.ptop(-3))”,B4{},L4{})) 将 L4 单元格(名次变化幅度)传入,ptop(-3) 取最大的 3 位的位置,然后用 m() 函数根据位置取对应的投手。
优劣势分析
优势:
·函数功能强,简单配置实现复杂的计算
·底层模型强,层次坐标引用便于跨行组引用
劣势:
·需要掌握 spl() 函数应用
·可视化配置能力较弱
帆软报表
设计关键点
同样以层次坐标结合 count()函数达到组内排名和组间排名的效果, 比如 H4 格 count(G4[!0;!0]{A4 = $A4 && G4 > $G4}) + 1(原理与润乾相似这里就不多解释了),之后通过建立辅助格 M4 来计算名次变化,以获取组内销售额提升前三的投手,B5 格表达式为 A4+“组内销售额提升前三的投手是:”+B4{M4==1}+“,”+B4{M4==2}+“,”+B4{M4==3},这里是通过逐个对比获取的前三,名次相同时,不便获取同名次信息。
优劣势分析
优势:
·直观的层次坐标体系
·良好的可视化配置界面
劣势:
·辅助格增加内存消耗
·相同名次,不便获取同名次信息
SmartBI
设计关键点
通过 Excel 函数结合 SmartBI 内置函数嵌套计算,实现组内排名、组间排名以及获取组内销售额提升前三的投手。
比如 H5 格 RANK(G5,SSR_GetSubCells(G5,A5)) 利用 SSR_GetSubCells()获取所有以 A5 为父格的所有 G5 并通过 RANK 进一步确定排名。
优劣势分析
优势:
– 完全在 excel 中操作,易上手且便于使用 excel 的丰富函数
劣势:
·需有清晰的计算逻辑,掌握 Excel 和 SmartBI 函数
·层次坐标引用机制弱
·相同名次,不便获取同名次信息
永洪 BI
设计关键点
通过内置统计模型指定动态计算方式、计算依据等属性实现组内排名和组间排名,比如 H3
采用 JavaScript 脚本计算得出相较去年上升最快的投手,如下:
对分组列做行列循环,然后获取名次 <=3 的行号,从而获取对应的投手。
优劣势分析
优势:
·内置丰富的统计模型
·组合数据集可视化清晰便捷
劣势:
·需要掌握 JavaScript 语言
·值转换,排序处理较弱
评测结果与建议
在报表工具的排名与跨行组统计对比中,几款报表工具均能实现排名和跨行组统计需求,但实现方式和效率存在显著差异。润乾凭借独有的 spl() 函数动态解析并计算集算器表达式并返回结果集,无需依赖辅助单元格,开发效率高、资源消耗低且性能更优。帆软依托层次坐标和辅助隐藏列实现,数据量大时性能受限;SmartBI 依赖 Excel 函数和 SmartBI 函数多层嵌套实现,逻辑运算要求较高;永洪 BI 通过 JavaScript 代码处理,灵活但开发复杂度突出,对开发能力要求高。
整体来看,润乾报表处理这种复杂计算更占优势。
转载请注明:数据分析 » 主流报表工具对比之排名及跨行组统计