平时用excel函数的时候,不妨先按「汇总、判断、条件统计、查找、格式整理」分成五类,用起工作表来就不容易乱。咱们这次演示用的是microsoft 365版excel,如果你用的是wps或者更早版本的excel,最好先确认下软件支不支持xlookup函数。
第一步:整理练习表
先把数据整理成标准清单格式:一行表头,每一行对应一条单独记录,空行、合并单元格、多层表头都先清掉。函数对引用范围的稳定性要求挺高的,这张练习表建议就留「部门、姓名、销售额、状态、编号、日期」这几列,后面要讲的9个函数全都是基于这张表来写的。

这一步记个原则就行:公式选的引用范围得像 C2:C6 这样是连续的,别把表头也算进计算区域里。后面要新增数据的话,要么把引用范围往下拉到新行,要么直接把整份数据转成智能表格,用结构化引用更省事。
第二步:计算合计平均和已填项
先用 SUM 算所有销售额的总和,用 AVERAGE 算销售额平均值,再用 COUNTA 统计姓名列有多少个非空的已填记录。这种基础汇总压根不用先开透视表,写个一两行公式,日报、周报要的核心数字直接就出来了。

| 函数 | 语法 | 参数 | 本例公式 |
|---|---|---|---|
| SUM | =SUM(number1,[number2],...) |
number1 是必填的数字或引用区域,后续参数可以继续追加其他要计算的内容。 |
=SUM(C2:C6) |
| AVERAGE | =AVERAGE(number1,[number2],...) |
只会统计能参与运算的数字,文本内容会自动忽略。 | =AVERAGE(C2:C6) |
| COUNTA | =COUNTA(value1,[value2],...) |
统计所有非空单元格,文本、数字、错误值都会被计入结果。 | =COUNTA(B2:B6) |
这部分最容易踩两个坑:一是把表头也选进计算范围,不光计算变慢,结果还容易让人误判;二是把看起来像数字的文本直接拿去求平均,最后算出来的结果可能比实际值小。想偷懒快速统计整列可以写成 =SUM(C:C),但正式用的表格最好还是把范围限定好,免得把备注区里的无关数字也误算进去。
第三步:用 IF 判断达标状态
要根据销售额自动显示“达标/未达标”的话,直接在状态列输IF函数就行。这里咱们假设销售额在单元格B2,达标线设为10000,公式写完后往下一拉填充,每行的结果都会自动匹配对应行的销售额来算。

| 函数 | 语法 | 参数 | 本例公式 |
|---|---|---|---|
| IF | =IF(logical_test,value_if_true,value_if_false) |
logical_test 写判断条件;后两个参数分别填条件成立、条件不成立时要返回的内容。 |
=IF(B2>=10000,"达标","未达标") |
这里最常见的错误就是文本内容漏写英文双引号,或者把大于等于这类符号写成中文格式。想优化的话还可以把空白行排除掉:=IF(B2="","",IF(B2>=10000,"达标","未达标")),这样把公式复制到空行的时候,也不会提前显示多余的结果。
第四步:按条件求和计数
想算出“华东区域总共卖了多少”和“华东区域一共有多少条记录”,用 SUMIF 和 COUNTIF 可比手动筛选靠谱多了。条件直接写在公式里,后面原始数据一刷新,结果会自动跟着更新。

| 函数 | 语法 | 参数 | 本例公式 |
|---|---|---|---|
| SUMIF | =SUMIF(range,criteria,[sum_range]) |
range 是用来判断条件的区域;criteria 是具体判断条件;sum_range 是实际要做求和运算的区域。 |
=SUMIF(A2:A6,"华东",C2:C6) |
| COUNTIF | =COUNTIF(range,criteria) |
range 是要统计的区域;criteria 可以是文本、数字、比较条件或者通配符。 |
=COUNTIF(A2:A6,"华东") |
这两个函数最容易出的问题就是条件区域和求和区域错位,比如条件选的是A2:A6,求和区域却写成C3:C7,最后结果会整体偏一行。扩展用法也很简单:要统计销售额大于10000的订单数,可以写 =COUNTIF(C2:C6,">10000");想直接按单元格里录的部门自动汇总,可以写 =SUMIF(A2:A6,E2,C2:C6)。
第五步:查找编号对应姓名
要按员工编号调取对应姓名或者提成数据,优先用XLOOKUP;要是你的表格环境不支持这个函数,再改用VLOOKUP就行。XLOOKUP不用要求返回列必须放在查找列的右边,写公式也不用费劲数第几列,后面在表格里插新列的时候,公式也不容易崩。

| 函数 | 语法 | 参数 | 本例公式 |
|---|---|---|---|
| VLOOKUP | =VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]) |
依次是查找值、查找表区域、返回内容所在的列数、是否开启近似匹配。 | =VLOOKUP("A003",A2:C5,2,FALSE) |
| XLOOKUP | =XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode]) |
依次是查找值、查找列、返回列;后面三个可选参数可以处理找不到结果、匹配方式和查找方向的需求。 | =XLOOKUP("A003",A2:A5,B2:B5,"未找到") |
VLOOKUP最常见的错误就是第四个参数漏写 FALSE,触发近似匹配后返回的结果完全不对;XLOOKUP最常见的错误是查找区域和返回区域选的长度不一样。扩展用法:想返回对应提成金额的话,直接把返回区域改成C2:C5就行:=XLOOKUP(F2,A2:A5,C2:C5,"未找到")。
第六步:把日期和金额整理成文本
日期、月份、金额需要拼到说明文字里的时候,先用TEXT函数控制下显示格式。它不会改动原始的日期或者数字值,只是把结果按你指定的格式转成文本展示,特别适合做月报标题、付款说明和导出文案。

| 函数 | 语法 | 参数 | 本例公式 |
|---|---|---|---|
| TEXT | =TEXT(value,format_text) |
value 是要转换的原始值;format_text 是需要放在引号里的格式代码。 |
=TEXT(A2,"yyyy年mm月") |
TEXT最常见的错误就是格式代码没加英文双引号,或者把转出来的文本直接当数字拿去做后续计算。扩展用法:金额要显示成“12800元”的话,可以写 =TEXT(B2,"0元");拼月报标题可以写 =TEXT(A2,"yyyy年mm月")&"销售汇总"。要是后面还要对数值做计算,记得保留原始数字列,只把TEXT的结果放在展示列用就行。
把这9个函数放到同一张练习表里完整练一遍,实际工作用的时候先核对三件事:引用范围有没有多选或少选,文本类条件有没有加英文双引号,查找类函数有没有明确写清精确匹配规则、以及找不到内容时的返回值。











