Crystal Reports中计算早于10:00的行占总数的百分比方法
Crystal Reports 计算早于10:00数据行占比的最优方法
针对你的需求,最适合新手的直观方法是通过公式字段+汇总计算实现,步骤如下:
1. 创建条件计数公式(统计早于10:00的行数)
- 打开「字段资源管理器」,右键「公式字段」→「新建」,命名为
Count_Before_10AM - 输入以下公式(替换
{你的日期时间字段}为实际列名):
If Time({你的日期时间字段}) < Time(10, 0, 0) Then 1 Else 0
这个公式会给每条早于10:00的记录标记为1,其余为0。
2. 插入总行数汇总
- 在「字段资源管理器」中找到你的日期时间字段,右键→「插入」→「汇总」
- 汇总类型选择「计数」,汇总位置选择「报表页脚」,确定后报表页脚会出现统计总行数的字段(默认命名类似
Count of 你的日期时间字段)
3. 创建百分比计算公式
- 再次新建公式字段,命名为
Percentage_Before_10AM - 输入公式(替换字段名,同时处理除以0的异常情况):
If Sum({@Count_Before_10AM}) = 0 Or Count({你的日期时间字段}) = 0 Then 0 Else (Sum({@Count_Before_10AM}) / Count({你的日期时间字段})) * 100
- 将这个公式拖到报表页脚,右键点击字段→「设置格式」→「数字」选项卡,选择「百分比」并调整小数位数(比如保留2位)
替代方案:用运行总计一步统计符合条件的行数
如果想简化步骤,也可以用运行总计字段直接统计早于10:00的行数:
- 右键「运行总计字段」→「新建」,命名为
RT_Count_Before_10AM - 「要汇总的字段」选你的日期时间字段,「汇总类型」选「计数」
- 「评估」选择「使用公式」,输入
Time({你的日期时间字段}) < Time(10, 0, 0) - 「重置」选择「从不」(适用于整个报表的统计)
- 之后用这个运行总计的结果除以总行数,再乘以100得到百分比
内容的提问来源于stack exchange,提问作者Edwoo
相关产品推荐
相关产品推荐

