Excel计数、求和、统计、计算类函数

目录

    • 一、计数函数
      • [1. COUNT](#1. COUNT)
      • [2. COUNTA](#2. COUNTA)
      • [3. COUNTBLANK](#3. COUNTBLANK)
      • [4. COUNTIF](#4. COUNTIF)
      • [5. COUNTIFS](#5. COUNTIFS)
    • 二、求和函数
      • [1. SUM](#1. SUM)
      • [2. SUMIF](#2. SUMIF)
      • [3. SUMIFS](#3. SUMIFS)
      • [4. SUMPRODUCT](#4. SUMPRODUCT)
    • 三、统计函数
      • [1. AVERAGE](#1. AVERAGE)
      • [2. AVERAGEA](#2. AVERAGEA)
      • [3. AVERAGEIF 函数](#3. AVERAGEIF 函数)
      • [4. AVERAGEIFS 函数](#4. AVERAGEIFS 函数)
    • 四、其他常用计算函数
      • [1. MAX 与 MIN](#1. MAX 与 MIN)
      • [2. RANK](#2. RANK)
      • [3. MOD](#3. MOD)
      • [4. ROUND](#4. ROUND)
      • [5. FLOOR](#5. FLOOR)
      • [6. INT](#6. INT)
      • [7. RAND 与 RANDBETWEEN](#7. RAND 与 RANDBETWEEN)
      • [8. STDEV](#8. STDEV)
      • [9. VAR](#9. VAR)
      • [10. LARGE](#10. LARGE)
      • [11. SMALL](#11. SMALL)
      • [12. FREQUENCY](#12. FREQUENCY)

一、计数函数

1. COUNT

功能说明

  • 用于统计参数中数字的个数。
  • 只会统计含数字的单元格,对于文本、空值、错误值等不计入

语法

sql 复制代码
=COUNT(value1, [value2], ...)

示例

如果区域 A1:A10 中有数字和文本,公式

sql 复制代码
=COUNT(A1:A10)

只返回区域中包含数字的单元格数。


2. COUNTA

功能说明

  • 统计区域内非空单元格的个数。
  • 包括数字、文本、逻辑值、错误值等,只要单元格不为空都会计数

语法

sql 复制代码
=COUNTA(value1, [value2], ...)

示例

sql 复制代码
=COUNTA(A1:A10)

会统计 A1 到 A10 内所有非空的单元格数。


3. COUNTBLANK

功能说明

  • 统计指定区域内空白单元格的个数。

语法

sql 复制代码
=COUNTBLANK(range)

示例

sql 复制代码
=COUNTBLANK(A1:A10)

返回区域内空白单元格的数量。


4. COUNTIF

功能说明

  • 根据给定条件统计区域中符合条件的单元格个数。

语法

sql 复制代码
=COUNTIF(range, criteria)

示例

统计区域 B1:B20 中大于 100 的数值:

sql 复制代码
=COUNTIF(B1:B20, ">100")

5. COUNTIFS

功能说明

  • 用于统计多个区域中同时满足多个条件的单元格个数。

语法

sql 复制代码
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)

示例

统计区域 A1:A20 中等于"上海"且区域 B1:B20 中性别为"F"的单元格数:

sql 复制代码
=COUNTIFS(A1:A20, "上海", B1:B20, "F")

二、求和函数

1. SUM

功能说明

  • 将给定范围或参数中的所有数值求和。

语法

sql 复制代码
=SUM(number1, [number2], ...)

示例

sql 复制代码
=SUM(C1:C10)

将 C1 到 C10 的数值求和。


2. SUMIF

功能说明

  • 对满足单个条件的单元格求和。

语法

sql 复制代码
=SUMIF(range, criteria, [sum_range])

其中:

  • range:判断条件的区域。
  • criteria:条件(如 ">100"、"男"、"上海" 等)。
  • sum_range:实际求和的区域(如果省略,则对 range 进行求和)。

示例

求区域 D1:D20 中对应区域 C1:C20 为"男"的数值之和:

sql 复制代码
=SUMIF(C1:C20, "男", D1:D20)

3. SUMIFS

功能说明

  • 对满足多个条件的单元格求和。

语法

sql 复制代码
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

示例

统计区域 D1:D20 中,同时满足区域 B1:B20 为"广州"且区域 C1:C20 为"F"的数值之和:

sql 复制代码
=SUMIFS(D1:D20, B1:B20, "广州", C1:C20, "F")

4. SUMPRODUCT

功能说明

  • 将多个数组对应元素相乘后求和,适用于复杂条件的加权求和等情况。
  • 非数字元素会被视作 0。

语法

sql 复制代码
=SUMPRODUCT(array1, [array2], ...)

示例

假设区域 A1:A5 为销量,区域 B1:B5 为单价,则总销售额可用:

sql 复制代码
=SUMPRODUCT(A1:A5, B1:B5)

三、统计函数

1. AVERAGE

功能说明

  • 返回参数中所有数字的算术平均值。
  • 忽略空白单元格和文本(逻辑值和错误值也会被忽略)。

语法

sql 复制代码
=AVERAGE(number1, [number2], ...)

示例

sql 复制代码
=AVERAGE(C1:C10)

计算 C1 到 C10 中数字的平均值。


2. AVERAGEA

功能说明

  • AVERAGEA 用于计算一组数据的算术平均值,但与 AVERAGE 不同的是,AVERAGEA 会将所有单元格都考虑进去,即使其中包含文本或逻辑值(TRUE/FALSE)。
  • AVERAGEA中:
    • 数字按原值参与计算。
    • 文本通常视为 0。
    • 逻辑值 TRUE 会视为 1,FALSE 视为 0。
    • 空单元格不计入计算(与 AVERAGE 类似)。

语法

sql 复制代码
=AVERAGEA(value1, [value2], ...)
  • value1, value2, ...:可以是数值、数组、单元格区域或常量。

示例

假设 A1:A5 中分别为:

  • A1 = 10
  • A2 = 20
  • A3 = "文本"
  • A4 = TRUE
  • A5 = (空)

计算公式:

sql 复制代码
=AVERAGEA(A1:A5)

计算过程:

  • 数字 10 和 20:直接取值;
  • 文本 "文本" 视为 0;
  • TRUE 视为 1;
  • 空单元格不计入分母。

所以平均值 = (10 + 20 + 0 + 1) / 4 = 31 / 4 = 7.75

3. AVERAGEIF 函数

功能说明

AVERAGEIF 用于对指定范围内满足单一条件的单元格进行平均值计算。

  • 如果只需要依据一个条件筛选数据进行平均,则使用 AVERAGEIF 即可。
  • 如果未指定第三个参数,则计算平均值的范围默认与条件判断的范围相同。

语法

sql 复制代码
=AVERAGEIF(range, criteria, [average_range])

参数说明

  • range :指定需要进行条件判断的单元格区域。例如:B2:B20。
  • criteria :指定判断条件,可以是数值、表达式(如 ">50")、文本、单元格引用等。例如:">50" 或者 "男"。
  • average_range (可选):指定实际用于计算平均值的单元格区域。如果省略,函数会对 range 中满足条件的单元格直接求平均;如果提供,average_range 必须与 range 的尺寸一致,函数将对 average_range 中对应于 range 满足条件的单元格计算平均值。

示例

假设有如下数据:

  • B2:B20 存放某组学生的成绩
  • 现在需要计算成绩大于 60 分的学生的平均成绩

公式如下:

sql 复制代码
=AVERAGEIF(B2:B20, ">60")

或者,如果成绩数据在 C2:C20,而判断条件在 B2:B20(比如 B 列存放性别,C 列存放成绩),求"男"生的平均成绩,可以写为:

sql 复制代码
=AVERAGEIF(B2:B20, "男", C2:C20)

4. AVERAGEIFS 函数

功能说明

AVERAGEIFS 用于在多条件下计算平均值,即只有同时满足多个条件的单元格才会被纳入平均计算中。

  • 当需要针对多个条件进行筛选时,AVERAGEIFS 提供了灵活且简洁的解决方案。

语法

sql 复制代码
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

参数说明

  • average_range :指定实际用于计算平均值的单元格区域。例如:C2:C20。
  • criteria_range1 :第一个用于判断条件 的区域,通常与 average_range 具有相同的尺寸。例如:B2:B20。
  • criteria1 :第一个判断条件,例如:"男" 或 ">60"。
  • [criteria_range2, criteria2], ...:可选的后续条件区域和条件。你可以添加多个条件,每个条件区域必须与 average_range 具有相同的大小,只有同时满足所有条件的单元格才会参与平均值计算。

示例

假设有如下数据:

  • B2:B20 存放学生所在城市
  • C2:C20 存放学生成绩
  • D2:D20 存放学生性别

若要求计算"上海"且性别为"女"的学生成绩平均值,可用如下公式:

sql 复制代码
=AVERAGEIFS(C2:C20, B2:B20, "上海", D2:D20, "女")

这表示只有当学生的城市为"上海"并且性别为"女"时,对应的成绩才会被计算在内。


两者主要区别

  • 条件个数
    • AVERAGEIF 仅支持单一条件。
    • AVERAGEIFS 支持多个条件,可同时指定多个条件区域与对应条件。
  • 参数顺序
    • AVERAGEIF 的语法中,条件判断区域在前,平均值区域为可选的第三参数;
    • AVERAGEIFS 的第一个参数必须是用于求平均的区域,后面跟着成对的条件区域和条件。
  • 应用场景
    • 当只需对一列数据按单个条件求平均时,使用 AVERAGEIF 更简单;
    • 当需要对数据进行多重筛选后求平均时,使用 AVERAGEIFS 更加灵活。

四、其他常用计算函数

1. MAX 与 MIN

功能说明

  • MAX:返回区域或数值中的最大值。
  • MIN:返回区域或数值中的最小值。

语法

sql 复制代码
=MAX(number1, [number2], ...)
=MIN(number1, [number2], ...)

示例

sql 复制代码
=MAX(D1:D20)
=MIN(D1:D20)

2. RANK

功能说明

  • 返回某个数字在区域中的排序位置。
  • 默认按降序排列(即最大值为第1名),可以通过第三个参数指定升序排列。

语法

sql 复制代码
=RANK(number, ref, [order])
  • number:需要排序的数字。
  • ref:用于排序的数值区域。
  • order:可选,0(或省略)表示降序,非0表示升序。

示例

假如 E1:E10 存放分数,求 E2 的排名(降序):

sql 复制代码
=RANK(E2, E1:E10, 0)

3. MOD

功能说明

  • 返回两数相除的余数
  • 返回结果的符号与除数相同。

语法

sql 复制代码
=MOD(number, divisor)

示例

sql 复制代码
=MOD(17, 5)

返回 2,因为 17 除以 5 的余数是 2。


4. ROUND

功能说明

  • 将数字四舍五入到指定的小数位数。

语法

sql 复制代码
=ROUND(number, num_digits)
  • number:要四舍五入的数字。
  • num_digits:要保留的小数位数,正数表示小数位,0 表示取整,负数则舍入到小数点左侧。

示例

sql 复制代码
=ROUND(3.14159, 2)

返回 3.14。


5. FLOOR

功能说明

  • 将数字向下舍入 到最接近的指定基数的倍数
  • 若数字已是基数的倍数,则不变化。

语法

sql 复制代码
=FLOOR(number, significance)
  • number:需要舍入的数字。
  • significance:指定舍入的倍数。

示例

sql 复制代码
=FLOOR(17, 5)

返回 15。


6. INT

功能说明

  • 返回数字的整数部分,即向下舍入到最接近的整数。
  • 注意:对于负数,INT 会向更小的整数取整(例如 INT(-3.2) 返回 -4)。

语法

sql 复制代码
=INT(number)

示例

sql 复制代码
=INT(3.9)   ' 返回 3
=INT(-3.9)  ' 返回 -4

7. RAND 与 RANDBETWEEN

RAND

  • 功能说明 :返回大于等于 0 且小于 1 [0,1)的随机实数。
  • 每次工作表计算时都会改变。

语法

sql 复制代码
=RAND()

示例

sql 复制代码
=RAND()

可能返回 0.4832 等随机小数。

RANDBETWEEN

  • 功能说明:返回介于指定下限和上限之间的随机整数。
  • 每次计算时会刷新新数值。

语法

sql 复制代码
=RANDBETWEEN(bottom, top)
  • bottom:随机整数的最小值。
  • top:随机整数的最大值。

示例

sql 复制代码
=RANDBETWEEN(1, 100)

可能返回 1 到 100 之间的任意整数。


8. STDEV

功能说明

  • STDEV 系列函数用于衡量数据的离散程度,即数据点与平均值之间的偏差。
  • Excel 中常用的有:
    • STDEV.S(或 STDEV):根据样本数据估算标准偏差。
    • STDEV.P:计算总体数据的标准偏差(假设数据集为总体)。

语法

  • 样本标准偏差(STDEV.S 或 STDEV):

    sql 复制代码
    =STDEV.S(number1, [number2], ...)
  • 总体标准偏差(STDEV.P):

    sql 复制代码
    =STDEV.P(number1, [number2], ...)

示例

假设数据位于 A1:A5 为:10, 20, 20, 30, 40

计算样本标准偏差:

sql 复制代码
=STDEV.S(A1:A5)

计算总体标准偏差:

sql 复制代码
=STDEV.P(A1:A5)

两者的计算公式略有不同,样本标准偏差的分母为 n-1,而总体标准偏差的分母为 n。


9. VAR

功能说明

  • VAR 系列函数用于衡量数据的变异程度,即标准偏差的平方。
  • 常用函数有:
    • VAR.S(或 VAR):基于样本数据估算方差。
    • VAR.P:计算总体数据的方差。

语法

  • 样本方差

    sql 复制代码
    =VAR.S(number1, [number2], ...)
  • 总体方差

    sql 复制代码
    =VAR.P(number1, [number2], ...)

示例

延续上例数据(10, 20, 20, 30, 40)

计算样本方差:

sql 复制代码
=VAR.S(A1:A5)

计算总体方差:

sql 复制代码
=VAR.P(A1:A5)

注意,方差值等于标准偏差的平方


10. LARGE

功能说明

  • LARGE 返回数组或区域中第 k 个最大值(即从大到小排序后第 k 个数)。

语法

sql 复制代码
=LARGE(array, k)
  • array:数据区域或数组。
  • k:要返回第 k 大的数值。

示例

假设区域 A1:A6 的数据为:{5, 10, 15, 20, 25, 30}

要找出第二大数:

sql 复制代码
=LARGE(A1:A6, 2)

返回结果为 25(即 30 为最大,25 为第二大)。


11. SMALL

功能说明

  • SMALL 返回数组或区域中第 k 个最小值(即从小到大排序后第 k 个数)。

语法

sql 复制代码
=SMALL(array, k)
  • array:数据区域或数组。
  • k:要返回第 k 小的数值。

示例

同样数据 {5, 10, 15, 20, 25, 30}

找出第二小的数:

sql 复制代码
=SMALL(A1:A6, 2)

返回结果为 10(5 为最小,10 为第二小)。


12. FREQUENCY

功能说明

  • FREQUENCY 函数用于统计数据在各个区间内的出现频率,返回一个垂直数组,数组元素的个数比分段区间多 1 个。
  • 其中,每个元素代表数据落在相应区间内的个数,最后一个元素统计超出最高区间的数目。

语法

sql 复制代码
=FREQUENCY(data_array, bins_array)
  • data_array:包含要统计的数据的区域。
  • bins_array:定义各区间上限的数组(或区域)。

使用注意

  • FREQUENCY 是一个数组函数,需要在输入公式后按 Ctrl+Shift+Enter(在新版 Excel 中可能自动识别数组公式)。
  • 返回的数组长度为分段数 + 1。

示例

假设:

  • data_array 在 A1:A10 存放一组成绩数据。
  • bins_array 在 C1:C3 存放三个分段上限(例如 60、80、100)。 公式:
sql 复制代码
=FREQUENCY(A1:A10, C1:C3)

返回结果为一个 4 行的数组,分别表示:

  1. 小于 60 分的个数;
  2. 大于或等于 60 且小于 80 的个数;
  3. 大于或等于 80 且小于 100 的个数;
  4. 大于或等于 100 的个数。

例如,若 A1:A10 的数据为 {55, 60, 65, 70, 75, 80, 85, 90, 95, 100},则 FREQUENCY 的结果可能为:

  • 第1组(<60):1
  • 第2组(60~79):4
  • 第3组(80~99):4
  • 第4组(>=100):1
相关推荐
我爱吃干果4 分钟前
ZoomCharts使用方法
前端·javascript·笔记·zoom
jimin_callon23 分钟前
VBA第三十九期 VBA自动把工作表转换成PPT
python·excel·vba·wps·deepseek
不会编程的懒洋洋35 分钟前
软考笔记9——数据库技术基础
数据库·笔记·软件工程·软件构建·软考·程序设计语言基础
Direct_Yang42 分钟前
计算机网络学习前言
学习·计算机网络
大白的编程日记.1 小时前
进程状态(运行 阻塞 僵尸)及其场景分析
linux·笔记
虾球xz1 小时前
游戏引擎学习第204天
前端·学习·游戏引擎
努力奋斗的小杨2 小时前
学习MySQL第七天
数据库·笔记·学习·mysql·navicat
虾球xz2 小时前
游戏引擎学习第202天
学习·游戏引擎
郭涤生2 小时前
UML组件图
笔记·uml·软件设计