Excel函数公式大全整理:SUMIFS、查找引用与PDF导出实战 简介Excel函数公式大全及举例整理版PDF文档面向需要系统掌握Excel常用函数的办公人员、数据分析初学者及软件开发者。文档覆盖数学、逻辑、文本、判断四大类函数包含SUM、SUMIF、COUNTIF、AVERAGE、ROUND、RANK、IF、IFERROR、LEFT、RIGHT、MID、CONCATENATE、FIND、EXACT、TEXT、VALUE等高频函数并配有大量可直接套用的公式示例与参数说明便于速查与实战练习。资源为单个PDF文件压缩包整体大小仅1.33MB轻量易下载方便离线查阅。目前已有2852人学习使用内容编排由基础概念到统计、查找与引用公式逐层展开既有入门讲解也有进阶技巧诸如条件求和、多条件判断、隔列求和、多表汇总、VLOOKUP查找等实用场景均有详细示例适合日常办公提效或系统学习Excel函数体系。1. 拿到这份“excel函数公式大全及举例[整理].pdf”先别急着背公式把《excel函数公式大全及举例[整理].pdf》下载到本地之后最先要做的不是从前言开始啃函数列表而是先想清楚你真正缺的是一张能搜出答案的索引还是一组落到单元格里马上能用的公式。很多自称看过“大全”的人碰到报表还是只会 SUM 和 IF原因不是记性差而是没把函数按“查找引用、条件统计、文本处理”这几个族拆开理解。这篇文按这个思路展开先从 SUMIFS 这类多条件求和讲起再讲查找引用组合然后把手头这张函数表整理成可打印、可检索、可回读的 PDF最后处理 NOW() 这类每次打开都会让 PDF 结果变来变去的易失函数。2. 函数公式大全里最该先吃透的是 SUMIFS多条件筛选的求和参数怎么设2.1 SUMIFS 函数的使用条件区域与求和区域的配对规则在许多“excel函数公式大全”类资料里SUMIFS 几乎都被排在统计函数的前三页。多条件筛选这个场景Excel 用户首选就是它。语法比 SUMIF 多了一个位置上的坑——求和区域放在第一参而不是像 SUMIF 那样放在最后一参SUMIFS(订单表!E:E, 订单表!A:A, 华东, 订单表!C:C, DATE(2024,1,1))这段公式的意思对“订单表”工作表的 E 列金额求和条件是 A 列等于“华东”并且 C 列日期不早于 2024-01-01。注意几个参数细节求和区域订单表!E:E放在最前面条件区域和条件必须成对出现顺序不能乱第三个条件里必须放在引号内再用和日期函数拼接。如果直接把2024-01-01写进去Excel 会把它当作文本比较结果几乎总是 0因为文本排序和日期序列值排序不是一回事。条件里的比较运算符、通配符也要分清。华东是精确匹配华东*匹配以“华东”开头的所有文本*华东*匹配包含“华东”的文本想匹配星号本身写成~*。引用单元格作为条件时不需要加引号比如G1G1 放一个真正的日期。这个习惯比在公式里硬编码日期更容易维护。下面是整理函数手册时最值得放进去的错误对照表很多 PDF 版本的“大全”恰恰漏了这页。常见错误写法问题正确写法SUMIFS(A2:A100, B2:B100, 华东)求和区域与条件区域写反SUMIFS(B2:B100, A2:A100, 华东)SUMIFS(E:E, A:A, 华东)文本条件漏引号会被当作名称引用SUMIFS(E:E, A:A, 华东)SUMIFS(E:E, C:C, 2024/1/1)日期以文本参与比较SUMIFS(E:E, C:C, DATE(2024,1,1))SUMIFS(E:E, A:A, *华东)想匹配“包含”但通配符位置不对检查通配符位置*华东*才表示包含还有一类容易忽略的坑是区域不齐求和区域写E:E条件区域写A2:A100两者行数不一致SUMIFS 会直接返回#VALUE!反过来两个区域都写整列虽然能算但每次重算都要扫描一百多万行。维护一份长寿命报表时我一般明确写A2:A100这类有限区域或者把 A:E 整体转成 Excel 表格CtrlT用结构化引用规避这个问题。提示整列引用看着省事却会让 SUMIFS 每次重算都扫一遍整张工作表几万行数据不觉得几十万行时卡顿感会非常明显。2.2 从 SUMIFS 到 SUMPRODUCT多条件统计的另一条腿SUMIFS 只能做“多条件求和”计数要换 COUNTIFS求平均值要换 AVERAGEIFS。当条件里出现“不等于、包含、多个并列”这类复杂逻辑时这三个函数的条件表达式写起来会很别扭这时候换 SUMPRODUCT 反而更直白SUMPRODUCT((A2:A100华东)*(C2:C100DATE(2024,1,1))*E2:E100)括号里的比较运算逐个算出布尔数组TRUE在乘法里自动转成 1FALSE转成 0。三个数组按位相乘后只有全部条件为真的行才会留下 E 列的原值最后求和。这个公式没有任何函数专用参数所有逻辑都由运算符完成条件可以任意扩展比如再乘一个(D2:D100作废)。SUMPRODUCT 通常比 SUMIFS 慢因为 SUMIFS 对等值条件会走哈希优化而 SUMPRODUCT 是逐行扫描。另一个容易踩的坑是 E 列里不能有文本或错误值否则乘出来是#VALUE!。如果数据源来自数据库导出导入时先做一次清洗把文本型数字转成真正的数字再交给 SUMPRODUCT。用逗号分隔写法SUMPRODUCT((条件1)*(条件2), E2:E100)结果一样只是把乘法拆成两个区域做内积。2.3 条件统计前的数据准备文本数字与空值无论 SUMIFS 还是 SUMPRODUCT最大的隐性错误都不是函数本身而是数据没清洗。从 CSV 或数据库导出的表里金额列经常是文本数字单元格左上角带绿色小三角。SUMIFS 对文本型数字参与条件匹配时经常匹配不上结果不是报错而是静默少算几行这类问题几乎不会写进 PDF 版函数大全所以你要在自己的检查清单里补上。清洗办法是在旁边建一个辅助列写VALUE(A2)或者直接分列一次选中列数据→分列→完成Excel 会把文本数字转成数字。空值参与比较时E2:E100里的空单元格在 SUMIFS 下会被当作 0 或忽略要看具体版本SUMPRODUCT 里空单元格乘出来是 0不影响求和但影响计数。统计前先用COUNTBLANK(E2:E100)探一眼空行数量比写完公式再去猜数据干净多了。3. 查找引用类函数公式的搭配VLOOKUP、INDEX 与 MATCH 的边界3.1 VLOOKUP 的四参数与首列约束查找引用是“excel函数公式大全”里篇幅最大的一块其中 VLOOKUP 出场率最高。它一共四个参数查找值、查找区域、返回列号、匹配方式。区域必须从包含查找值的那一列开始返回列号是相对这个区域的第一列数出来的偏移而不是工作表的真实列号。VLOOKUP(B2, 产品表!$A$2:$D$100, 4, FALSE)B2是当前表里的产品编号产品表!$A$2:$D$100是被查区域A 列是产品编号D 列是价格4表示返回区域第 4 列也就是 D 列的价格FALSE是精确匹配。区域要加绝对引用否则向下填充时区域会跟着跑。匹配方式写0和FALSE等价写TRUE或省略则进入近似匹配——近似匹配要求查找区域第一列严格升序排列很多人在这里返回奇怪结果就是因为默认了真值而数据没排序。VLOOKUP 在函数大全里被反复举例但边界非常明确查找列必须位于区域最左侧这是它最大的限制。一旦表结构调整比如把产品编号从 A 列挪到 C 列几乎所有 VLOOKUP 公式都要改。所以在长期维护的报表模板里我一般直接推荐 INDEX MATCH。3.2 INDEX MATCH列位置变了也不怕INDEX 返回某个区域内指定行、列交叉处的值MATCH 返回某个值在一列或一行中的位置。两者拼起来就是“先找位置再取值”INDEX(成绩表!E:E, MATCH(B2, 成绩表!A:A, 0))MATCH(B2, 成绩表!A:A, 0)在 A 列里精确查找 B2返回行号INDEX(成绩表!E:E, 行号)取出该行的 E 列值。MATCH 的第三个参数 0 表示精确匹配写 1 或 -1 分别对应升序或降序下的近似查找日常报表里九成用法都是 0。这个组合的好处是查找列和返回列可以任意摆放函数只关心它们各自所在的一整列不需要拼一个连续区域。做双向交叉查询时INDEX MATCH 的优势更明显。比如左侧是部门列表、上方是月份想取“华东”加上“2024-03”的交叉点INDEX($B$2:$E$10, MATCH($G$2, $A$2:$A$10, 0), MATCH($H$2, $B$1:$E$1, 0))$G$2放部门名第一个 MATCH 在 A2:A10 找行位置$H$2放月份第二个 MATCH 在表头 B1:E1 找列位置INDEX 按行、列两个偏移量取交叉点。这个写法比嵌套 VLOOKUP 直观得多也是双条件查找的标准答案。要注意 MATCH 里的查找值与查找区域的类型必须一致文本对比数字会直接返回#N/A。3.3 XLOOKUP 与 IFERROR 收尾新版 Excel 里的 XLOOKUP 正在逐步取代前两个函数XLOOKUP(B2, 产品表!A:A, 产品表!D:D, 未找到)。三个参数分别是查找值、查找数组、返回数组第四个可选参数是找不到时的返回值。它没有首列约束返回列直接写区域性能也比 VLOOKUP 好。旧文件在别人电脑上打开时版本兼容仍是问题所以我只把 XLOOKUP 写进自己的个人工作簿给团队共享的模板里仍然用 INDEX MATCH。三套方案里VLOOKUP 适合快速做一次性的小查找INDEX MATCH 适合模板化报表XLOOKUP 适合新版 Office 365 环境。下面这张对照表放进你的函数手册 PDF 里比单纯堆函数清单有用得多。场景推荐函数理由简单单列查找区域固定VLOOKUP写法短学习成本低查找列不在首列INDEX MATCH不受列位置限制需要返回多列或找不到时给默认值XLOOKUP参数直白支持默认值查找值可能不存在要求不显示 #N/AIFERROR 包裹任意查找统一兜底IFERROR 是这些查找公式的收尾工具IFERROR(VLOOKUP(...), 未找到)。它会把#N/A、#VALUE!、#REF!全部拦下来替换成你指定的文本。但它也会把公式本身真正的错误盖住比如区域引用失效排查时反而更难。我的习惯是只在最外层收口先在内层单独求值确认无误再用 IFERROR 包上去。4. 把函数公式大全整理成 PDF打印设置、表格转换与解析回读4.1 从 Excel 打印为 PDF打印区域与打印标题手头这份《excel函数公式大全及举例[整理].pdf》最常见的来源是自己整理完再打印成 PDF。直接 CtrlP 打印大宽表一定会出现列被截断、下一页没有表头的情况。标准做法是先设置打印区域页面布局→打印区域→设置打印区域选中 A1 到最后一个有内容的列再在“打印标题”里把顶端标题行设为第 1 行这样 PDF 每一页都会重复表头。列宽超过一页宽时把页面设置改成横向“适合宽 1 页高 1 页”的缩放会牺牲字号长表格我更推荐取消缩放让列在横向页面里完整展开。Excel 自带的“文件→导出→创建 PDF/XPS”会保留分页符但不会自动生成书签目录。如果手册有几十个分类 Sheet导出 PDF 后每个 Sheet 会成为左侧书签的一级节点代价是 Sheet 名必须起得像章节名比如01_sumifs、02_vlookup。PDF 里要跳转时没有书签翻页会找到手酸这也是很多“整理版”PDF 难用的原因。4.2 LibreOffice 命令行把 xlsx 批量转 PDF在 Linux 服务器或 CI 流程里把 xlsx 转 PDF我一般用 LibreOffice 的 headless 模式一条命令就能批量转换soffice --headless --convert-to pdf --outdir ./pdf_output 函数公式大全.xlsx--headless让 soffice 不弹图形界面--convert-to pdf指定转换目标格式--outdir指定输出目录。工作簿里有多个 Sheet 时LibreOffice 会全部渲染进同一个 PDF顺序按 Sheet 标签顺序走。工作表名包含中文时输出文件名保持原名不变Linux 下一般没问题但路径里尽量不要有空格否则整个路径要加引号。转换前把数据区域里多余的几万行空行删掉否则 PDF 里会出现大批空白页这是命令行转换最常见的翻车点。4.3 Markdown 表格转换 Excel 再导出很多函数公式手册最初是 Markdown 格式的表格比如自己维护的函数表.md。直接用 Excel 打开 md 文件会乱常见做法是先用 Python 把它转成 xlsx再走前面的打印链路。Markdown 表格本身是|分隔的纯文本手工解析几行就够了import pandas as pd md_table | 函数 | 用途 | 示例 | | --- | --- | --- | | SUMIFS | 多条件求和 | SUMIFS(E:E, A:A, 华东) | | INDEX | 按位置取值 | INDEX(A1:B2, 2, 1) | rows [] for line in md_table.strip().splitlines(): line line.strip() if not line or set(line).issubset(set(|:- )): continue cells [c.strip() for c in line.strip(|).split(|)] rows.append(cells) df pd.DataFrame(rows[1:], columnsrows[0]) df.to_excel(函数表.xlsx, indexFalse)逻辑说明第一行是表头第二行是分隔线分隔线只由管道符、冒号、减号和空格组成用集合判断直接跳过每一行用strip(|)去掉首尾管道符再按|切分得到单元格列表rows[1:]是数据行rows[0]是列名。这个脚本不依赖额外表格解析库pandas 落盘 xlsx 时列的宽度不会自动调整转换完要在 Excel 里全选列双击自适应或者用 openpyxl 统一设置列宽再进打印环节。4.4 PDF 解析回读pdftotext 与 pdfplumber函数大全 PDF 的另一个常见需求是反向的从别人给的 PDF 里把公式表抽回 Excel。结构化排版良好的表格优先用 pdftotext 带-layout参数提取文本表格比较规整时用 pdfplumber 直接抽表pdftotext -layout 函数公式大全.pdf 函数公式大全.txtimport pdfplumber with pdfplumber.open(函数公式大全.pdf) as pdf: for page in pdf.pages: table page.extract_table() if table: for row in table: print( | .join(c or for c in row))-layout会尽量保留原文的换行和空格适合检查 PDF 是不是扫描件——如果输出是乱码或空文件说明这份 PDF 是图片型需要先走 OCR 才能解析。pdfplumber 的extract_table()依赖 PDF 自带的文本坐标信息对用 Excel 打印生成的 PDF 识别率很高对扫描件同样无能为力。解析结果里经常混进重复表头行和空白行打印时先用set(row) {None}把空行过滤掉再进 DataFrame 写回 Excel。生成链路适用场景关键坑Excel → 导出 PDF一次性、单机操作书签依赖 Sheet 命名soffice 命令行转换批量、CI 自动化空行会变成空白页Markdown → Python → xlsx → PDF手册频繁更新列宽不会自动适应pdfplumber 回读从 PDF 还原表格扫描件必须 OCR5. 让 NOW() 不再实时更新函数公式手册里的时间定格技巧5.1 为什么 NOW() 每次打开都会变“函数公式 now 怎么让他不更新实时时间”指向一个非常具体的场景在整理成 PDF 的函数手册里放了一个NOW()每次打开文件、每次重算时间都跳到当前时刻导出 PDF 后日期老是变手册看起来像没定版。NOW 和 TODAY、RAND、RANDBETWEEN、OFFSET 一样都属于易失函数任何单元格发生重算都会重新求值。只要工作簿的计算模式是自动打开文件那一刻就会触发一次全量重算PDF 里印的时间自然永远是“当下”。5.2 三种把 NOW() 固定成静态值的方法第一种是手动把公式变成值。选中含NOW()的单元格复制右键菜单选择“选择性粘贴→值”或直接快捷键 CtrlAltV再按 V 回车公式被替换成定格的时间文本。这是最彻底的做法单元格里不再有公式PDF 导出几百次也不会变。第二种是用 VBA 在打开或保存时写入当前时间适合不希望手工操作的模板Sub 固定当前时间() Range(A1).Value Format(Now, yyyy-mm-dd hh:mm:ss) End SubFormat(Now, ...)把系统当前时间格式化成字符串直接写入单元格值而不是公式A1 存的是静态文本关闭重算不会影响它。要自动触发就把这段代码挂到 Workbook 的 BeforeSave 事件里保存手册时自动刷新一次“最后修改时间”平时开着文件不影响数据。第三种是切换计算模式公式→计算选项→手动。之后 NOW() 不会自动重算只有按 F9 才会更新。这个方案保留了公式本身但 F9 按多了其他易失函数也会跟着变而且文件发给同事时对方工作簿可能是自动计算模式打开瞬间立刻失效所以只适合自己临时用。Mac 版 Excel 的计算选项入口同样在“公式”标签下快捷键对应 Cmd。5.3 验证 PDF 里时间已经定格的三步检查导出 PDF 前先做三步验证按 Ctrl切换到显示公式模式检查当初写 NOW 的单元格里显示的是NOW()还是静态日期再随便改一个无关单元格看日期是否跳动最后用 4.4 节的pdftotext -layout 把 PDF 里的时间字段抽出来比对确认与导出的基准时间一致。如果打印出来的 PDF 中时间仍旧变化回到“公式→计算选项→手动重算”再打开 VBA 编辑器AltF11检查 ThisWorkbook 里的 Workbook_Open 是否写了 Calculate 或 RefreshAll删掉之后再重新导出 PDF。本文还有配套的精品资源点击获取