冷门函数速查与实战清单
冷门函数速查表
全书讲过的冷门函数集中在这里,按用途归类。查表时先找场景,再决定要不要回到对应篇章细看。最低版本一栏是硬门槛,发给同事前先对照。
| 函数 | 一句话用途 | 最低版本 | 典型场景 |
|---|---|---|---|
=UNIQUE(A2:A500) |
去重并自动刷新 | Excel 2021 / 365 | 每月名单去重出唯一值 |
=FILTER(A2:F500,B2:B500>100) |
按条件整行捞数据 | Excel 2021 / 365 | 筛选大额订单明细 |
=SORT(A2:C100,3,-1) |
公式排序不破坏原表 | Excel 2021 / 365 | 出榜单又不动源数据 |
=SORTBY(A2:A100,B2:B100,-1) |
按另一列排序 | Excel 2021 / 365 | 按金额排名单名称 |
=SEQUENCE(10) |
造序号造日期造日历 | Excel 2021 / 365 | 快速生成编号列 |
=TEXTSPLIT(A2,"-") |
按分隔符拆字符串 | Excel 2024 / 365 | 拆编码拆地址 |
=TEXTJOIN("-",TRUE,A2:C2) |
合并并跳过空值 | Excel 2019 | 拼地址拼接姓名 |
=XLOOKUP(A2,C:C,D:D,"无") |
全能查找默认精确 | Excel 2021 / 365 | 替代 VLOOKUP 全家 |
=INDIRECT(B2&"!C:C") |
文本拼引用动态切换 | 全版本 | 动态汇总多表 |
=OFFSET(A1,2,3) |
区域动态偏移 | 全版本(慎用) | 动态区域老写法 |
=CHOOSE(2,A2,B2,C2) |
按序号选值做分支 | 全版本 | 替代多层 IF |
=DATEDIF(A2,B2,"Y") |
算间隔年月日 | 全版本 | 算工龄算账龄 |
=AGGREGATE(9,6,B2:B100) |
跳过错误值统计 | Excel 2010 | 报错列里求和 |
=SUMPRODUCT((A2:A100>50)*(B2:B100)) |
多条件不用数组 | 全版本 | 低版本条件统计 |
=LET(x,A2*10,x+B2) |
长公式起短名 | Excel 2024 / 365 | 复杂计算提可读性 |
=LAMBDA(a,b,a*b) |
自定义函数 | Excel 2024 / 365 | 固定业务规则复用 |
表格里标着全版本的函数最值得优先学:不分版本、人人能开,响了就是赚到。标 2021 的那批属于能配套升级就尽量用,功能差异确实大。标 2024 的 LET 和 LAMBDA 现阶段留在自己电脑上用,别进对外文件。
按场景选函数
速查表之外,实际工作中更常见的是反过来:先有具体问题,再找该用谁。下面这张表把高频问题直接对应到函数,省去中间的思考成本。
| 遇到的问题 | 首选写法 | 老版本退路 |
|---|---|---|
| 列出一列的唯一值 | UNIQUE | 删除重复项或辅助列加 COUNTIF |
| 按条件筛出整行明细 | FILTER | 高级筛选或自动筛选 |
| 给数据排序但不改原表 | SORT 或 SORTBY | 排序菜单复制到新区域 |
| 查找某值并返回右侧列 | XLOOKUP | INDEX 加 MATCH |
| 查找值在左侧列 | XLOOKUP | INDEX 加 MATCH |
| 找不到时显示自定义提示 | XLOOKUP 第四参数 | IFERROR 包住查找公式 |
| 算两个日期间隔几年几月 | DATEDIF | 手算或 YEAR 减法 |
| 一列有错误值还要求和 | AGGREGATE | SUMIF 加 ISERROR 辅助列 |
| 低版本做多条件计数 | SUMPRODUCT | COUNTIFS(2010 起可用) |
| 按分隔符拆文本成多列 | TEXTSPLIT | 分列菜单或 MID 加 FIND |
| 合并多列跳过空值 | TEXTJOIN | 连字符手动拼接 |
| 长公式想缩短提升可读性 | LET | 命名公式定义名称 |
| 业务规则想复用成函数 | LAMBDA | 参数化单元格加引用 |
老版本退路不是将就,它是保命方案。给外部发的文件,退路那一栏才是主线。等双方版本都升上来了,再切回首选写法也不迟。关于每一行的兼容细节,版本对照里有完整讨论。
实战清单:拿到表先问三个问题

