跳转至

MAX函数

Excel MAX() 和 MIN() 函数详解

一、MAX() 函数

用途

返回一组数值中的最大值

语法

MAX(number1, [number2], ...)

参数说明

参数 是否必需 说明
number1 必需 要比较的第一个数值、单元格引用或范围
number2, ... 可选 最多可包含255个参数
忽略内容 - 文本、逻辑值、空单元格

二、MIN() 函数

用途

返回一组数值中的最小值

语法

MIN(number1, [number2], ...)

参数说明

  • 参数结构与MAX函数完全相同
  • 参数处理方式也完全相同

三、实例数据表

数据表1:学生成绩表(15名学生)

A B C D E F
学号 姓名 语文 数学 英语 总分
S001 张三 85 92 78 255
S002 李四 78 95 88 261
S003 王五 92 88 76 256
S004 赵六 45 65 58 168
S005 孙七 88 96 92 276
S006 周八 76 85 79 240
S007 吴九 95 39 94 228
S008 郑十 82 78 85 245
S009 钱一 89 92 87 268
S010 王一 73 68 52 193
S011 刘二 84 79 86 249
S012 陈三 39 42 45 126
S013 杨四 91 87 93 271
S014 黄五 67 71 69 207
S015 赵七 98 96 99 293

数据表2:销售业绩表(12个月)

A B C
月份 销售额 利润
1月 150,000 45,000
2月 120,000 36,000
3月 180,000 54,000
4月 135,000 40,500
5月 210,000 63,000
6月 165,000 49,500
7月 195,000 58,500
8月 90,000 27,000
9月 225,000 67,500
10月 240,000 72,000
11月 255,000 76,500
12月 300,000 90,000

数据表3:温度记录表(一周)

A B C D E
城市 周一 周二 周三 平均
北京 25 28 30
上海 27 26 29
广州 32 31 33
深圳 30 29 31
成都 26 25 27
杭州 28 27 29

四、基础示例

示例1:基本用法

=MAX(10, 20, 30, 15)    → 30
=MIN(10, 20, 30, 15)    → 10

示例2:单元格范围

=MAX(C2:C16)     // 学生语文最高分
=MIN(C2:C16)     // 学生语文最低分

示例3:多区域

=MAX(C2:C16, E2:E16)     // 语文和英语中的最高分
=MIN(C2:C16, E2:E16)     // 语文和英语中的最低分

示例4:忽略非数值

=MAX(10, "文本", 20, TRUE, 30)   → 30(只计算数字)
=MIN(10, "文本", 20, TRUE, 30)   → 10(只计算数字)

五、实际应用示例

应用1:学生成绩分析

// 1. 单科最高分
=MAX(C2:C16)          // 语文最高分:98
=MAX(D2:D16)          // 数学最高分:96
=MAX(E2:E16)          // 英语最高分:99

// 2. 单科最低分
=MIN(C2:C16)          // 语文最低分:39
=MIN(D2:D16)          // 数学最低分:39
=MIN(E2:E16)          // 英语最低分:45

// 3. 总分最高分和最低分
=MAX(F2:F16)          // 总分最高:293(赵七)
=MIN(F2:F16)          // 总分最低:126(陈三)

// 4. 找到最高分学生姓名(结合INDEX+MATCH)
=INDEX(B2:B16, MATCH(MAX(F2:F16), F2:F16, 0))  → "赵七"
=INDEX(B2:B16, MATCH(MIN(F2:F16), F2:F16, 0))  → "陈三"

应用2:销售数据分析

// 1. 最高和最低销售额
=MAX(B2:B13)          // 最高销售额:300,000
=MIN(B2:B13)          // 最低销售额:90,000

// 2. 利润极值
=MAX(C2:C13)          // 最高利润:90,000
=MIN(C2:C13)          // 最低利润:27,000

// 3. 计算销售额范围(极差)
=MAX(B2:B13) - MIN(B2:B13)  → 210,000

// 4. 找到销售额最高的月份
=INDEX(A2:A13, MATCH(MAX(B2:B13), B2:B13, 0))  → "12月"

应用3:温度数据分析

// 1. 各城市一周最高温度
=MAX(B2:D2)          // 北京一周最高温:30
=MAX(B3:D3)          // 上海一周最高温:29
=MAX(B4:D4)          // 广州一周最高温:33

// 2. 各城市一周最低温度
=MIN(B2:D2)          // 北京一周最低温:25
=MIN(B3:D3)          // 上海一周最低温:26
=MIN(B4:D4)          // 广州一周最低温:31

// 3. 所有城市中的最高温度
=MAX(B2:D7)          // 所有城市三天中的最高温:33

// 4. 所有城市中的最低温度
=MIN(B2:D7)          // 所有城市三天中的最低温:25

六、进阶用法

用法1:条件最大值/最小值(MAXIFS/MINIFS)

Excel 2016+版本支持:

// 找出数学成绩大于90的最高总分
=MAXIFS(F2:F16, D2:D16, ">90")

// 找出语文成绩大于80的最低总分
=MINIFS(F2:F16, C2:C16, ">80")

// 老版本替代方案(数组公式)
{=MAX(IF(D2:D16>90, F2:F16))}
{=MIN(IF(C2:C16>80, F2:F16))}

用法2:排除0值的最小值

=MIN(IF(F2:F16>0, F2:F16))  // 数组公式,找出大于0的最小值

用法3:多列比较

// 找出每个学生三科中的最高分
=MAX(C2:E2)          // 张三三科最高分:92
=MAX(C3:E3)          // 李四三科最高分:95

// 找出每个学生三科中的最低分
=MIN(C2:E2)          // 张三三科最低分:78
=MIN(C3:E3)          // 李四三科最低分:78

