资讯详情

WPS函数公式视频教程374例:VLOOKUP、IF、SUMIF实战与避坑指南

📅 2026/10/23 6:51:51 | 华诺云谱 👁 阅读
WPS函数公式视频教程374例:VLOOKUP、IF、SUMIF实战与避坑指南
简介这份WPS官方函数公式视频教程面向办公人员、数据分析初学者及需要提升表格处理效率的职场用户系统讲解WPS表格中高频函数与实用技巧。内容覆盖VLOOKUP、IF、SUMIF、SUMIFS、COUNTIF、COUNTIFS、INDEX、MATCH、LOOKUP、MID、LEFT、TEXT、RANK、SUBTOTAL、IFS、DATEDIF等数十个函数并延伸至跨表匹配、多条件求和、不完全匹配查询、身份证信息提取、销售统计及云同步多人实时编辑等真实场景帮助读者从入门到进阶建立完整的数据分析思路。资源包内含1个PDF文件大小约331KB以图文目录形式串联374个实例与视频链接便于按需检索和对照学习。目前已有1001人学习下载适合希望利用碎片时间系统掌握WPS函数公式、提升日常办公与数据管理效率的读者参考使用。1. 从一张被公式拖垮的报表说起这套 WPS 函数视频到底值不值得刷上周帮一个做运营的朋友看报表她每个月要花整整两天做同一件事从三张表里把订单号、客户名、金额对到一起再按区域和月份分别求和。我问她为什么不用 VLOOKUP 和 SUMIFS她说“看过教程但一到自己写就报 #N/A干脆手动复制”。这不是个例。函数这东西看别人写觉得简单自己动手就翻车核心原因是缺一套从单函数到组合场景的完整参照。这套 WPS 官方函数公式视频教程收录了 374 个实例覆盖 VLOOKUP、IF、SUMIF 三大基础函数也包含 DATEDIF、SUBTOTAL、INDIRECT、XIRR 这类进阶和财务专用函数每个视频 1 到 4 分钟短平快。它适合两类人一是被重复劳动困住的办公族想用函数把两天的活压到两小时二是已经会写单个函数、但一组合就出错的半熟手需要一套系统的查漏补缺材料。下面我按“先搞懂逻辑、再动手复现、最后避开坑”的顺序把这套资源拆开讲。2. 三大核心函数的底层逻辑VLOOKUP、IF、SUMIF 到底怎么选2.1 VLOOKUP 的查找逻辑与参数拆解VLOOKUP 是这套教程里出现频率最高的函数没有之一。它的完整语法是VLOOKUP(查找值, 查找区域, 返回列号, 匹配方式)。四个参数里前三个决定“找什么、在哪找、返回哪一列”第四个参数决定“精确找还是模糊找”。很多人翻车就翻在第四个参数上写 0 或 FALSE 是精确匹配写 1 或 TRUE 是近似匹配。日常对账、配表场景99% 的情况应该用精确匹配。我一般会这样拆解它的执行过程先在查找区域的第一列里从上到下扫描找到与查找值相等的单元格找到后锁定这一行然后往右数到第 N 列把那个单元格的值取出来。如果第一列里没有相等的值精确匹配模式下直接返回 #N/A。理解了这个“先定位行、再偏移列”的机制就能明白为什么查找值必须在查找区域的第一列——这是 VLOOKUP 的硬约束不是可以绕过的设置。# 模拟 VLOOKUP 精确匹配的查找过程 def vlookup_simulate(lookup_value, table, col_index): lookup_value: 要查找的值 table: 二维列表第一列是查找列 col_index: 返回第几列从1开始 for row in table: if row[0] lookup_value: # 精确匹配第一列 return row[col_index - 1] # 返回对应列的值 return #N/A # 没找到就报错 # 示例数据订单表 orders [ [A001, 张三, 1200], [A002, 李四, 850], [A003, 王五, 2300], ] print(vlookup_simulate(A002, orders, 3)) # 输出 850 print(vlookup_simulate(A009, orders, 3)) # 输出 #N/A上面这段代码不是让你在 WPS 里跑而是帮你把 VLOOKUP 的“黑匣子”打开。参数 col_index 从 1 开始数对应表格里“返回列号”的概念。实际写公式时查找区域建议用绝对引用比如$A$2:$C$100否则往下拖拽时区域会跟着偏移这是新手最常见的翻车点之一。2.2 IF 与 SUMIF 的配合场景IF 函数本身很简单IF(条件, 真值, 假值)。但它真正的价值在于和别的函数嵌套。教程里有一个很典型的场景根据销售额判断是否达标达标返回“完成”不达标返回“未完成”。公式是IF(C210000,完成,未完成)。如果还要再分档就嵌套第二层 IF比如IF(C210000,优秀,IF(C25000,合格,待改进))。嵌套层数不建议超过三层再多就该换 IFS 函数了教程里也有 IFS 的专门讲解。SUMIF 解决的是“按条件求和”的问题语法是SUMIF(条件区域, 条件, 求和区域)。注意这三个参数的顺序先给条件区域再给条件最后给要求和的实际数值区域。很多人会下意识把求和区域放前面结果算出来是错的。举个例子要统计“华东区”的订单总额条件区域是省份列条件是“华东”求和区域是金额列。如果条件区域和求和区域是同一列第三个参数可以省略但我不建议省写全了以后回头检查更清楚。# 模拟 SUMIF 的条件求和逻辑 def sumif_simulate(condition_range, condition, sum_range): condition_range: 条件判断的区域 condition: 判断条件 sum_range: 实际求和的数值区域 total 0 for i in range(len(condition_range)): if condition_range[i] condition: # 条件匹配 total sum_range[i] # 累加对应数值 return total regions [华东, 华南, 华东, 华北, 华东] amounts [1200, 850, 2300, 600, 1800] print(sumif_simulate(regions, 华东, amounts)) # 输出 5300这段代码把 SUMIF 的“逐行判断、匹配则累加”过程还原出来了。实际使用时条件不一定是等号还可以写5000这样的比较运算教程里有多条件求和的 SUMIFS 专门讲这个。选型上我的习惯是单条件求和用 SUMIF多条件用 SUMIFS判断逻辑用 IF查找匹配用 VLOOKUP。四个函数覆盖了日常办公 80% 的数据处理需求。3. 从单函数到组合拳把教程里的案例拆成可复现的操作3.1 跨表匹配的完整操作流程教程里有一个“VLOOKUP 秒速配两表数据”的视频时长 1 分 07 秒讲的就是跨表匹配。我把它拆成可照着做的步骤。假设有两张表一张是“订单明细”有订单号和金额另一张是“客户信息”有订单号和客户名。现在要在订单明细里把客户名匹配过来。第一步确认两张表的关联字段。这里就是订单号它必须同时存在于两张表中且在“客户信息”表里订单号要位于查找区域的第一列。如果不在第一列要么调整列顺序要么用 INDEXMATCH 组合替代教程里也有 INDEX 和 MATCH 的单独讲解。第二步在订单明细表的客户名列写入公式。假设订单号在 A 列金额在 B 列客户信息表在 Sheet2 的 A 到 B 列公式写成VLOOKUP(A2,Sheet2!$A$2:$B$100,2,0)。这里 Sheet2! 表示跨工作表引用$A$2:$B$100 是绝对引用2 表示返回第二列即客户名0 表示精确匹配。第三步双击填充柄往下填充检查有没有 #N/A。如果有先排查订单号两边是不是有空格用 TRIM 函数清一下再排查数据类型是不是一致一边是文本一边是数值也会匹配不上。# 模拟跨表匹配的完整流程 def cross_table_match(order_ids, customer_table): order_ids: 订单明细里的订单号列表 customer_table: 客户信息表每行是 [订单号, 客户名] result [] for oid in order_ids: matched #N/A for row in customer_table: if row[0] oid: matched row[1] break result.append(matched) return result order_ids [A001, A003, A005] customer_table [[A001, 张三], [A002, 李四], [A003, 王五]] print(cross_table_match(order_ids, customer_table)) # 输出 [张三, 王五, #N/A]这段代码模拟了跨表匹配的逐行查找过程。实际在 WPS 里操作时最关键的是绝对引用的范围要覆盖所有可能的数据行但又不能太大导致性能下降。我一般会多留 50 行余量比如数据到 200 行区域就写到 $A$2:$B$250。3.2 日期与文本函数的组合应用教程里 DATEDIF、MID、TEXT 这几个函数被放在一起讲因为它们经常组合使用。一个典型场景是从身份证号里提取出生日期再计算年龄。身份证号的第 7 到 14 位是出生日期格式是 YYYYMMDD。先用 MID 提取MID(A2,7,8)得到“19900101”这样的字符串。然后用 TEXT 转成日期格式TEXT(MID(A2,7,8),0000-00-00)得到“1990-01-01”。最后用 DATEDIF 算年龄DATEDIF(TEXT(MID(A2,7,8),0000-00-00),TODAY(),Y)。这个组合公式看起来长但拆开就是三个独立步骤。DATEDIF 的第三个参数“Y”表示返回整年数换成“M”返回月数“D”返回天数。注意 DATEDIF 在 WPS 里是隐藏函数输入时不会有参数提示但可以直接用。教程里还有用 TODAY 函数计算间隔天数的案例逻辑类似只是把结束日期换成 TODAY() 动态获取当天日期。from datetime import datetime def extract_age(id_number): 从身份证号提取年龄 birth_str id_number[6:14] # MID 提取第7-14位 birth_date datetime.strptime(birth_str, %Y%m%d) # TEXT 转日期 today datetime.now() age today.year - birth_date.year if (today.month, today.day) (birth_date.month, birth_date.day): age - 1 # DATEDIF 的整年逻辑 return age print(extract_age(199001011234)) # 根据当前日期输出年龄这段代码把 MID、TEXT、DATEDIF 三个函数的协作过程用 Python 还原了一遍。实际写 WPS 公式时如果身份证号列有空格或不可见字符MID 提取会出错先用 TRIM 或 CLEAN 清理一下。教程里 CLEAN 函数专门讲删除不可打印字符就是这个用途。4. 避坑与排查函数报错、匹配失败、性能卡顿的常见问题4.1 VLOOKUP 返回 #N/A 的四类原因#N/A 是 VLOOKUP 最常见的报错教程里用了四个视频专门讲这个。我按排查优先级列一下。第一类查找值确实不存在。这是最直接的原因用 COUNTIF 确认一下查找值在目标列里有没有出现。第二类两边数据类型不一致。一边是文本格式的数字一边是数值格式的数字看起来一样但匹配不上。解决办法是用 VALUE 函数统一转数值或用 TEXT 函数统一转文本。第三类查找值或目标列有空格。肉眼看不出来用 LEN 函数对比字符长度就能发现。第四类查找区域没有锁定拖拽后偏移了。检查公式里的区域引用有没有加 $ 符号。4.2 条件求和结果偏大或偏小的排查SUMIF 和 SUMIFS 算出来的数不对通常不是函数本身的问题而是条件区域和求和区域的行数不一致。比如条件区域选了 A2:A100求和区域选了 B2:B90后面 10 行就对不上。另一个常见原因是条件写法有歧义比如条件是“100”但实际数据里有文本型的“100”会被排除在外。我一般会先用 COUNTIF 统计一下满足条件的单元格数量和 SUMIF 的结果交叉验证数量对不上就说明条件有问题。4.3 大量函数导致表格卡顿的处理当一个工作表里有几千个 VLOOKUP 或 SUMIFS 时每次重算都会卡。教程里没有专门讲性能优化但这是实际使用中绕不开的问题。我的做法是第一把已经算好的公式区域复制后“选择性粘贴为数值”减少实时计算量第二用辅助列把复杂的嵌套公式拆成几步每一步的结果单独存放最后再汇总第三如果数据量确实大考虑用数据透视表替代部分条件求和公式透视表的计算引擎比逐行函数快得多。4.4 日期函数返回意外结果的检查点DATEDIF 和 TODAY 组合算间隔天数时如果开始日期晚于结束日期DATEDIF 会返回 #NUM! 错误。另外WPS 的日期系统默认是 1900 日期系统如果表格是从其他系统导入的日期可能被识别为文本导致计算结果是 0 或错误值。检查方法是选中日期单元格看编辑栏里显示的是日期还是文本。如果是文本用 DATEVALUE 函数转换一下。5. 进阶技巧用 SUBTOTAL 和 INDIRECT 处理动态区域5.1 SUBTOTAL 的 9 和 109 到底差在哪SUBTOTAL 是教程里比较容易被忽略但实际很实用的函数。它的第一个参数是功能代码比如 9 代表 SUM1 代表 AVERAGE4 代表 MAX。关键在于9 会把手动隐藏的行也计算进去109 会忽略手动隐藏的行。如果配合筛选功能使用筛选掉的行在 9 和 109 下都不会被计算但手动隐藏的行只有 109 会忽略。这个区别在做报表时很关键我一般默认用 109避免手动隐藏的明细行干扰汇总结果。# 模拟 SUBTOTAL 的 109 逻辑忽略隐藏行 def subtotal_109(values, hidden_flags): values: 数值列表 hidden_flags: 布尔列表True 表示该行被隐藏 total 0 for v, hidden in zip(values, hidden_flags): if not hidden: # 只累加未隐藏的行 total v return total amounts [1200, 850, 2300, 600, 1800] hidden [False, True, False, False, True] print(subtotal_109(amounts, hidden)) # 输出 5300忽略了850和18005.2 INDIRECT 实现跨表动态引用INDIRECT 函数的作用是把文本字符串转换成单元格引用。比如INDIRECT(Sheet2!A1)等价于Sheet2!A1。它的进阶用法是配合下拉菜单实现动态切换引用的工作表。假设有 12 张按月命名的表在汇总表里做一个下拉菜单选择月份然后用INDIRECT(B1!A1)就能动态取到对应月份表的 A1 单元格。教程里 INDIRECT 的视频只有 1 分 12 秒但把这个逻辑讲清楚了。需要注意的是INDIRECT 引用的工作表必须存在否则返回 #REF! 错误。另外INDIRECT 不能引用已关闭的工作簿所以跨文件动态引用时目标文件必须保持打开状态。这个限制在实际使用中经常被忽略导致公式莫名其妙报错。5.3 用 EVALUATE 做文本表达式计算教程里有一个“强大的计算器 EVALUATE 函数”的视频时长 1 分钟。EVALUATE 在 WPS 里是宏表函数不能直接在单元格里写需要定义名称才能用。操作步骤是选中单元格在“公式”选项卡里点“定义名称”名称写“计算”引用位置写EVALUATE(Sheet1!$A2)然后在单元格里写计算就能把 A2 里的文本表达式比如“12*3”算出结果。这个技巧在处理一些从系统导出的文本算式时特别有用但注意 EVALUATE 依赖宏环境文件保存时要选支持宏的格式。函数适用场景关键参数常见错误VLOOKUP跨表匹配、精确查找第四参数写 0#N/A、区域未锁定SUMIFS多条件求和求和区域放最前区域行数不一致SUBTOTAL筛选后汇总109 忽略隐藏行功能代码写错INDIRECT动态跨表引用文本拼接表名目标表不存在或未打开DATEDIF日期间隔计算第三参数 Y/M/D开始日期晚于结束日期这套教程的价值不在于每个函数都讲得有多深而在于它把 374 个实例按函数类型铺开了遇到具体问题时能快速定位到对应的短视频。我的习惯是先把 VLOOKUP、IF、SUMIF、SUMIFS 这四个高频函数的视频过一遍动手在自己的数据上复现一遍然后把 #N/A 排查的四个视频看完把常见的匹配失败原因记下来最后按需查漏补缺遇到哪个函数不会就搜哪个。从那以后我每次写跨表公式都强制先检查查找区域有没有锁定、两边数据类型是否一致这两个检查点帮我省掉了大量返工时间。希望帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