函数是兵器,先看清战场再选。任何一张新表到手,习惯性先问三个问题,答案直接决定函数选择。第一问:这张表的行数会增长吗?第二问:这个文件只自己用还是要发出去?第三问:计算结果需要自动更新还是手动出一次就行?
行数稳定且只自己用,所有新函数放开写,XLOOKUP 配 UNIQUE 配 FILTER,怎么痛快怎么来,多条件查找的四种解法对比里那套对比足够你做选择。行数会增长,优先把区域转成表格,让结构化引用处理扩展问题,别用 OFFSET 硬扛。文件要发出去,先确认对方版本,降级写法照着老版本退路那一栏换。手动出一次结果就行,菜单操作往往比公式更快,删除重复项和分列都是十秒钟能做完的事。
具体到常见任务,清单整理如下。做唯一名单:数据稳定用 UNIQUE,要发出且对方版本旧,用辅助列加 COUNTIF 筛选复制。做条件汇总:单条件 SUMIFS,多条件 SUMIFS 嵌套或 SUMPRODUCT,超大表上数据透视表而不是公式。做查找取数:新环境 XLOOKUP,兼容环境 INDEX 加 MATCH,永远不要用 VLOOKUP 加 IF 虚拟数组那种写法。做文本拆合:TEXTSPLIT 和 TEXTJOIN 是首选,老环境分列菜单和连接符也够用。做计算性能:先检查整列引用和条件格式数量,再看有没有易失函数,顺序不能颠倒。
上手顺序建议
一群冷门函数一起学容易乱。建议按这个顺序推进,每一步练熟了再走下一步。第一步 AGGREGATE 和 DATEDIF:全版本可用,立刻就能在工作中替换掉那些笨拙的老写法,见效最快。第二步 TEXTJOIN:2019 起普及,合并文本这件事从此告别连字符地狱。第三步 INDEX 加 CHOOSE 分支:把 IF 嵌套收一收,公式可读性会直接上一个台阶。
第四步 XLOOKUP 和动态数组家族:前提是你本机版本足够。这一步学会之后,做表的思路会彻底变化——从写死结果变成写规则,数据变结果自己变。FILTER 和UNIQUE两篇值得多读两遍,动态数组是这套思路的入口。第五步 LET 和 LAMBDA:等你写过几条长到自己也看不懂的公式之后,自然会觉得需要它们,那时候学成本最低。中间遇到性能毛刺,随时翻易失函数与性能陷阱排查。
三个组合写法值得背下来
单个函数会用只是入门,把几个拼起来解决一整类问题才是实战。下面三套组合覆盖了日常八成的复杂需求,建议背熟。
第一套是动态去重加排序加取前几。给它一个原始明细区域,它能直接还你一张干净的排行榜。写法是把三层套起来:先 FILTER 按条件筛出需要的行,再用 SORT 按金额从大到小排,最后用 UNIQUE 处理重复项。一条嵌套写下来大概是这样:=SORT(UNIQUE(FILTER(A2:D500,B2:B500>1000)),4,-1)。它一次完成了三件原来要三步才能做的事,而且源数据一变动结果自动跟着变。老版本里这三件事要分别用高级筛选、排序菜单、删除重复项做三遍。
第二套是条件求和加条件计数加占比。用 SUMIFS 求某个区域的总额,用 COUNTIFS 数出对应的记录条数,两者相除就是平均单笔金额。这套写法在做分区统计时特别顺手,比拉一遍数据透视表更轻。例如 =SUMIFS(D:D,C:C,"华东")/COUNTIFS(C:C,"华东") 得到就是华东区的平均金额,改一下条件字符串就能换区域,比透视表拖字段快得多。
第三套是查找加容错加默认值。IFERROR 包住 XLOOKUP 或 INDEX 加 MATCH,查不到的时候返回指定的提示,而不是让一整列都是 #N/A。再进一步,可以把默认值设成一个后续可以筛出来的标记,比如 =IFERROR(XLOOKUP(A2,C:C,D:D),"待核对"),事后在表里筛一下待核对就能一次性找出所有对不上的记录,这比肉眼对名字可靠得多。这套写法和多条件查找的四种解法对比里的思路一脉相承。
一张表练一遍
光看不如动手。找一张手边现成的表,按下面的步骤走一遍,二十分钟能把书里的核心思路过一遍。先选中数据区域按 Ctrl 加 T 转成表格,给表起个有意义的名字,感受一下结构化引用 =SUM(表1[金额]) 的写法比 =SUM(D2:D500) 直观在哪里。然后在旁边空列写一条 =UNIQUE(表1[客户]),看唯一名单是怎么自动生成的。再往下写一条 =SUMIFS(表1[金额],表1[客户],G2),把 G 列的唯一名单逐个算出金额小计,这时候你已经不靠透视表做出一份分类汇总了。
接着试一次 FILTER:=FILTER(表1,表1[金额]>5000),看大额记录是怎么整行捞出来的。再试 SORT 把它按金额降序排一下。最后把区域从表格改回普通区域,用辅助列加 COUNTIF 重做一次去重,对比两套写法的理解成本。做完这一轮,动态数组、结构化引用、条件统计三件事就都有了肌肉记忆。
练习的时间投入很值。第 4 步的 LET 和 LAMBDA 先不碰,等你写过几条长到自己也看不懂的公式之后,自然会觉得需要它们,那时候学成本最低。中间遇到性能毛刺,随时翻易失函数与性能陷阱排查。
每一步的标准不是会背语法,而是碰到真实表格时手能自己伸向正确的函数。检验方法很简单:找一张上个月做过的旧表,看能不能用新学的函数重做一遍。重做完如果觉得轻松了,就是真的会了。
三个最容易翻车的地方

