影刀RPA Excel条件求和:SUMIF与COUNTIF
影刀RPA Excel条件求和SUMIF与COUNTIF作者林焱什么情况用什么需要统计某个地区的销售总额、计算达成目标的订单数、按部门统计平均工资——这些条件统计在Excel里用SUMIF、COUNTIF、SUMIFS、COUNTIFS。但在影刀RPA处理大批量数据时用pandas的分组聚合或条件筛选更快更灵活还能写复杂条件。适用场景按条件汇总金额、统计满足条件的记录数、多条件交叉统计、分类排名计算。怎么做COUNTIF条件计数importpandasaspd dfpd.read_excel(rC:\Data\sales.xlsx)# COUNTIF统计销售额大于10000的订单数countlen(df[df[金额]10000])# 统计某地区的订单数count_bjlen(df[df[地区]北京])[video(video-kX15gV2g-1783502000801)(type-csdn)(url-https://live.csdn.net/v/embed/526818)(image-https://v-blog.csdnimg.cn/asset/582d14c3bd0451c5399cd990b56e2a0d/cover/Cover0.jpg)(title-拼多多店群自动化报活动上架)]# 统计包含某关键词的记录数count_phonedf[产品名].str.contains(手机,naFalse).sum()# 多条件计数COUNTIFScount_multilen(df[(df[地区]北京)(df[金额]10000)(df[状态]已完成)])SUMIF条件求和# SUMIF统计北京地区销售总额sum_bjdf[df[地区]北京][金额].sum()# SUMIFS多条件求和sum_multidf[(df[地区]北京)(df[状态]已完成)(df[金额]1000)][金额].sum()# 按地区分组求和相当于所有地区的SUMIFregion_sumdf.groupby(地区)[金额].sum().reset_index()region_sum.columns[地区,总金额]AVERAGEIF条件平均# AVERAGEIF北京地区平均订单金额avg_bjdf[df[地区]北京][金额].mean()# 多条件平均avg_multidf[(df[地区]北京)(df[状态]已完成)][金额].mean()生成条件统计报表defgenerate_summary_report(df,output_path):生成多维度条件统计报表withpd.ExcelWriter(output_path,engineopenpyxl)aswriter:# 1. 按地区统计region_statsdf.groupby(地区).agg(订单数(订单ID,count),总金额(金额,sum),平均金额(金额,mean),最大金额(金额,max),最小金额(金额,min)).round(2).reset_index()region_stats.to_excel(writer,sheet_name按地区统计,indexFalse)# 2. 按状态统计status_statsdf.groupby(状态).agg(订单数(订单ID,count),总金额(金额,sum)).reset_index()status_stats.to_excel(writer,sheet_name按状态统计,indexFalse)# 3. 按地区×状态交叉统计crosspd.pivot_table(df,values金额,index地区,columns状态,aggfuncsum,fill_value0,marginsTrue,margins_name合计)cross.to_excel(writer,sheet_name交叉统计)# 4. 条件筛选统计conditions{大额订单(1万):df[df[金额]10000],小额订单(1千):df[df[金额]1000],北京已完成:df[(df[地区]北京)(df[状态]已完成)],上海待处理:df[(df[地区]上海)(df[状态]待处理)],}summary_data[]forname,subsetinconditions.items():summary_data.append({统计项:name,订单数:len(subset),总金额:subset[金额].sum(),平均金额:round(subset[金额].mean(),2)iflen(subset)0else0})condition_dfpd.DataFrame(summary_data)condition_df.to_excel(writer,sheet_name条件统计,indexFalse)returnoutput_path# 使用dfpd.read_excel(rC:\Data\sales.xlsx)generate_summary_report(df,rC:\Data\sales_summary.xlsx)动态条件统计defdynamic_summary(df,group_col,value_col,conditionsNone): 动态条件统计 conditions: dict of {条件名: 筛选条件函数} # 基础分组统计resultdf.groupby(group_col).agg(计数(value_col,count),求和(value_col,sum),平均(value_col,mean),).round(2).reset_index()# 添加条件统计列ifconditions:forcond_name,cond_funcinconditions.items():cond_resultdf[cond_func(df)].groupby(group_col)[value_col].sum()result[f{cond_name}_金额]result[group_col].map(cond_result).fillna(0)returnresult# 使用dfpd.read_excel(rC:\Data\sales.xlsx)summarydynamic_summary(df,group_col地区,value_col金额,conditions{大额:lambdad:d[金额]10000,已完成:lambdad:d[状态]已完成,})写入Excel公式版本importopenpyxldefwrite_sumif_formulas(file_path):在Excel中写入SUMIF/COUNTIF公式wbopenpyxl.load_workbook(file_path)ws_datawb[销售数据]ws_summarywb[统计]# 假设统计表中A列是地区名称从第2行开始forrowinrange(2,ws_summary.max_row1):regionws_summary.cell(rowrow,column1).valueifnotregion:continue# COUNTIF统计该地区订单数ws_summary.cell(rowrow,column2).value\fCOUNTIF(销售数据!B:B,A{row})# SUMIF统计该地区总金额ws_summary.cell(rowrow,column3).value\fSUMIF(销售数据!B:B,A{row},销售数据!D:D)# SUMIFS该地区已完成订单总金额ws_summary.cell(rowrow,column4).value\fSUMIFS(销售数据!D:D,销售数据!B:B,A{row},销售数据!E:E,已完成)wb.save(file_path)有什么坑坑1条件筛选时空值导致报错金额列有空值直接比较会报错或结果不对# 问题空值比较df[df[金额]1000]# NaN参与比较结果为False不会报错但可能遗漏# 更安全先处理空值df[金额]pd.to_numeric(df[金额],errorscoerce).fillna(0)resultdf[df[金额]1000]# 或者排除空值resultdf[df[金额].notna()(df[金额]1000)]坑2groupby结果缺少某些分组某些地区没有数据groupby后结果里缺少该地区行TEMU店群矩阵自动化运营核价报活动# 问题只有北京和上海有数据广州没有resultdf.groupby(地区)[金额].sum()# 结果只有北京和上海# 解决用reindex补全all_regions[北京,上海,广州,深圳]resultdf.groupby(地区)[金额].sum().reindex(all_regions,fill_value0)坑3SUMIF公式范围不匹配写入Excel公式时条件范围和求和范围行数不一致# 错误条件范围是B列求和范围是D2:D100ws.cell(rowrow,column3).valueSUMIF(B:B,A2,D2:D100)# 范围不一致# 正确两个范围要一致ws.cell(rowrow,column3).valueSUMIF(B:B,A2,D:D)# 都是整列# 或ws.cell(rowrow,column3).valueSUMIF(B2:B1000,A2,D2:D1000)# 同范围坑4浮点数精度问题条件求和后金额出现0.00000001的偏差# 问题浮点数精度totaldf[df[地区]北京][金额].sum()# 可能是100000.00000000001# 解决用roundtotalround(df[df[地区]北京][金额].sum(),2)# 或用Decimal处理金额fromdecimalimportDecimal df[金额]df[金额].apply(lambdax:Decimal(str(x)))totaldf[df[地区]北京][金额].sum()totalfloat(total)坑5COUNTIF统计中文条件统计包含中文字符的记录时编码或全半角不一致导致漏统计# 问题全角和半角括号不一致df[产品名].str.contains(手机智能,naFalse)# 只匹配全角括号# 解决统一全半角后再匹配importunicodedata ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/445d1346fb4b41ab95c21ebf9732287c.png#pic_center)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e9657aa741f344dba6803508734d68ec.png#pic_center)df[产品名]df[产品名].astype(str).apply(lambdax:unicodedata.normalize(NFKC,x))countdf[产品名].str.contains(手机(智能),naFalse).sum()

