
1. 先聊聊为什么我会持续更新一套 Excel 函数笔记先说个真实场景。上个月我帮朋友处理一张销售流水表二十多万行数据里面有日期、区域、销售员、商品名称、单价、数量、金额。他的需求很简单把每个销售员在华东区、产品名称包含“pro”的订单金额汇总出来。他说“这不就是个 sumif 吗”结果自己写了半小时没写对最后用筛选加手动复制粘贴折腾了一晚上。其实这个事说白了就是一次条件求和用 SUMIFS 两分钟就能搞定。但问题在于很多人对函数公式的理解停留在“单个函数背语法”的层面一旦遇到多条件、跨表、文本模糊匹配就开始绕弯路。这也是我决定把这套 Excel 函数笔记持续更新下去的起因与其收藏各种零散的“Excel 技巧合集”不如按真实工作流的逻辑把常用函数一个一个讲透配合场景、案例、踩坑记录让所有看过笔记的朋友能直接拿来用。这套笔记适合谁如果你是每天跟表格打交道、但函数水平一直停留在 SUM 和 IF 的办公族或者你刚开始学 Excel、想知道“哪几个函数学了最值”那这篇内容会非常对口。我不会堆砌那种一屏装不下的函数大全而是按使用频率和坑点密度来挑函数条件求和、文本提取、逻辑判断、查找引用、公式可读性优化每个模块都有自己的实战价值。而且因为笔记持续更新后续还会不断补充新函数案例——像 Excel 新出的正则提取函数 REGEXEXTRACT我也会专门拆出来讲透。2. 核心高频函数SUMIFS 条件求和的实际用法2.1 SUMIFS 语法细节与参数选用SUMIFS 的全称是 Sum If Set也就是“满足多个条件再求和”。语法长这样SUMIFS(求和区域, 条件区域1, 条件1, [条件区域2, 条件2], ...)注意顺序这一点和 SUMIF 正好相反。SUMIF 是先写条件区域再写求和区域SUMIFS 是先写求和区域再写条件区域。初学者最容易在这里卡壳。我见过不少同事用 SUMIFS 报错就是因为把参数顺序写反了。举一个实际例子。有一份订单明细字段包括订单日期、区域、销售员、商品分类、金额。现在要统计“华东区销售员张三的办公用品类目总金额”公式如下SUMIFS(F:F, B:B, 华东, C:C, 张三, E:E, 办公用品)这个公式里的求和区域是 F 列金额后面三组条件区域和条件先匹配再汇总。SUMIFS 的匹配逻辑是“同时满足”也就是把所有条件做 AND 交集。如果你想要 OR 逻辑比如华东或华南都算就需要 SUMIFS SUMIFS 相加或者换 SUMPRODUCT。2.2 SUMIFS 常见坑整列引用、空白单元格与多条件排序SUMIFS 我用了八年踩过几个特别典型的坑。第一个坑整列引用导致计算卡顿。SUMIFS(A:A, B:B, 条件) 这种写法确实方便但如果你表格有一万行公式会在一整列里扫描文件一大就明显发迟。推荐把引用范围缩小到实际数据区比如SUMIFS(F2:F20000, B2:B20000, 华东, C2:C20000, 张三)这样既能保证结果准确计算负担也小。第二个坑空白单元格和 0 值混在一起。SUMIFS 支持直接用 条件来匹配空白单元格但如果你表格里的“空白”其实是由公式返回的空字符串那条件要写成 还要注意空文本和真空白的区别。否则统计结果会莫名其妙少算或者多算。第三个坑条件区域与求和区域的行数不一致。SUMIFS 要求所有区域的行数或列数完全一致否则直接报 VALUE 错误。我习惯先把数据区域选中再从中抠出各列这样能避免这类低级错误。第四个坑通配符的使用。条件里支持星号 * 和问号 ?。比如要统计商品名称里包含“pro”的条件写*pro*即可。如果你要找的文本里本身含星号得用波浪号~*转义。2.3 多表汇总与日期条件的进阶用法在实际工作中单表 SUMIFS 只是热身真正的痛点是跨工作表汇总。比如每个月一张销量表12 张表结构相同现在要汇总全年华东区金额。两个常用方案方案一多个 SUMIFS 相加公式较长但直观。SUMIFS(1月!F:F, 1月!B:B, 华东) SUMIFS(2月!F:F, 2月!B:B, 华东) ...方案二用 INDIRECT 配合序列数动态取表名。假设 A1 单元格是“1月”A2 是“2月”数组公式可以写成SUMPRODUCT(SUMIFS(INDIRECT(A1:A12!F:F), INDIRECT(A1:A12!B:B), 华东))这个公式看起来有点吓人核心就是把表名作为变量通过 INDIRECT 拼接成区域引用SUMIFS 返回一组结果SUMPRODUCT 负责汇总。这种写法适合表特别多、而且表名有规律的情况。日期条件的处理也常被忽略。假如订单日期在 G 列格式是真正的日期不是文本你要统计 2025 年 1 月的金额条件这么写SUMIFS(F:F, G:G, 2025-1-1, G:G, 2025-1-31)注意日期要用引号包起来并且系统得能识别“2025-1-1”这种写法。如果你不想受日期格式影响也可以换成单元格引用SUMIFS(F:F, G:G, H1, G:G, H2)3. 文本提取新利器REGEXEXTRACT 函数深度拆解3.1 为什么 REGEXEXTRACT 值得单独写一篇最近的 Excel 版本里新增了一个叫 REGEXEXTRACT 的函数专用于正则表达式提取。这个函数给我的感受是Excel 终于把文本处理的最后一块短板补上了。以前你要从一段杂乱文本里提取电话号码、邮箱、订单号必须靠 LEFT、RIGHT、MID、FIND 组合拳遇到不固定长度的文本公式绕到怀疑人生。现在一个正则就能解决。那么 REGEXEXTRACT 到底怎么用语法如下REGEXEXTRACT(文本, 正则表达式, [匹配组], [匹配模式])文本要处理的原始内容。正则表达式用于匹配的规则。匹配组可选参数。0 表示提取整个匹配1 表示提取第一个捕获组。匹配模式可选参数。0 表示区分大小写1 表示忽略大小写。具体看你使用的 Excel 版本函数行为可能略有差异但大体逻辑一致。这里要提醒一句REGEXEXTRACT 是动态数组函数因此结果会自动溢出到相邻单元格。如果你用的还是老版本 Excel可能没有这个函数会提示 NAME 错误。3.2 实际案例从订单备注里提取快递单号举个我实际做过的案例。有一份订单表格字段很长其中“备注”列内容乱七八糟例如单号SF1234567890 发货途中中转一次备注编号 2025-01-01现在需要把快递单号提取出来。快递单号的特征是字母加数字组合常见格式为两位大写字母后接数字。正则表达式可以这样写[A-Z]{2}\d{9,12}配套公式REGEXEXTRACT(D2, [A-Z]{2}\d{9,12})这个公式会匹配类似 SF1234567890 的字符串自动提取出来。原来我用 MID FIND 写三层嵌套才能完成的事现在一行搞定。再举一个更复杂的例子从一长段地址里提取手机号。手机号的特征是 1 开头共 11 位数字正则可以这么写1[3-9]\d{9}公式REGEXEXTRACT(A2, 1[3-9]\d{9})这个写法的好处是不用关心手机号前后有没有空格、破折号或其他字符只要连续 11 位数字符合规则就能命中。3.3 正则提取的注意事项与兼容性正则表达式学习成本是有的但常用套路并不多。比如\d代表数字[A-Z]代表任意大写字母*代表前一个字符重复零次或多次代表一次或多次?代表零次或一次。掌握这几个元字符大部分文本提取场景都能覆盖。实际使用中有几个容易掉坑的地方。坑一Excel 正则的细节匹配规则和编程语言不完全一样。比如转义符的处理建议先在单元格中测试对比结果是否符合预期再批量套用。坑二REGEXEXTRACT 是动态数组函数如果同一列下方有其他手工输入的内容溢出区域会被挡住报“溢出”错误。解决办法是确保公式所在单元格下方留出足够空白或者干脆使用单条件场景避免多条溢出。坑三正则空白字符与中文空格的处理。文本里可能混有非断行空格正则里用\s不一定能匹配所有空白必要时先用 SUBSTITUTE 清洗一下。如果版本较旧没有 REGEXEXTRACT可以采用替代方案比如用 TEXTBEFORE、TEXTAFTER 实现简单提取再自行拆分。但这篇文章还是以新函数为主因为长期来看掌握正则提取是更通用、更一劳永逸的方向。4. 函数公式大全的整理思路让复杂公式可维护、可复用4.1 公式太长不可读用命名管理器与 LET 优化很多人收藏了“Excel 函数公式大全”但真到自己写公式时几十个字符堆在一起回车一敲都分不清谁是谁。我要强调一件事公式的可读性和复用性和函数本身一样重要。命名管理器是最简单的优化手段。选中某一列数据区域在“公式”选项卡里定义名称比如把 B 列命名为“区域”C 列命名为“销售员”F 列命名为“金额”。之后公式就能写成SUMIFS(金额, 区域, 华东, 销售员, 张三)这比SUMIFS(F2:F20000, B2:B20000, ...)好读太多别人接手你的表格时也不容易看错。命名管理器的适用范围不限于区域也可以给常量命名。比如保费计算里的固定税率 0.03命名成“税率”以后改税率只需要改一个地方。再进一步用 LET 函数定义中间变量。LET 是较新版本支持的可读性神器语法LET(变量名1, 值1, 变量名2, 值2, 最终计算)签名结构清晰了。举个例子原来复杂的折扣计算IF(C21000, C2*0.9, C2) - IF(C21000, 50, 0)用 LET 整理后LET( 原价, C2, 折扣价, IF(原价1000, 原价*0.9, 原价), 优惠券, IF(原价1000, 50, 0), 折扣价 - 优惠券 )这样一段段拆开是不是比挤在一行里清晰多了LET 本身不改变计算逻辑只是帮你给中间结果起名字。你的表格如果经常被同事“借用”这个习惯越早养成越好。4.2 用 LAMBDA 创建属于你的复用公式LAMBDA 函数把“自定义函数”这件事真正带进了 Excel。它允许你写一个公式逻辑并给它起个名字之后像内置函数一样反复调用。举个现实场景你需要频繁计算“含税价转不含税价并保留两位小数”原来每次都要写ROUND(含税价/1.13, 2)公式一长还要担心单元格引用错位。可以这样定义一个自定义名称函数不含税价 LAMBDA(含税价, ROUND(含税价 / 1.13, 2))之后在任意单元格直接写不含税价(D2)等于把运算逻辑集中维护以后税率调整只需要改 LAMBDA 定义里的 1.13全表所有调用处同步更新。这种用法对于经常处理同一类表格的人简直是效率倍增器。不过 LAMBDA 也有它的注意点函数定义过程中不能使用相对引用的方式捕捉单元格得靠传参。多练习几次就能习惯但新手容易把它和普通公式混用导致公式返回错误。我的建议是先在一个单元格里写好普通公式确定逻辑正确再改写成 LAMBDA 的参数结构能减少调试时间。4.3 公式错误排查IFERROR 不是万能的做函数公式绕不开错误值处理。#N/A、#VALUE!、#DIV/0!每一个都让人头疼。最朴素的方案是在外面套一层 IFERRORIFERROR(原有公式, 异常)但我要提醒你IFERROR 会吞掉所有错误不只是你预期的错误。比如 VLOOKUP 查不到值返回 #N/A这时候 IFERROR 给个提示没问题可如果是公式本身写错导致 #NAME?外层套 IFERROR 也会照单全收反而把真正的 bug 藏住了。排查问题前先去掉 IFERROR看清原始错误类型比盲目兜底靠谱得多。更合理的处理思路是按错误类型分类处理。比如用 IFNA 只处理“查不到”的场景保留其他错误报出来IFNA(VLOOKUP(A2, 数据表, 2, 0), 未找到)这样公式出错时你至少能区分是“真没找到”还是“公式被写坏了”。公式排查章节我建议每个学函数的人都单独建一个小笔记记录每种错误值的常见诱因以后遇到了直接对照看效率会高很多。5. 面向长期更新Excel 函数笔记的规划与学习路径5.1 按场景分类整理而不是按字母顺序背函数一套持续更新的 Excel 函数笔记最关键的是分类体系。按字母顺序把所有函数罗列一遍既不利于记忆也不利于查找。我更推荐按业务场景来分类条件统计类SUMIF、SUMIFS、COUNTIF、COUNTIFS、AVERAGEIFS查找引用类VLOOKUP、XLOOKUP、INDEX、MATCH、CHOOSECOLS文本提取类LEFT、RIGHT、MID、TEXTBEFORE、TEXTAFTER、REGEXEXTRACT逻辑判断类IF、IFS、AND、OR、SWITCH计算修饰类ROUND、ROUNDUP、ROUNDDOWN、ABS、MOD数据清洗类TRIM、CLEAN、SUBSTITUTE、UNIQUE、SORT举个例子当领导说“把华东区销售额算一下”你第一反应是去求和类函数里找 SUMIFS而不是回忆 C 开头有什么函数。场景化笔记才能真正提升解决问题的速度。我自己的更新规划是每个函数配三个固定栏目功能解释、基础语法、实战案例。实战案例一定来源于真实工作宁可简单但真实不编造复杂的假数据。这比写一个抽象的“根据条件汇总”更有价值因为读者能直接套用到自己的表格里。5.2 新人学函数最容易犯的三个认知错误第一个认知错误认为函数越多越好。其实真正高频使用的函数翻来覆去就二十几个。把 IF、SUMIFS、VLOOKUP、XLOOKUP、TEXTBEFORE、REGEXEXTRACT 掌握熟练已经能覆盖大部分日常表格场景了。函数大全背得再多用不上的等于没用。第二个认知错误遇到问题第一反应是搜索引擎自己不想函数怎么写。搜索本身没问题但关键是要理解而不是抄答案。我建议每次搜到解决公式后顺手把公式中的每个参数拆开理解一遍再换一个类似数据手动改一改。这个过程只需要十分钟但很值。第三个认知错误忽略版本差异。Excel 365、Excel 2021 和 WPS 在函数支持上有差异比如 XLOOKUP 和 REGEXEXTRACT 在老版本里根本不存在。做笔记时我会标注函数适用的版本避免同事故用旧版本时一脸茫然。5.3 提高公式技能的日常训练方法最后分享一个我长期使用的方法每次处理完一张表格花十分钟做一次“公式复盘”。问自己三个问题第一这个需求有没有更简单的函数可以替代第二如果数据量再大十倍这个公式会不会卡第三公式如果交给别人改能不能一眼看懂这个复盘听起来简单时间久了效果很明显。你会发现自己写公式会越来越短越来越稳也越来越敢于用动态数组函数和 LAMBDA 这类高阶特性。Excel 函数这条路没有什么天才速成。我做了这么多年表格函数笔记依然在更新说明踩坑和优化是常态。希望这篇内容能作为你的起点而不是终点。后续笔记里我会把查找引用、文本清洗、动态数组和错误排查这几个板块继续拆细每篇都配上可直接套用的案例和踩坑记录。如果你在练习中碰到什么奇怪问题别急着怀疑自己——大概率是区域引用没锁、版本不支持或者参数顺序写反了查一查答案往往就在这一类细节里。