用法4:动态范围

=MAX(OFFSET(C2,0,0,COUNTA(C:C)-1,1))  // 动态计算C列非空单元格的最大值

七、结合其他函数使用

1. 与IF函数结合

// 计算男生的最高分(假设G列为性别)
=MAX(IF(G2:G16="男", F2:F16, ""))  // 数组公式

// 计算1班学生的最高分(假设H列为班级)
=MAX(IF(H2:H16="1班", F2:F16, 0))

2. 与LARGE/SMALL函数结合

=MAX(F2:F16)          // 第1名
=LARGE(F2:F16, 2)     // 第2名
=LARGE(F2:F16, 3)     // 第3名

=MIN(F2:F16)          // 最后1名
=SMALL(F2:F16, 2)     // 倒数第2名

3. 与AVERAGE函数结合

// 计算去掉最高分和最低分后的平均分
=(SUM(F2:F16) - MAX(F2:F16) - MIN(F2:F16)) / (COUNT(F2:F16)-2)

4. 与INDEX/MATCH函数结合

// 找出最高分对应的学生
=INDEX(B2:B16, MATCH(MAX(F2:F16), F2:F16, 0))

// 找出最低分对应的学生
=INDEX(B2:B16, MATCH(MIN(F2:F16), F2:F16, 0))

八、综合练习

练习1:学生成绩分析

  1. 计算各科最高分和最低分
  2. 计算总分的最高分和最低分
  3. 找出数学成绩最高的学生姓名
  4. 计算英语成绩前3名的平均分
  5. 找出三科都超过80分的学生中的最高总分

参考答案:

1. =MAX(C2:C16) 和 =MIN(C2:C16)  // 语文
   =MAX(D2:D16) 和 =MIN(D2:D16)  // 数学
   =MAX(E2:E16) 和 =MIN(E2:E16)  // 英语

2. =MAX(F2:F16) 和 =MIN(F2:F16)  // 总分

3. =INDEX(B2:B16, MATCH(MAX(D2:D16), D2:D16, 0))

4. =AVERAGE(LARGE(E2:E16, {1,2,3}))

5. =MAX(IF((C2:C16>80)*(D2:D16>80)*(E2:E16>80), F2:F16))

练习2:销售数据分析

  1. 找出销售额最高的季度(假设1-3月为Q1)
  2. 计算利润率(利润/销售额)的最高和最低值
  3. 找出连续两个月销售额都超过200,000的记录
  4. 计算去除最高和最低销售额后的平均销售额

参考答案:

1. // 需要先按季度汇总,然后找最大值

2. =MAX(C2:C13/B2:B13) 和 =MIN(C2:C13/B2:B13)

3. // 需要辅助列判断
   =IF(AND(B2>200000, B3>200000), "是", "否")

4. =(SUM(B2:B13)-MAX(B2:B13)-MIN(B2:B13))/(COUNT(B2:B13)-2)

练习3:温度数据分析

  1. 找出哪个城市的温差最大
  2. 计算每天所有城市的平均最高温和平均最低温
  3. 找出连续两天温度都超过30度的城市

九、常见错误及处理

错误1:结果为0

=MAX(A1:A10)  // 如果都是文本或空单元格,返回0

错误2:忽略错误值

=MAX(IF(ISNUMBER(A1:A10), A1:A10))  // 数组公式,排除错误值

错误3:日期处理

=MAX(A1:A10)  // 如果包含日期,返回最晚的日期
=MIN(A1:A10)  // 返回最早的日期

错误4:逻辑值处理

=MAX(A1:A10)  // 忽略TRUE/FALSE,除非使用数组公式转换
=MAX(--(A1:A10))  // 将逻辑值转换为数字

十、性能优化建议

  1. 避免整列引用:使用具体的范围如A1:A1000而不是A:A
  2. 减少数组公式:尽量使用MAXIFS/MINIFS代替数组公式
  3. 先筛选后计算:对大数据集先筛选再计算极值
  4. 使用辅助列:复杂计算先存到辅助列,再计算极值
  5. 缓存结果:对重复使用的极值结果存到单元格中

十一、实战技巧

技巧1:创建动态仪表板

// 在报表顶部显示关键指标
本月最高销售额:=MAXIFS(销售表!销售额, 销售表!月份, TEXT(TODAY(),"yyyy-mm"))
本月最低销售额:=MINIFS(销售表!销售额, 销售表!月份, TEXT(TODAY(),"yyyy-mm"))

技巧2:数据验证

// 确保输入值在合理范围内
=IF(AND(A1>=MIN(参考范围), A1<=MAX(参考范围)), "有效", "超出范围")

技巧3:异常值检测

// 标记异常值(超过平均值±2倍标准差)
=IF(ABS(A1-AVERAGE($A$1:$A$100))>2*STDEV($A$1:$A$100), "异常", "正常")

技巧4:排名系统

// 根据得分自动排名
=COUNTIF($F$2:$F$16, ">"&F2) + 1  // 第一名显示1,第二名显示2...

十二、总结

MAX/MIN函数的核心价值:

  1. 快速定位极值:在大量数据中快速找到最大/最小值
  2. 数据分析基础:计算范围、识别异常值、建立基准线
  3. 决策支持:为业务决策提供数据支持
  4. 质量监控:监控数据波动和异常情况

适用场景:

  • 成绩分析:找出最高分/最低分
  • 销售分析:识别最佳/最差业绩
  • 库存管理:监控最高/最低库存水平
  • 质量控制:检测异常测量值
  • 温度监控:记录温度极值

掌握MAX和MIN函数,能够让你在数据分析中快速把握数据的边界情况,为更深入的分析奠定基础。