相关新闻

可见光与红外相机标定:3种H矩阵计算方法对比与精度分析

可见光与红外相机标定:3种H矩阵计算方法对比与精度分析

可见光与红外相机标定:3种H矩阵计算方法对比与精度分析在计算机视觉领域,多模态传感器融合已成为提升系统感知能力的关键技术。其中,可见光相机与红外相机的联合标定是实现精确数据对齐的基础环节。单应性矩阵(H矩阵)作…

2026/7/8 23:24:34阅读更多 →
MP2672A与STM32F745ZG锂电池均衡充电方案设计

MP2672A与STM32F745ZG锂电池均衡充电方案设计

1. 项目背景与核心需求在便携式电子设备和储能系统中,多节锂电池串联使用时普遍存在电压不均衡问题。这种不均衡会导致电池组容量下降、寿命缩短甚至安全隐患。传统被动均衡方案能量损耗大,而主动均衡电路又过于复杂。MP2672A这款高度集成的充电管理IC恰…

2026/7/8 23:19:33阅读更多 →
STM32L031C6驱动CMT-8540S-SMT音频模块实战指南

STM32L031C6驱动CMT-8540S-SMT音频模块实战指南

1. 项目背景与硬件选型解析在物联网和智能硬件快速发展的今天,为各种项目添加声音交互功能已成为提升用户体验的重要手段。STM32L031C6微控制器与CMT-8540S-SMT音频模块的组合,为开发者提供了一套低功耗、高性价比的音频解决方案。STM32L031C6是STMicroe…

