刚开始写公式,或者公式结果总是 #N/A、#VALUE!、#REF!,先看这一页。函数本身不难,难的是引用方式、数据类型和错误值来源;把这三件事弄清楚,后面学 SUMIFS、VLOOKUP、XLOOKUP 会快很多。
=函数名(参数1, 参数2, ...)
=A2+B2
=SUM(A2:A10)
=IF(A2>=60,"及格","不及格")
= 开头;文本参数必须加英文双引号。Tab 可以补全,按 Ctrl+A 可以打开函数参数对话框。F9 可以计算选中的片段,按 Esc 取消;不要在正式公式里留下 F9 算出的硬编码值。| 写法 | 复制到右边 | 复制到下面 | 用途 |
|---|---|---|---|
A2 |
B2 |
A3 |
逐行/逐列套公式 |
$A$2 |
$A$2 |
$A$2 |
固定参数表 |
A$2 |
B$2 |
A$2 |
固定表头行 |
$A2 |
$A2 |
$A3 |
固定第一列 |
编辑公式时把光标放在引用上按 F4 循环切换。跨工作表引用写 Sheet2!A1;工作表名有空格时写 'Sheet 1'!A1。
Excel 的函数对类型很敏感:
123 和文本 "123" 不是一回事;SUM 会忽略文本数字,VLOOKUP 也可能因此匹配不到。2026-10-31 不代表它一定是日期类型。TRUE/FALSE 参与算术时分别当 1 和 0。用 ISTEXT、ISNUMBER、ISBLANK、TYPE 可以先判断类型,再决定是否转换。
| 错误 | 常见原因 | 处理 |
|---|---|---|
#DIV/0! |
除数为 0 或空 | 用 IFERROR 包住,或先判断除数 |
#N/A |
查找值不存在 | 用 IFNA/IFERROR 给默认值,检查两边的类型和空格 |
#NAME? |
函数名拼错、名称未定义、文本没加引号 | 检查拼写和引号 |
#REF! |
引用的单元格/工作表被删除 | 撤销删除,或重新选引用 |
#VALUE! |
参数类型不对,或区域大小不匹配 | 检查数字/文本、行列数 |
#NUM! |
数值超出范围,或迭代不收敛 | 检查参数范围 |
#NULL! |
区域之间用了空格交集,但实际不相交 | 检查引用运算符 |
#SPILL! |
动态数组结果被其他内容挡住 | 清空溢出区域 |
#CALC! |
动态数组公式无法返回结果 | 检查 FILTER 等函数是否为空结果 |
IFERROR(value, value_if_error) 会把所有错误都替换成默认值;IFNA(value, value_if_na) 只处理 #N/A。排查阶段先用 IFNA 保留其他错误,避免把真正的类型错误也藏起来。
| 需求 | 函数 | 页面 |
|---|---|---|
| 条件求和 | SUMIF、SUMIFS |
excel-sumifs |
| 条件计数 | COUNTIF、COUNTIFS |
excel-countifs |
| 条件判断 | IF、IFS、AND、OR |
excel-if |
| 精确查找 | VLOOKUP、XLOOKUP、INDEX/MATCH |
excel-vlookup |
| 文本处理 | LEFT、MID、TEXT、TEXTJOIN |
excel-text-functions |
| 日期计算 | TODAY、EDATE、DATEDIF、WORKDAY |
excel-date-functions |
| 动态筛选 | FILTER、UNIQUE、SORT |
excel-dynamic-arrays |
旧版 Excel 的数组公式要按 Ctrl+Shift+Enter 输入,公式两边会出现 {};Excel 365/2021 支持动态数组,直接回车即可,结果会自动溢出到相邻单元格。
A2# 引用。#SPILL!。Ctrl+T)里,动态数组公式的支持有限;需要溢出结果时放在普通区域。FILTER、XLOOKUP 的文件,可能显示 _xlfn. 前缀或 #NAME?。TODAY()、NOW()、RAND()、OFFSET()、INDIRECT() 会在每次重算时重新计算;整列再套这些函数,文件会明显变慢。=0.1+0.2=0.3 可能返回 FALSE;用 ROUND 或设置误差范围。CHAR(160),TRIM 去不掉;用 SUBSTITUTE(A2,CHAR(160)," ") 再 TRIM。=SUM(A1:A3) 不会计算;改成“常规”后重新输入。合上页面,先回答,再展开对照。
#N/A 和 #VALUE! 分别通常由什么引起?IFERROR 和 IFNA 有什么区别?INDIRECT 会让文件变慢?#N/A 多是查找值不存在或类型不匹配;#VALUE! 多是参数类型错误或区域大小不一致。IFERROR 替换所有错误;IFNA 只替换 #N/A,保留其他错误便于排查。INDIRECT 是易失函数,每次重算都会重新解析引用,整列范围会放大计算量。
小程序版
微信扫码,随时查命令