ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Excel不常见但超实用的隐藏函数:效率提升的冷门利器

Excel不常见但超实用的隐藏函数:效率提升的冷门利器 Excel里到底有多少个函数微软官方文档给的数字是400多个但绝大多数人日常用的不超过20个翻来覆去就是SUM、IF、VLOOKUP、SUMIF这一堆。真正让工作效率拉开的反而是那些平时没人在意、不被教程反复炒冷饭的“不常见”函数。这个系列就是专门整理这些函数有些是冷门但实用有些是热门函数的隐藏用法还有些是老版本Excel里被忽略的高频利器。我会持续更新每一条都附上实际场景和踩坑记录适合所有每天跟表格打交道的人——不管你是行政、财务、数据分析还是程序员偶尔处理Excel往下翻总能捞到一两个能救命的公式。先说好这篇不是教科书不会把400个函数挨个列一遍。我只收自己真实用过、并且确实帮我省过时间的。每个函数都交代清楚会解决什么问题、参数怎么填、有什么坑最后再附一个速查表方便抄作业。1. 为什么Excel里有那么多“不常见”函数1.1 “不常见”不等于“没用”很多人一看“不常见”三个字下意识反应是“这函数恐怕用不上吧”。我反过来说个现象Excel里的函数按使用频率排列头部几个占了90%的搜索量剩下300多个几乎没人搜但不代表它们不行。你想想VLOOKUP之前大家怎么跨表查数手工肉眼比对。XLOOKUP出来之前VLOOKUP是最优解吗INDEXMATCH明明更强只不过没人告诉你。很多函数之所以“不常见”只是因为大多数人没被业务场景逼到那个份上一旦遇到对的需求这些函数就是降维打击。我自己的体会是所谓高手和普通用户的差距往往不在智商而在脑子里装了多少“对应关系”。见到某个需求普通人想半天“能不能用vlookup加辅助列绕过”高手直接敲一个COALESCE式效果的长函数三秒钟搞定。这种对函数库的了解程度就是长期在真实场景里滚出来的。1.2 这个系列的收录标准既然说要持续更新我得把筛选标准讲清楚不然以后看着看着会觉得东一榔头西一棒子。我收录函数主要看四点能解决明确的现实问题不是单纯炫技。比如提取拼音、处理度分秒坐标、动态区域统计这些都是我在实际项目里被问过的需求。有相对不可替代的场景用普通方法能实现但步骤痛苦换这个函数一步到位。容易被搜索引擎忽略或者网上搜到的教程要么是英文直译、要么讲得不清不楚。版本兼容性我标注清楚。Excel 2016、2019、365之间的函数差异很大我用哪个版本测的我就写哪个版本免得你抄回去报错。这个系列不会收录SUM、IF这类人人都会的函数除非它有特殊冷门用法。比如IF配合ISBLANK处理空单元格这种就值得写一写。1.3 一个容易被忽略的大前提版本差异写稿前我得先打个预防针。函数的“不常见”有一部分是历史原因旧版本没有新版本才加的。比如FILTER、UNIQUE、SORT、XLOOKUP这些动态数组函数Excel 2016和2019根本没有Office 365和Excel 2021/2024才有。所以你在网上搜到某个高级函数教程操作之后单元格直接跳出#NAME?十有八九是版本不支持。我建议做两件事第一点开“文件-账户-关于Excel”看下自己装的哪个版本第二如果公司还在用2016碰到动态数组类的函数可以直接跳过改用老函数方案。后面我讲到具体函数时会分别标注“新函数”或“老版本可用”方便你对照。2. 文本处理冷门函数从提取拼音到精准截取2.1 PHONETIC一个被误解的“拼音函数”加隐藏文本拼接器我发现很多朋友搜“Excel提取拼音不带音标”都会搜到PHONETIC。这个函数的中文帮助文档写的是“提取文本中的拼音注音”听起来完全对口。但实际上它在大多数中文版Excel里提取不到拼音。这个坑我专门验证过普通的中文单元格你写PHONETIC(A1)返回结果往往是空字符串因为函数只提取日文假名或中文注音字符而中文Excel默认并没有给汉字生成注音。个别情况下能提取到是因为单元格要么用了微软拼音输入法自带的“拼音指南”功能要么开启了特殊语言设置。所以如果你想用这个函数做“汉字转拼音”大概率会翻车。想实现这类需求还是老老实实用Power Query添加列、用VBA模块或者网上现成的拼音转换插件。但PHONETIC有个隐藏价值非常值得说它可以快速连接一个区域内的所有文本而且方式比运算符和CONCAT更自然因为它的参数直接引用区域不需要逐个单元格式拼接。比如A1:A10里有10段文字PHONETIC(A1:A10)会把这十段内容原样拼接成一个字符串中间不带空格。在整理备注、合并摘要这种场景下非常好用。注意一个细节PHONETIC拼接时是自上而下、从左到右也就是按单元格在区域内的扫描顺序不会乱跳。我这里顺手劝退一个常见操作千万别觉得自己用PHONETIC取不到拼音就是电脑坏了。检查一下单元格里有没有“拼音指南”类型的注音没有的话这函数取不出中文拼音是正常现象。2.2 MID、FIND提取第几位到第几位“excel提取第几位到第几位”是搜索热词对应的函数其实就是MID。语法很简单MID(文本, 起始位置, 要提取的字符数)。从第几位开始、取几个字一目了然。比如身份证号第7位开始取8位就是出生日期MID(A2,7,8)如果A2是“110101199203150011”返回“19920315”。这个公式一出来生日列就齐了。需要注意的是日期类的文本用MID提取后是文本型数字要变成真日期还得套DATE函数DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2))至于“动态提取第几位”就需要FIND先定位。举个例子文件名格式是“20240115_华东区_周报.xlsx”你想取出中间那段“华东区”固定的MID会写死位置但前后字段长度一变就废了。改成FIND定位下划线位置再截取才稳MID(A2, FIND(_,A2)1, FIND(_,A2, FIND(_,A2)1) - FIND(_,A2) - 1)这个公式的逻辑是第一个下划线位置1作为起始两个下划线之间的差值减1作为长度。提取出来的就是两段下划线之间的内容。别看它绕这种方法在处理有规律分隔符的字符串时真的能一劳永逸。2.3 TRIM和CLEAN看不见的“脏数据”杀手做数据的人都有过这种经历VLOOKUP明明两个表的值看起来一模一样偏偏匹配不上。排了半天才发现一个单元格后面跟了个空格另一个中间藏着换行符。我亲眼见过有人为这种事先做一列辅助列手工清理吭哧吭哧干了半小时。其实Excel早就给了两个专门治这类问题的函数TRIM去掉文本首尾空格多个连续空格压成一个。CLEAN去掉文本里的换行符、回车符和大部分不可见控制字符。实际使用中建议组合起来写TRIM(CLEAN(A1))规则是先把不可见字符清掉再做空格压缩。这两个函数极度适合处理从ERP、OA、SAP甚至网页复制下来的文本。我处理过一些从第三方系统导出的Excel里面每个字段后面都带着一个神秘的山地字符肉眼看不见CLEAN一上去就消失了。配合这个组合公式再套VLOOKUP或XLOOKUP匹配率瞬间拉满。2.4 SUBSTITUTE替换、去符号、转数字SUBSTITUTE的经典场景是“Excel数字带千分符怎么变成真数字”。比如单元格里显示“1,200,000”看着是个数字但你一SUM就发现求和结果为0因为它是文本。用SUBSTITUTE把逗号去掉再转成数值SUBSTITUTE(A1,,,)*1写完之后单元格会显示1200000而且乘以1之后Excel自动把它当成数字参与计算。这种去千分位的需求特别常见尤其是从ERP导出的报表或者像“abap上传excel数字去除千分符”这种SAP场景中传下来的文件里。还有一种场景从系统里导出的换行符把单元格内容折成了多行你不想让它在单元格内换行要把它替换成空格或顿号公式是SUBSTITUTE(A1,CHAR(10),、)CHAR(10)就是换行符。注意这个写法在公式里看可能不太直观但它就是标准做法。要是换行不生效先看有没有开“自动换行”格式公式处理后没开换行自然看不出效果。3. 多条件统计的隐藏利器SUMIFS、SUMPRODUCT和动态数组FILTER3.1 SUMIFS使用细节与两个容易踩的坑“excel sumifs函数的使用”长期霸占热搜说明很多人知道它能多条件求和但用起来总出幺蛾子。语法是SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...)注意SUMIFS的求和区域是放在第一位的这跟SUMIF不一样。我见过太多人把求和区域放到最后看到报错才意识到参数顺序搞反了。具体例子统计华东地区、金额大于1000的订单总和SUMIFS(D2:D100, A2:A100, 华东, D2:D100, 1000)第二个坑是条件区域和求和区域的行数必须一致否则函数会返回#VALUE!。有些同学喜欢整列引用比如SUMIFS(D:D, A:A, 华东)在老版本里没问题但在某些场景下配合整列会导致计算量暴涨整个表卡半天。大数据量时我建议区域写成固定范围D2:D10000既能覆盖数据又不会让Excel算到天荒地老。还有一个建议如果你的条件是“是否包含某个字”这种模糊匹配可以用通配符星号。比如统计名称里带“电池”的产品销售额SUMIFS(D2:D100, B2:B100, *电池*)SUMIFS要强调的一点是多条件的连接逻辑默认是“与”也就是所有条件同时满足。如果要做“或”逻辑比如统计华东或华南那就不能只靠SUMIFS得SUMIFS加SUMIFS或者用SUMPRODUCT。3.2 SUMPRODUCT一个被低估的全能型选手如果说SUMIFS专治“与”条件那SUMPRODUCT就是通吃“与”“或”甚至复杂数组运算的万金油。它的核心作用是“对相同区域先相乘再求和”但利用它做条件统计才是真正的高级用法。最常见的写法是利用“布尔值乘1”做多条件计数SUMPRODUCT((A2:A100华东)*(B2:B1001000))这段公式的意思是先判断A列是不是华东得到一个由TRUE/FALSE组成的数组再判断B列是否大于1000得到另一个数组。两者相乘时TRUE自动当成1FALSE当成0能变成1的就是两个条件同时满足的行。所有1加起来就是满足条件的行数。如果要做条件求和把结果再乘以求和区域SUMPRODUCT((A2:A100华东)*(B2:B1001000)*D2:D100)当然还有加权平均、按月汇总之类的高级用法核心思路都一样。SUMPRODUCT最爽的一点是不需要按CtrlShiftEnter直接回车就出结果这在老版本Excel里是少数能做到“数组运算不自动换数组形态”的函数。但也要提个醒条件区域一旦有文本型数字比如数字前面带个绿色的三角角标参与乘法运算时会直接报#VALUE!需要先转成数值。3.3 FILTER、UNIQUE、SORT新版Excel里改写多条件筛选的套路Office 365和Excel 2021以上版本里最“不常见”但最值得学的函数恐怕就是FILTER了。它在功能上等价于“高级筛选”但不需要设置复杂条件区域一个函数直接搞定还能自动返回动态数组。基础用法FILTER(A2:C100, (B2:B100华东)*(C2:C1001000), 没有符合条件的数据)这个公式直接返回所有满足“华东且金额1000”的整行数据。第二个参数里的乘号就是“与”改成加号就是“或”。这个函数跟我前面讲的SUMPRODUCT逻辑其实一脉相承都是对逻辑数组做乘法运算。区别在于FILTER返回的是数据本身而不是计数或求和。UNIQUE和SORT一般跟FILTER配合使用。比如提取不重复的客户名单并按金额降序排序SORT(UNIQUE(A2:A100), 1, -1)这三个函数组合起来基本可以替代网页端的筛选器和大部分数据透视表操作。我最近处理一张一万多行的订单明细以前要先用数据透视表做汇总再导出再匹配现在直接一条FILTER公式自动出结果数据源一更新结果跟着变省了不知多少重复操作。4. 查找引用进阶INDEXMATCH、XLOOKUP与坐标点位置不对4.1 为什么INDEXMATCH比VLOOKUP强VLOOKUP的局限性写出来能出一本书只能从左往右查、插入列就崩、查找列必须在首列。遇到“根据姓名找工号”这种反向查询VLOOKUP直接原地去世。INDEXMATCH则可以自由指定“我拿什么查”和“我返回什么”。标准写法INDEX(返回区域, MATCH(查找值, 查找列, 0))MATCH负责定位“查找值在查找列中的第几行”INDEX负责在那个行号上把返回区域的值捞出来。举个实际例子A列是姓名、B列是工号现在要根据工号找姓名VLOOKUP做不到但INDEXMATCH轻松搞定INDEX(A2:A100, MATCH(E20088, B2:B100, 0))这个组合的另一个好处是返回列是哪一列完全由你说了算。中间无论加多少辅助列都不会影响结果。对经常改报表结构的人来说这种稳定性是救命级的。4.2 XLOOKUP新函数里的“终极缝合怪”如果你已经在用新版Excel我强烈建议直接上XLOOKUP它把VLOOKUP、HLOOKUP、LOOKUP、INDEXMATCH的活全包了。语法XLOOKUP(查找值, 查找列, 返回列, 未找到时的提示)比如查找某个订单对应的金额查不到时显示“无此订单”XLOOKUP(E2, A2:A100, D2:D100, 无此订单)看着跟VLOOKUP差不多但它支持从左往右、从右往左、从上往下、从下往上任意方向查找并且不需要精确返回首列。还有一个实用功能是“近似匹配”比如根据销售额查找提成比例区间XLOOKUP可以按区间匹配老函数就得用LOOKUP配合排序。不过我得强调一点如果你要把文件发给别的公司、别的机构而对方用的是旧版ExcelXLOOKUP和其他动态数组函数会直接变#NAME?。我自己通常的做法是自己用的模板随便用新函数发给别人的工作簿一律用兼容性更好的INDEXMATCH或者SUMIFS。这个习惯在协作场景里太重要了。4.3 从热词“arcmap excel 坐标点 位置不对”说开去有个热搜词我特别想聊一聊“arcmap excel 坐标点 位置不对”。这其实不完全是Excel教程的问题而是GIS从业者把Excel坐标点数据导入ArcMap后发现点位全跑到奇怪的地方去了。原因通常出在数据预处理上。最常见的一种情况是Excel里的经纬度是度分秒格式比如“120°3015”但ArcMap只认十进制度。这种文本直接导入要么字段类型是文本要么数值直接错乱。解决办法就是善用文本解析函数把度分秒转成十进制度。公式参考LEFT(A1,FIND(°,A1)-1)*1 MID(A1,FIND(°,A1)1,FIND(,A1)-FIND(°,A1)-1)/60 MID(A1,FIND(,A1)1,FIND(CHAR(34),A1)-FIND(,A1)-1)/3600解释一下第一部分提取度数第二部分提取分数除以60第三部分提取秒数除以3600三者相加就是十进制度。注意秒数后面那个双引号在公式里用CHAR(34)代替比较直观不容易出错。转换完之后还得检查这几列是不是“数字”类型别是文本最后再去ArcMap里设置正确的坐标系基本就能对齐了。还有一种“位置不对”的情况纯粹是小数点位数问题Excel单元格显示6位小数但实际值只有3位小数精度远距离缩放时偏差能到几百米。这时可以用ROUND函数把经纬度统一成小数点后6位ROUND(A1,6)总之坐标点问题排查顺序建议是先看格式文本还是数字再看单位度还是度分秒最后查坐标系。Excel函数在这个链条里主要解决前两步。5. 动态区域、可视化小技巧OFFSET、INDIRECT、SEQUENCE、REPT5.1 OFFSET让统计区域跟着数据量自动伸缩OFFSET函数用来引用一个动态变化的单元格区域。语法看着复杂OFFSET(基准点, 向下偏移行数, 向右偏移列数, 返回区域高度, 返回区域宽度)但用起来非常香。典型场景销售表每天往下加新数据你想统计最近7天的销售额老办法是每天手动改公式区域用OFFSET可以自动锁定最后7行SUM(OFFSET(A1, COUNTA(A:A)-7, 0, 7, 1))COUNTA(A:A)算出A列非空单元格数量减去7就是最后7行起始位置。这个组合公式的好处是数据更新多少行统计范围都自动跟随不用每次手动拖着改区域。配合SUM、AVERAGE、MAX这些函数基本能解决所有“范围按需伸缩”的问题。OFFSET有个隐藏坑它是一个“易失性函数”工作簿里用多了每次你改任意单元格Excel都要重算一遍所有OFFSET公式。所以建议只在必要的表格里用别全工作簿几百个OFFSET一起上否则打开文件会卡到怀疑人生。5.2 INDIRECT跨表动态引用的“胶水”INDIRECT的功能是“把文本变成引用”。它可以让你用一个单元格里的文字来指定引用哪个工作表。比如你有12个月的表名为“1月”到“12月”想在汇总表里取某个月C列合计INDIRECT(A1!C1)A1里填“3月”时公式等同于取“3月”工作表C1的值。月末换表时改一下A1下拉框或者月份单元格即可不用一条条改公式。这在做多表汇总时极其顺手。注意一点INDIRECT引用的工作表名如果带空格比如“华东区域 销售明细”公式里要加单引号。写成INDIRECT(A1!C2)这种写法即使表名里包含空格、连接符也不会出错。这也是为什么我说它是“胶水”——专门用来把散落在多个Sheet里的数据粘起来。5.3 SEQUENCE自动生成序号、日期序列SEQUENCE是个新函数作用是根据行列参数生成数组序列。最简单的SEQUENCE(10)能自动生成一列1到10。这在制作数据录入模板时非常有用比如往下拉公式时辅助列序号永远自动补齐不用手动往下拖。更妙的用法是生成连续日期。比如做一个月度甘特图或者考勤表需要自动生成当月所有日期DATE(2024,1,1)SEQUENCE(31,1,0,1)这个公式生成的日期从2024年1月1日开始连续31天。只要改DATE参数就能切换月份。比手工填充快得多而且格式不受限制。5.4 REPT用Excel画出简易甘特图和进度条“甘特图excel制作教程”也是个高热词。很多人一看甘特图就想着“插入-图表-条形图”但遇到需要根据日期区间自动生成的动态甘特图图表反而笨重。其实Excel里有个叫REPT的函数它的作用只是把一段文本重复N次配合单元格背景色能轻松做出轻量级甘特图。REPT的语法是REPT(文本, 次数)。比如REPT(█, 5)返回“█████”。我习惯用这个函数做项目进度条如果项目完成度在C列进度条用公式生成REPT(█, ROUND(C2*20,0)) REPT(░, 20-ROUND(C2*20,0)) TEXT(C2,0%)这段公式的思路是把100%的进度拆成20个格已完成用实心方块未完成用浅色方块最后附上百分比文本。放在单元格里一列项目一列进度条可视化效果完全不输图表。REPT函数本身不仅冷门而且简单到没存在感但跟甘特图、进度条一结合画风完全不同。6. 信息、格式与错误处理函数日常中的“小侦探”6.1 CELL和INFO找出单元格和内嵌环境的隐藏信息有些时候我们需要知道一个单元格的地址、文件路径、工作表名等元信息这时候CELL函数就能派上用场。CELL(address, A1)返回A1的绝对地址比如“$A$1”。CELL(filename, $A$1)返回当前工作簿的完整路径和当前工作表名比如“C:\Users...\工作簿1.xlsx”加“Sheet1”。注意这个公式要求文件已经保存过如果新建未保存的空白工作簿返回结果为空。INFO(directory)返回当前打开文件所在文件夹路径。这些函数在日常操作中看着“没用”但在做模板、做自查报告时很实用。比如你给领导做个数据看板想在标题处动态显示“数据来自XX工作簿”CELL(filename,$A$1)配合MID截取就能自动显示文件名。还有一个实用场景用CELL(address,...)辅助条件格式做当前单元格高亮这需要配合IF和ISFORMULA判断。6.2 ISFORMULA、FORMULATEXT扒别人的表格不用一个个点接到同事发来的表格想看某些单元格到底是不是公式、公式内容是什么一个个点太烦。ISFORMULA和FORMULATEXT就是专治这种需求的侦察兵。ISFORMULA(A1)如果A1是公式返回TRUE否则FALSE。FORMULATEXT(A1)把A1中的公式文本直接取出来。配合条件格式可以直接把整个工作表里所有含公式的单元格标绿一眼扫过去就知道哪些是被计算出来的哪些是手工录入的。FORMULATEXT更实用审计别人报表时直接把公式对象全部拉出来放到旁边一列方便打印和核对。还有一类错误处理函数也属于这个家族ISNA、ISERROR、ISERR、IFERROR、IFNA。它们不是冷门但很多人只知IFERROR忽略了IFNA。区别在于IFERROR连“除以0”“格式错误”也会拦下来这可能掩盖真实问题而IFNA只处理“查不到匹配项”这一种错误更精准。如果你担心公式有其他意外错误被吞掉就优先用IFNA(XLOOKUP(E2,A:A,D:D), 未找到)6.3 聊聊“coalesce函数在Excel里怎么实现”搜索热词里出现了“coalesce函数用法”这是数据库里的经典函数作用是从多个参数里返回第一个非NULL值。Excel里没有直接的COALESCE函数但有两种思路可以模拟第一种用IF和ISBLANKIF(ISBLANK(A1), B1, A1)这个判断逻辑就是一个简化版COALESCEA1为空取B1A1不为空取A1。如果要对多个单元格做“取第一个非空”嵌套几次就行IF(ISBLANK(A1), IF(ISBLANK(B1), C1, B1), A1)第二种如果你是Office 365版本可以用LAMBDA自己定义一个简化版LAMBDA(v1, v2, IF(ISBLANK(v1), v2, v1))(A1, B1)这样写的好处是逻辑封装在LAMBDA里名字可以命名成COALESCE以后在公式里直接引用。新版本的Excel开放了自定义函数能力这才是真正的“函数自由”。6.4 CHOOSE一眼看穿“select函数”的真相热搜词里还有个“select函数”很多人问。Excel里没有SELECT这个函数SELECT是SQL和Python等语言里的概念。但Excel里有个非常接近的工具叫CHOOSE语法是CHOOSE(索引值, 第一个选项, 第二个选项, ...)比如根据B1的数字返回对应季度名称CHOOSE(B1, 一季度, 二季度, 三季度, 四季度)这个概念也可以配合MATCH做“区间分段”比如根据成绩返回评级CHOOSE(MATCH(A1, {0,60,80,90}, 1), 不及格, 及格, 良好, 优秀)这段公式用MATCH在{0,60,80,90}数组中定位A1所在的分段再通过CHOOSE映射成文字。很多你搜“select函数”想要的效果用CHOOSE基本都能实现而且老版本Excel也支持。7. 函数反踩坑常见报错排查与速查表7.1 Excel函数里那些常见的“妖蛾子”函数写得再溜遇到报错还是头疼。我整理了一个速查表教你一眼认出错误原因报错常见原因排查建议#NAME?函数名拼错、版本不支持、文本没加引号逐个检查函数名尤其新版函数在老版本中会出现这个错#VALUE!文本参与了数学运算或公式中参数类型不对检查“求和区域”是否为文本型数字#N/A查找类函数找不到匹配值确认查找列数据格式一致是否有前后空格#REF!公式引用的单元格被删除撤销删除操作或重新编辑公式区域#DIV/0!除数为0或空白用IFERROR包一层或改成IF条件判断#NUM!数值溢出或日期计算为负检查日期格式确认参数范围#CALC!动态数组函数遇到空数组FILTER的第三参数补上“无结果”提示另外还有一个极其常见的误导性报错不是Excel里的而是命令行窗口弹出的“无法将xxx项识别为cmdlet、函数、脚本文件或可运行程序的名称”。很多朋友在搜函数时被这类结果淹没傻傻分不清。这里我必须说明这个报错跟Excel函数没有半毛钱关系是PowerShell环境中命令工具没安装或环境变量没配置。你搜git、pip、pnpm、mvn相关的函数用法时别把这类结果当成公式参考。7.2 真实案例SolidWorks提示“未检测到Microsoft Excel的有效版本”热搜里有个非常典型的第三方软件联动问题“安装sw出现这样的字样 怎么解决 未检测到microsoft excel 的有效版本”。这不是Excel函数本身的问题而是SolidWorks在安装或运行时检测Excel组件失败。我的排查思路是固定的先确认Excel能否正常打开。如果打不开说明Office本身有问题用Office安装程序做在线修复。如果Excel能打开问题通常出在版本类型上——很多同学装的是Windows商店版的Office或者精简版/绿色版ExcelSolidWorks识别不到它所需的COM组件解决办法是换用完整版Office安装包含Excel完整桌面应用并确保Excel能够正常启动并弹出“同意协议”之类的初始化界面。其次看Office位数。SolidWorks的旧版本和不少插件依赖32位组件如果Office装的是64位第三方软件也可能读不到。遇到这种情况优先去SolidWorks官方文档查当前版本要求的是32位还是64位Excel对应安装就行。最后一个保底方案是修复Office安装控制面板-程序和功能-Microsoft 365/Office-更改-快速修复或在线修复修复完重启再重新打开SolidWorks。这个案例我特意放进来是想提醒大家函数教程只是Excel世界的一小部分第三方软件调用Excel的时候出问题的往往不是表格内容本身而是Excel组件能不能被外部程序正常调用。7.3 常用不常见函数速查表把本文出现的所有函数整理成一个表方便以后直接复制公式灵感函数作用一句话示例PHONETIC拼接区域文本或提取注音字符PHONETIC(A1:A10)MID从指定位置截取N个字符MID(A2,7,8)FIND查找某字符在文本中的位置FIND(_,A2)TRIM清理首尾空格压缩连续空格TRIM(A1)CLEAN清除换行符及不可见字符CLEAN(A1)SUBSTITUTE替换指定文本SUBSTITUTE(A1,,,)*1SUMIFS多条件求和SUMIFS(求和区,条件区1,条件1)SUMPRODUCT多条件计数/求和/数组运算SUMPRODUCT((A:A华东)*(B2:B1001000))FILTER动态筛选数据并返回数组FILTER(A2:C100,(B2:B100华东))INDEXMATCH万能查找INDEX(A2:A100,MATCH(E1,B2:B100,0))XLOOKUP新版全能查找函数XLOOKUP(E2,A:A,D:D,无结果)OFFSET动态引用区域SUM(OFFSET(A1,COUNTA(A:A)-7,0,7,1))INDIRECT把文本变成引用INDIRECT(A1!C2)SEQUENCE自动生成序列数组SEQUENCE(10)REPT重复文本N次REPT(█,5)CELL返回单元格或文件信息CELL(filename,$A$1)ISFORMULA判断单元格是否含公式ISFORMULA(A1)FORMULATEXT提取公式文本FORMULATEXT(A1)CHOOSE按索引返回选项列表CHOOSE(B1,一季度,二季度)IFNA只拦截#N/A错误IFNA(XLOOKUP(...),未找到)7.4 我常用的三个“抄作业”小技巧函数写多了你就会发现真正提升效率的不是某一个函数而是一套调试和排查的组合动作。我分享三个自己天天在用的技巧第一个是F9局部运算调试。在公式编辑状态下用鼠标选中公式中的某一段比如选中FIND(_,A2)按F9Excel会直接算出那一小段的实时结果。这样拆解复杂公式特别方便不用每次全量计算出错后靠肉眼猜。注意调试完一定要按Esc退出别按回车否则公式就被替换成计算结果了。第二个是“公式求值”逐条跟踪。在“公式”选项卡里点“公式求值”可以一步一步看Excel怎么计算整个公式这对排查嵌套函数和逻辑关系极有帮助。我遇到复杂的长公式总是先用这个功能跑一遍确认每一步结果再放回正式表格。第三个是Ctrl~显示所有公式。按一次当前工作表所有公式以文本形式展示再按一次恢复原状。这个技能在检查别人做的报表、以及自己排查公式区域有没有错位时效率极高。结合ISFORMULA条件格式标记基本能做到全表公式审计两分钟完成。最后再分享一点体会这个系列之所以叫“不常见”是因为我踩过太多跟冷门函数相关的坑。印象最深的是有次帮同事处理坐标点错位问题前前后后排查了半小时最后发现只是坐标列里混了几个文本格式的度分秒字符串。一张表里几百行只有五六行是文本肉眼根本看不出来但ArcMap一导入全线跑偏。这就是典型的数据预处理问题用文本函数清一遍问题就没了。类似这种“函数冷门但场景真实”的案例我会一直记下去持续在这里更新。如果你手头也有自己用过的冷门函数或者遇到过类似的坑欢迎在评论区补充我整理进后续内容时都会标注来源。
返回列表