第一处是动态数组的溢出被挡住。写 =FILTER(A2:F500,B2:B500>100) 的时候,Excel 需要从公式所在格向右向下占用一片空间放结果。如果那片空间里已经有别的数据,屏幕上就会跳出一个 #SPILL!,意思是溢出区域被占用了。解决办法不是改公式,而是把挡住的东西清掉——通常是右边或者下边一格有个空格里藏着内容,看着空其实有数据。点一下警告图标,Excel 会告诉你具体是哪个格挡住的。这个错第一次遇到很懵,知道原因之后就一目了然。
第二处是 FIND 扫出来的位置和长度对不上。用 MID 加 FIND 拆文本时,常见错误是 =MID(A2,FIND("-",A2),3) 取出来带着分隔符。原因在于 FIND 返回的是分隔符本身的位置,要从它的下一位开始取,写法应该是 =MID(A2,FIND("-",A2)+1,3)。这个加一的坑,几乎每个学过文本函数的人都踩过。另外 FIND 区分大小写且不支持通配符,要找上半角斜杠这类特殊字符时得用 SEARCH,SEARCH 不区分大小写且支持通配符。
第三处是 SUMPRODUCT 的条件括号写错。标准写法 =SUMPRODUCT((A2:A100="华东")*(B2:B100)) 里,条件部分必须整体加括号再相乘,漏掉外层括号就会报错。想把条件连接起来用乘号表示且,用加号却不行——加号会把结果加起来,逻辑上不成立。需要或的关系时,写法是两个布尔表达式用加号连接但左右各加一个比较:=SUMPRODUCT(((A2:A100="华东")+(A2:A100="华南"))*(B2:B100))。这个括号加号组合很反直觉,是 SUMPRODUCT 最常出错的地方,用之前先记牢。
冷门函数和快捷键配合最省力
函数解决算的问题,快捷键解决操作的问题,两者配合起来做表速度能再提一档。写公式时,按 Alt 加等号能一键插入 SUM 的自动求和,光标放在数据下方即可,不用手打整个函数。按 Ctrl 加波浪号可以切换显示公式和显示结果,检查一整片公式逻辑时靠它;反过来发给同事前再按一次切回结果视图。按 F4 在编辑公式时循环切换引用方式,从相对到绝对到混合,省去手动敲美元符号。
还有几个和查找函数配套的动作值得养成习惯。Ctrl 加方向键快速跳到数据区边缘,配合 =INDEX(A:A,ROW()-1) 这类公式时定位极快。Ctrl 加 Shift 加方向键选中整片数据,转成表格时一次选中不用拖。名字框里可以直接输入名称跳转到定义区域,用名称管理器维护的表靠它穿梭。函数负责算得对,操作负责做得快,两条腿都练起来才是完整的效率体系,名称相关的技巧见名称管理器进阶。
把这本书读薄
全书二十篇压缩成三句话:动态数组让公式从算一个值变成算一片结果;查找家族的终点是 XLOOKUP,兼容线上的终点是 INDEX 加 MATCH;性能上能不用 OFFSET 和 INDIRECT 就不用。其余细节都是这三句话的展开。需要具体函数的语法和场景时,回前面速查表定位,再点进对应篇章细读。
收藏这份清单就够了
这本书讲的是那些教科书上不常提、但实际工作中很救命的函数。它们不难,难点在于没人告诉你什么时候该用哪一个。速查表解决了查的问题,场景表解决了选的问题,实战清单解决了怎么做的问题,三张表配合起来,你手上就有一套不依赖记忆的工具。忘了语法不要紧,回速查表定位函数名,再点进对应篇章看细节,两分钟就能重新上手。
最后留一句实在话:函数背得再多,不如把一两个用得滚瓜烂熟。AGGREGATE 和 XLOOKUP 这两条练到不用想就能写出来,已经能应付大多数日常需求。剩下的在遇到具体问题时再回来查,边用边记,比一次性背下来牢靠得多。工具为人服务,别反过来被工具牵着走。
常见问题
这些函数在 WPS 里都能用吗
XLOOKUP、UNIQUE、FILTER、TEXTJOIN 在新版 WPS 表格里都能用。LET 支持不稳定,LAMBDA 基本不可用。跨软件分享文件时,保守选择是只用 INDEX 加 MATCH、SUMPRODUCT、AGGREGATE、DATEDIF、TEXTJOIN 这一组,它们在两个软件里都经过验证。WPS 老版本连 TEXTJOIN 都没有,那种环境只能回到菜单和连接符。
学到什么程度算够用
判断标准是能不能覆盖自己每周遇到的表格任务。如果你日常工作是统计和查找,INDEX 加 MATCH、SUMIFS、XLOOKUP、TEXTJOIN 足以应对八成场景。动态数组属于效率倍增器,会了之后做表思路整体改变,但不会也不至于卡死。LET 和 LAMBDA 更像进阶玩具,等确实被长公式折磨过再学不迟。
动态数组和数据透视表冲突吗
不冲突,是两种思路。透视表适合做交互式统计,拖一拖出结果,适合一次性探索。动态数组适合做固定流程的自动化报表,把规则写成公式后源数据一变结果自动更新。需要反复出同一张报表的用函数,需要随时变化角度的用透视表。极少数情况两者结合:用 UNIQUE 出维度列表,再让透视表读它。
AGGREGATE 和 SUBTOTAL 有什么区别
功能定位接近但细节不同。SUBTOTAL 的忽略选项只包括隐藏行和错误值的组合有限,AGGREGATE 的选项更细,能分别控制忽略隐藏行、忽略错误值、两者都忽略,还支持更多函数比如 LARGE 和 SMALL。新表一律用 AGGREGATE,SUBTOTAL 留给兼容老文件的场合。SUBTOTAL 的另一个特点是只对明细数据生效,嵌套分类汇总时自动跳过其他 SUBTOTAL,AGGREGATE 没有这个保护,用在分类汇总结构里要留意。
冷门函数会被淘汰吗
函数只增不减,学会的不会白学。真正会变化的是推荐用法:OFFSET 曾经被广泛推荐做动态区域,现在被 INDEX 和结构化引用取代。所以学函数学机制更重要,懂了为什么,换一种工具也能迁移过去。本书每篇都给了版本和兼容信息,就是这个考虑。