2026/7/8 23:19:33阅读更多 →
学生管理信息系统:高效、便捷的学生管理工具

学生管理信息系统:高效、便捷的学生管理工具

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

2026/7/9 0:34:39阅读更多 →
网盘直链下载助手终极指南:告别限速,实现九大网盘高速下载自由

网盘直链下载助手终极指南:告别限速,实现九大网盘高速下载自由

网盘直链下载助手终极指南:告别限速,实现九大网盘高速下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / …

2026/7/9 0:34:39阅读更多 →
TensorFlow Lite在嵌入式Linux上的交叉编译与部署

TensorFlow Lite在嵌入式Linux上的交叉编译与部署

TensorFlow Lite在嵌入式Linux上的交叉编译与部署 一、端侧AI的工程挑战与交叉编译全景 在嵌入式设备上跑AI推理,已经不像两年前那样只是Demo。安防摄像头的目标检测、工业机器人的缺陷识别、农业无人机的作物分类——这些场景的共同约束是:ARM Cortex-A…

2026/7/9 0:34:39阅读更多 →
5分钟免费解锁Cursor Pro完整功能:终极机器ID重置指南

5分钟免费解锁Cursor Pro完整功能:终极机器ID重置指南

5分钟免费解锁Cursor Pro完整功能:终极机器ID重置指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tri…

2026/7/9 0:34:39阅读更多 →
5分钟完全解锁索尼相机隐藏功能:OpenMemories-Tweak终极指南

5分钟完全解锁索尼相机隐藏功能:OpenMemories-Tweak终极指南

5分钟完全解锁索尼相机隐藏功能:OpenMemories-Tweak终极指南 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak 你是否曾经为索尼相机的30分钟视频录制限制而烦恼&am…

2026/7/9 0:34:39阅读更多 →
双节锂电池主动均衡系统设计与STM32实现

双节锂电池主动均衡系统设计与STM32实现

1. 项目背景与核心需求在双节锂离子电池组应用中,电池电压不均衡是一个常见且棘手的问题。当两节串联电池的电压差异超过一定阈值时,不仅会影响整体电池组的可用容量,还会加速电池老化甚至引发安全隐患。传统被动均衡方案通过电阻放电实现平衡…

2026/7/9 0:29:38阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/8 5:12:14阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/8 2:26:06阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →