Files
WorkNote/SanPinPLM/相关操作/4.0-other/997.Excel常用函数.md

1407 lines
50 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 介绍
使用 `Excel` 函数可以大幅提升数据处理效率、准确性和自动化水平
注意:若参数中包含了报错,那么多数函数的返回值也会是报错
# 函数列表
## SUM 求和函数
`SUM` 函数用于计算一系列数值的总和。基本语法如下:
> `=SUM(number1, [number2], ...)`
**参数说明**
- `number1`:必需参数。第一个需要求和的项,可以是直接的数值、单元格引用或者包含数值的区域
- `[number2]`, ...:可选参数。后续需要求和的项,最多可以有 255 个参数
**说明**
- `SUM` 函数可以接受多种类型的参数包括数值、单元格引用、区域和逻辑值TRUE 被转换为 1FALSE 被转换为 0
- 当区域中有非数值数据时,这些数据会被忽略
- `SUM` 函数能够自动扩展以适应拖拽填充柄时所选择的单元格范围
- 空单元格不会被计入总和中
**案例**
> 对102030求和
>
> =SUM(10,20,30)
>
> 对A1单元格到A10单元格求和
>
> =SUM(A1:A10)
>
> 对A1单元格到A10单元格、C1单元格到C10单元格求和
>
> =SUM(A1:A10,C1:C10)
>
> 混合使用
>
> =SUM(10, A1, B1:B10)
---
## SUMIF 单条件筛选求和
`SUMIF` 函数用于根据指定条件对数值进行求和。基本语法如下:
> `=SUMIF(range, criteria, [sum_range])`
**参数说明**
- `range`:必需参数。用于设置条件的单元格范围
- `criteria`:必需参数。定义哪些单元格将被加总的标准。它可以是数字、表达式、单元格引用或文本形式
- `[sum_range]`:可选参数。实际求和的单元格范围。如果省略此参数,则 `range` 将同时作为 `sum_range` 使用
**说明**
- `SUMIF` 函数支持使用通配符 (`*``?`) 来匹配文本。其中 `*` 表示任意数量的字符,`?` 表示单个字符
- 如果 `sum_range` 参数省略,`SUMIF` 函数会将 `range` 参数中的单元格视为 `sum_range`,即对符合 `criteria` 的单元格自身进行求和
- 如果 `range` 中没有单元格满足 `criteria`,则返回 0
- 如果 `criteria` 包含特殊字符(如 `=``>``<` 等),需要将它们放在双引号内。例如,`=SUMIF(A1:A10, "<=100")`
- 如果 `criteria` 是文字或逻辑值(例如 TRUE 或 FALSE也需要放在双引号内
- 如果 `criteria` 是一个单元格引用,则不需要双引号
**案例**
> | A | B | C |
> | ------ | ------ | ---- |
> | 产品 | 销售额 | 数量 |
> | Apple | 50 | 100 |
> | Banana | 30 | 50 |
> | Apple | 40 | 75 |
> | Orange | 60 | 80 |
>
> 计算Apple产品的销售总额
>
> =SUMIF(A2:A5, "Apple", B2:B5)
>
> 计算所有产品数量超过 50 的销售额总和
>
> =SUMIF(C2:C5, ">50", B2:B5)
---
## SUMIFS 多条件筛选求和
`SUMIFS` 函数用于根据多个条件对一组数值进行求和。基本语法如下:
> `=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)`
**参数说明**
- `sum_range`:必需参数。实际求和的单元格范围
- `criteria_range1`:必需参数。用于设置第一个条件的单元格范围
- `criteria1`:必需参数。定义哪些单元格将被加总的第一个标准。它可以是数字、表达式、单元格引用或文本形式
- `[criteria_range2, criteria2]`, ...:可选参数。用于设置更多条件的额外单元格范围和对应的条件
**说明**
- `SUMIFS` 函数支持使用通配符 (`*``?`) 来匹配文本。其中 `*` 表示任意数量的字符,`?` 表示单个字符
- 所有的条件都必须同时满足才能对相应的单元格进行求和
- 如果 `sum_range` 和任一 `criteria_range` 的大小不一致,`SUMIFS` 函数将返回错误
- 如果 `criteria` 包含特殊字符(如 `=``>``<` 等),需要将它们放在双引号内。例如,`=SUMIFS(C1:C10, B1:B10, "<=100")`
- 如果 `criteria` 是文字或逻辑值(例如 TRUE 或 FALSE也需要放在双引号内
- 如果 `criteria` 是一个单元格引用,则不需要双引号
**案例**
> 计算 C1 到 C10 区域内的数值总和,前提条件是在 A1 到 A10 区域内单元格内容为 "Fruit",且在 B1 到 B10 区域内单元格的值大于 20
>
> =SUMIFS(C1:C10, A1:A10, "Fruit", B1:B10, ">20")
>
> 计算 C1 到 C10 区域内的数值总和,前提条件是在 A1 到 A10 区域内单元格内容与D1单元格相同且在 B1 到 B10 区域内单元格的值大于 20
>
> =SUMIFS(C1:C10, A1:A10, D1, B1:B10, E1)
>
> 计算 C1 到 C10 区域内的数值总和,前提条件是在 A1 到 A10 区域内单元格内容含 "apple" 文本,且在 B1 到 B10 区域内单元格的值大于 20
>
> =SUMIFS(C1:C10, A1:A10, "\*apple\*", B1:B10, ">20")
>
> | A | B | C | D |
> | ------ | ------ | ---- | ----- |
> | 产品 | 销售额 | 数量 | 地区 |
> | Apple | 50 | 100 | North |
> | Banana | 30 | 50 | South |
> | Apple | 40 | 75 | North |
> | Orange | 60 | 80 | East |
>
> 计算所有 "Apple" 产品且地区为 "North" 的销售额总和
>
> =SUMIFS(B2:B5, A2:A5, "Apple", D2:D5, "North")
>
> 计算所有产品数量超过 50 且地区为 "North" 的销售额总和
>
> =SUMIFS(B2:B5, C2:C5, ">50", D2:D5, "North")
---
## SUMPRODUCT 数组间元素乘积和
`SUMPRODUCT` 函数用于计算数组间对应元素的乘积之和,也可以用来根据条件进行求和。基本语法:
> `=SUMPRODUCT(array1, [array2], [array3], ...)`
**参数说明**
- `array1`:必需参数。第一个数组或范围
- `[array2]`, `[array3]`, ...:可选参数。后续数组或范围。最多可以有 255 个数组
**说明**
- `SUMPRODUCT` 函数支持数组运算,可以将数组之间的元素相乘并求和
- 可以通过使用逻辑表达式 (如 `A1:A10 = "Apple"`) 生成 0 或 1 的数组,然后与另一个数组相乘来实现条件求和
- `SUMPRODUCT` 函数可以接受多个数组参数,并且这些数组必须具有相同的尺寸(行数和列数相同)
- 如果数组大小不一致,`SUMPRODUCT` 函数会返回错误
- 使用 `SUMPRODUCT`逻辑表达式的结果会被转换为数字TRUE 转换为 1FALSE 转换为 0
- `SUMPRODUCT` 可以用于替代 `SUMIF``SUMIFS` 函数,特别是在需要使用多个条件或更复杂的逻辑时
**案例**
> 计算1 \* 4 + 2 \* 5 + 3 \* 6
>
> =SUMPRODUCT({1, 2, 3}, {4, 5, 6})
>
> 计算 A1 到 A10 区域内等于 "Apple" 的所有 B1 到 B10 区域内的数值总和
>
> =SUMPRODUCT((A1:A10 = "Apple") * B1:B10)
>
> 计算 A1 到 A10 区域内等于 "Apple" 且 C1 到 C10 区域内等于 "North" 的所有 B1 到 B10 区域内的数值总和
>
> =SUMPRODUCT((A1:A10 = "Apple") * (C1:C10 = "North") * B1:B10)
>
> 计算 A1 到 A10 区域内包含 "Apple" 且 C1 到 C10 区域内等于 "North" 的所有 B1 到 B10 区域内的数值总和
>
> =SUMPRODUCT((A1:A10 LIKE "\*Apple\*") * (C1:C10 = "North") * B1:B10)
>
> 计算 A1 到 A10 区域内等于 "Apple" 且 C1 到 C10 区域内的值大于等于 50 的所有 B1 到 B10 区域内的数值总和
>
> =SUMPRODUCT((A1:A10 = "Apple") * (C1:C10 >= 50) * B1:B10)
>
> | A | B | C |
> | ------ | ------ | ---- |
> | 产品 | 销售额 | 数量 |
> | Apple | 50 | 100 |
> | Banana | 30 | 50 |
> | Apple | 40 | 75 |
> | Orange | 60 | 80 |
>
> 计算所有 "Apple" 产品的销售额总和
>
> =SUMPRODUCT((A2:A5 = "Apple") * B2:B5)
>
> 计算所有产品数量超过 50 的销售额总和
>
> =SUMPRODUCT((C2:C5 > 50) * B2:B5)
>
> 计算所有 "Apple" 产品且数量超过 50 的销售额总和
>
> =SUMPRODUCT((A2:A5 = "Apple") * (C2:C5 > 50) * B2:B5)
---
## AVERAGE 计算平均值
`AVERAGE` 函数用于计算一组数值的算术平均值。基本语法如下:
> `=AVERAGE(number1, [number2], ...)`
**参数说明**
- `number1`:必需参数。第一个需要计算平均值的数值或引用
- `[number2]`, ...:可选参数。后续需要计算平均值的数值或引用。最多可以有 255 个参数
**说明**
- `AVERAGE` 函数可以接受多种类型的参数包括数值、单元格引用、区域和逻辑值TRUE 被转换为 1FALSE 被转换为 0
- 当区域中有非数值数据时,这些数据会被忽略
- `AVERAGE` 函数能够自动扩展以适应拖拽填充柄时所选择的单元格范围
- 如果 `AVERAGE` 函数中的参数包含了错误值(例如 #DIV/0 !),则最终的结果也会产生错误。
- 空单元格不会被计入平均值计算中。
- 如果所有参数都是空白或文本,则 `AVERAGE` 函数将返回 #DIV/0 ! 错误
**案例**
> 对102030求平均值
>
> =AVERAGE(10, 20, 30)
>
> 计算A1到A10的平均值
>
> =AVERAGE(A1:A10)
>
> 对A1单元格到A10单元格、C1单元格到C10单元格求平均值
>
> =AVERAGE(A1:A10, C1:C10)
>
> 混合使用
>
> =AVERAGE(10, A1, B1:B10)
---
## SUBTOTAL 分类汇总计算
`SUBTOTAL` 函数可对列表或数据库中的数据执行多种子总计操作,例如求和、计数、平均值等,常用于数据列表的汇总统计,尤其适合处理包含隐藏行的数据。基本语法:
> `=SUBTOTAL(function_num, ref1, [ref2], ...)`
**参数说明**
- `function_num`:必需参数。指定要使用的函数类型。`function_num` 可以是 1 到 11 之间的任意数字,或者是 101 到 111 之间的任意数字。101 到 111 之间的数字与 1 到 11 之间相对应,但它们**会忽略隐藏行中的数据以及任何由过滤器排除的数据**
| 序号值 | 描述 |
| --- | -------------------- |
| 1 | AVERAGE - 计算平均值 |
| 2 | COUNT - 计数(非空单元格) |
| 3 | COUNTA - 计数(所有非空单元格) |
| 4 | MAX - 最大值 |
| 5 | MIN - 最小值 |
| 6 | PRODUCT - 乘积 |
| 7 | STDEV - 估算标准偏差(样本) |
| 8 | STDEVP - 估算标准偏差(总体) |
| 9 | SUM - 求和 |
| 10 | VAR - 估算方差(样本) |
| 11 | VARP - 估算方差(总体) |
- `ref1, ref2, ...`必需参数。1 到 254 个区域或引用,其中包含要汇总的数据
**说明**
- `SUBTOTAL` 函数支持多种不同的汇总功能
- 当使用 101 到 111 之间的 `function_num` 时,`SUBTOTAL` 函数能够忽略隐藏的行和由自动筛选排除的行
- 当使用 1 到 11 之间的 `function_num` 时,`SUBTOTAL` 函数不会忽略隐藏的行
- `SUBTOTAL` 函数在处理大型数据列表时非常有用,尤其是当数据列表中可能有用户手动隐藏某些行时
- `SUBTOTAL` 函数可以嵌套在其他函数中使用,比如 `IF` 函数,以实现更复杂的逻辑处理
- 如果 `function_num` 不在上述列表中,则 `SUBTOTAL` 函数会返回错误
- 如果 `ref1, ref2, ...` 引用的单元格为空,`SUBTOTAL` 函数将忽略这些单元格
- `SUBTOTAL` 函数可以与 Excel 的数据筛选功能结合使用,以快速获取特定筛选条件下的汇总数据
**案例**
> 计算区域内的总和,忽略隐藏行
>
> =SUBTOTAL(9, A1:A10)
>
> 计算区域内的总和,考虑隐藏行
>
> =SUBTOTAL(109, A1:A10)
>
> 计算区域内的平均值,忽略隐藏行
>
> =SUBTOTAL(1, A1:A10)
>
> 计算区域内的最大值,忽略隐藏行
>
> =SUBTOTAL(5, A1:A10)
>
> 计算区域内非空单元格的数量,忽略隐藏行
>
> =SUBTOTAL(2, A1:A10)
>
> | A | B | C |
> | ------ | ------ | ---- |
> | 产品 | 销售额 | 数量 |
> | Apple | 50 | 100 |
> | Banana | 30 | 50 |
> | Apple | 40 | 75 |
> | Orange | 60 | 80 |
>
> 计算所有产品的销售额总和(忽略隐藏行)
>
> =SUBTOTAL(9, B2:B5)
>
> 计算所有产品的数量总和,并且考虑被隐藏的行
>
> =SUBTOTAL(109, C2:C5)
>
> 计算所有产品的平均销售额,忽略隐藏行
>
> =SUBTOTAL(1, B2:B5)
---
## AGGREGATE 汇总计算忽略错误值
AGGREGATE函数可执行多种汇总计算包括忽略隐藏行、忽略错误值等功能。常用于数据列表或数据库中的汇总统计特别是在需要处理隐藏行和错误值时。基本语法
> `=AGGREGATE(function_num, options, array, [k])`
**参数说明**
- `function_num`:必需参数。指定要使用的函数类型。`function_num` 可以是 1 到 19 之间的任意数字
| function_num | 描述 |
| ------------ | ------------------------------- |
| 1 | AVERAGE - 计算平均值 |
| 2 | COUNT - 计数(非空单元格) |
| 3 | COUNTA - 计数(所有非空单元格) |
| 4 | MAX - 最大值 |
| 5 | MIN - 最小值 |
| 6 | PRODUCT - 乘积 |
| 7 | STDEV.S - 估算标准偏差(样本) |
| 8 | STDEV.P - 估算标准偏差(总体) |
| 9 | SUM - 求和 |
| 10 | VAR.S - 估算方差(样本) |
| 11 | VAR.P - 估算方差(总体) |
| 12 | MEDIAN - 中位数 |
| 13 | MODE.SNGL - 单模态 |
| 14 | LARGE - 第 k 大的值 |
| 15 | SMALL - 第 k 小的值 |
| 16 | PERCENTILE.INC - 百分位数 |
| 17 | QUARTILE.INC - 四分位数 |
| 18 | RANK.EQ - 排名 |
| 19 | MODE.MULT - 多模态 |
- `options`:必需参数。指定在计算过程中应如何处理隐藏行、错误值和其他特殊情况
| options | 描述 |
| ------- | ---------------------------------------- |
| 0 | 忽略隐藏行,忽略错误值 |
| 1 | 忽略隐藏行,不忽略错误值 |
| 2 | 不忽略隐藏行,忽略错误值 |
| 3 | 不忽略隐藏行,不忽略错误值 |
| 4 | 仅计算可见行(忽略隐藏行),忽略错误值 |
| 5 | 仅计算可见行(忽略隐藏行),不忽略错误值 |
| 6 | 不忽略隐藏行,忽略错误值(默认行为) |
- `array`:必需参数。包含要进行汇总计算的数据的数组或区域
- `[k]`:可选参数。仅在使用第 14、15、16、17 或 18 项时需要。用于确定返回的值(例如第 k 大或第 k 小的值)
**说明**
- `AGGREGATE` 函数支持多种不同的汇总功能,并且提供了更多的选项来控制如何处理隐藏行和错误值
- 当使用 `options` 为 6 时,`AGGREGATE` 函数能够忽略隐藏的行和错误值
- `AGGREGATE` 函数在处理大型数据列表时非常有用,特别是当数据列表中可能有用户手动隐藏某些行或存在错误值时
- `AGGREGATE` 函数可以嵌套在其他函数中使用,比如 `IF` 函数,以实现更复杂的逻辑处理
- 如果 `function_num` 不在上述列表中,则 `AGGREGATE` 函数会返回错误
- 如果 `array` 引用的单元格为空,`AGGREGATE` 函数将忽略这些单元格
- 如果使用了需要 `[k]` 参数的 `function_num` 但未提供 `[k]` 参数,`AGGREGATE` 函数将返回错误
- `AGGREGATE` 函数可以与 Excel 的数据筛选功能结合使用,以快速获取特定筛选条件下的汇总数据
**案例**
> 计算区域内的总和,忽略隐藏行和错误值
>
> =AGGREGATE(9, 6, A1:A10)
>
> 计算区域内的总和,考虑隐藏行,忽略错误值
>
> =AGGREGATE(9, 2, A1:A10)
>
> 计算区域内的平均值,忽略隐藏行和错误值
>
> =AGGREGATE(1, 6, A1:A10)
>
> 计算区域内的最大值,忽略隐藏行和错误值
>
> =AGGREGATE(4, 6, A1:A10)
>
> 计算区域内非空单元格的数量,忽略隐藏行和错误值
>
> =AGGREGATE(2, 6, A1:A10)
>
> 计算区域内的中位数,忽略隐藏行和错误值
>
> =AGGREGATE(12, 6, A1:A10)
>
> 计算区域内的第 k 大的值,忽略隐藏行和错误值
>
> =AGGREGATE(14, 6, A1:A10, 3)
---
## LEN 统计字符串长度
LEN函数用于计算文本字符串中的字符数。基本语法
> `=LEN(text)`
**参数说明**
- `text`:必需参数。要计算长度的文本字符串。可以是直接输入的文本字符串、单元格引用或其他函数返回的文本结果
**说明**
- `LEN` 函数可以接受任何文本字符串作为参数
- `LEN` 函数会计算文本字符串中的所有字符,包括空格和特殊字符
- 如果提供的参数不是文本类型,`LEN` 函数会尝试将其转换为文本再计算长度
- 如果 `text` 参数为空字符串(""`LEN` 函数将返回 0
- 如果 `text` 参数包含数字格式的日期或时间,`LEN` 函数将返回这些日期或时间的文本表示形式的长度
- 如果 `text` 参数是一个单元格引用,并且该单元格包含数字而非文本,则 `LEN` 函数将返回该数字的文本表示形式的长度
**案例**
> 计算Hello World的长度特殊字符、空格也会被记录在内
>
> =LEN("Hello World")
>
> 计算单元格中文本的长度
>
> =LEN(A1)
---
## LEFT 从左侧提取指定数量的字符
`LEFT` 函数用于从文本字符串的左侧提取指定数量的字符。基本语法:
> `=LEFT(text, [num_chars])`
**参数说明**
- `text`:必需参数。包含要提取字符的原始文本字符串
- `[num_chars]`:可选参数。要从文本左侧提取的字符数量。默认值为 1
**说明**
- `LEFT` 函数可以从文本字符串的左侧提取指定数量的字符
- 如果 `[num_chars]` 参数省略,默认提取 1 个字符
- 如果 `[num_chars]` 参数为负数,`LEFT` 函数将返回错误
- 如果 `[num_chars]` 参数大于文本字符串的实际长度,`LEFT` 函数将返回整个文本字符串
- 如果 `text` 参数为空字符串(""`LEFT` 函数将返回空字符串
- 如果 `[num_chars]` 参数为 0`LEFT` 函数也将返回空字符串
- 如果 `[num_chars]` 参数大于 `text` 的长度,`LEFT` 函数将返回整个文本字符串
**案例**
> 提取单个字符
>
> =LEFT("Hello World")
>
> 提取多个字符
>
> =LEFT("Hello World", 5)
>
> 提取单元格中的字符
>
> =LEFT(A1, 3)
>
> 提取单元格中全部字符
>
> =LEFT(A1)
---
## RIGHT 从右侧提取指定数量的字符
RIGHT函数用于从文本字符串的右侧提取指定数量的字符。基本语法
> `=RIGHT(text, [num_chars])`
**参数说明**
- `text `:必须参数,包含要提取字符的文本字符串
- `[num_chars]` 可选参数指定从文本字符串末尾开始要提取的字符数。如果省略则默认为1
**说明**
- `RIGHT` 函数可以从文本字符串的右侧提取指定数量的字符
- 如果 `[num_chars]` 参数省略,默认提取 1 个字符
- 如果 `[num_chars]` 参数为负数,`RIGHT` 函数将返回错误
- 如果 `[num_chars]` 参数大于文本字符串的实际长度,`RIGHT` 函数将返回整个文本字符串
- 如果 `text` 参数为空字符串(""`RIGHT` 函数将返回空字符串
- 如果 `[num_chars]` 参数为 0`RIGHT` 函数也将返回空字符串
- 如果 `[num_chars]` 参数大于 `text` 的长度,`RIGHT` 函数将返回整个文本字符串
**案例**
> 提取单个字符
>
> =RIGHT("Hello World")
>
> 提取多个字符
>
> =RIGHT("Hello World", 5)
>
> 提取单元格中的字符
>
> =RIGHT(A1, 3)
>
> 提取单元格中全部字符
>
> =RIGHT(A1)
---
## MID 从指定位置提取指定数量的字符
MID函数用于从文本字符串中的指定位置开始提取指定数量的字符。基本语法
> `=MID(text, start_num, num_chars)`
**参数说明**
- `text`:必需参数。包含要提取字符的原始文本字符串
- `start_num`:必需参数。要开始提取字符的位置(索引)。索引从 1 开始
- `num_chars`:必需参数。要提取的字符数量
**说明**
- `MID` 函数可以从文本字符串的任意位置开始提取指定数量的字符
- 如果 `start_num` 参数大于文本字符串的实际长度,`MID` 函数将返回空字符串
- 如果 `start_num` 参数为负数,`MID` 函数将返回错误
- 如果 `num_chars` 参数为负数,`MID` 函数将返回错误
- 如果 `num_chars` 参数大于从 `start_num` 开始到文本字符串结尾的字符数量,`MID` 函数将返回从 `start_num` 开始到文本字符串结尾的所有字符
- 如果 `text` 参数为空字符串(""`MID` 函数将返回空字符串
- 如果 `start_num` 参数为 0`MID` 函数将返回空字符串
- 如果 `num_chars` 参数为 0`MID` 函数也将返回空字符串
- 如果 `start_num` 参数加上 `num_chars` 超出了 `text` 的长度,`MID` 函数将返回从 `start_num` 开始到文本字符串结尾的所有字符
**案例**
> 提取指定位置单个字符(从第一个字符开始提取一个字符)
>
> =MID("Hello World", 1, 1)
>
> 提取指定位置的多个字符(从第七个字符开始提取五个字符)
>
> =MID("Hello World", 7, 5)
>
> 提取单元格中的文本(从第三个字符开始提取三个字符)
>
> =MID(A1, 3, 3)
>
> 提取单元格中的全部剩余文本
>
> =MID(A1, 7, LEN(A1)-6)
---
## TRIM 去空格
`TRIM` 函数用于删除文本字符串首尾的空格,并将内部连续的空格压缩为单个空格。基本语法:
> `=TRIM(text)`
**参数说明**
- `text`:必需参数。要清理空格的原始文本字符串
**说明**
- `TRIM` 函数可以接受任何文本字符串作为参数
- `TRIM` 函数会删除文本字符串首尾的空格,并将内部连续的空格压缩为单个空格
- 如果提供的参数本身不包含多余的空格,`TRIM` 函数将返回原样
- 如果 `text` 参数为空字符串(""`TRIM` 函数将返回空字符串
- `TRIM` 函数不会改变文本字符串中的其他字符,只处理空格
- `TRIM` 函数不会删除文本字符串中的非空格字符
**案例**
> 清理直接输入的文本 => 结果将是 "Hello World"
>
> =TRIM(" Hello World ")
>
> 清理单元格中的文本 => 如果 A1 单元格包含 " Hello World ",结果将是 "Hello World"
>
> =TRIM(A1)
>
> 清理包含特殊字符的文本 => 结果将是 "Hello World!"
>
> =TRIM(" Hello World! ")
---
## LOWER 字母转换小写
`LOWER` 函数用于将文本字符串中的所有字母转换为小写。基本语法:
> `=LOWER(text)`
**参数说明**
- `text`:必需参数。要转换为小写的原始文本字符串
**说明**
- `LOWER` 函数可以接受任何文本字符串作为参数
- `LOWER` 函数会将文本字符串中的所有字母转换为小写
- 如果提供的参数中包含非字母字符(如数字或特殊符号),这些字符将保持不变
- 如果 `text` 参数为空字符串(""`LOWER` 函数将返回空字符串
- `LOWER` 函数不会改变文本字符串中的数字或特殊字符
**案例**
> 转换直接输入的文本
>
> =LOWER("Hello World")
>
> 转换单元格中的文本
>
> =LOWER(A1)
>
> 转换包含特殊字符的文本
>
> =LOWER("Hello World!")
>
> 转换包含数字的文本
>
> =LOWER("Hello World 123")
---
## UPPER 字符转换大写
`UPPER` 函数用于将文本字符串中的所有字母转换为大写。基本语法:
> `=UPPER(text)`
**参数说明**
- `text`:必需参数。要转换为大写的原始文本字符串
**说明**
- `UPPER` 函数可以接受任何文本字符串作为参数
- `UPPER` 函数会将文本字符串中的所有字母转换为大写
- 如果提供的参数中包含非字母字符(如数字或特殊符号),这些字符将保持不变
- 如果 `text` 参数为空字符串(""`UPPER` 函数将返回空字符串
- `UPPER` 函数不会改变文本字符串中的数字或特殊字符
**案例**
> 转换直接输入的文本
>
> =UPPER("Hello World")
>
> 转换单元格中的文本
>
> =UPPER(A1)
>
> 转换包含特殊字符的文本
>
> =UPPER("Hello World!")
>
> 转换包含数字的文本
>
> =UPPER("Hello World 123")
---
## PROPER 首字母大写
`PROPER` 函数用于将文本字符串中的每个单词的首字母转换为大写,其余字母转换为小写。基本语法:
> `=PROPER(text)`
**参数说明**
- `text`:必需参数。要转换格式的原始文本字符串
**说明**
- `PROPER` 函数可以接受任何文本字符串作为参数
- `PROPER` 函数会将文本字符串中的每个单词的首字母转换为大写,其余字母转换为小写
- 如果提供的参数中包含非字母字符(如数字或特殊符号),这些字符将保持不变
- `PROPER` 函数认为由空格分隔的部分为单词
- 如果 `text` 参数为空字符串(""`PROPER` 函数将返回空字符串
- `PROPER` 函数不会改变文本字符串中的数字或特殊字符
- `PROPER` 函数将根据空格来判断单词的边界。如果单词之间没有空格,`PROPER` 函数会将它们视为一个单词
**案例**
> 转换直接输入的文本
>
> =PROPER("hello world")
>
> 转换单元格中的文本
>
> =PROPER(A1)
>
> 转换包含特殊字符的文本
>
> =PROPER("hello world!")
>
> 转换包含数字的文本
>
> =PROPER("hello world 123")
---
## CONCATENATE 多个字符串合并
`CONCATENATE` 函数用于将两个或多个文本字符串合并成一个单一的文本字符串。基本语法:
> `=CONCATENATE(text1, [text2], ...)`
**参数说明**
- `text1`:必需参数。要合并的第一个文本字符串
- `[text2], ...`:可选参数。要合并的额外文本字符串
**说明**
- `CONCATENATE` 函数可以接受任何文本字符串作为参数
- `CONCATENATE` 函数可以接受多个参数,将它们按顺序连接起来
- 如果提供的参数包含数字,`CONCATENATE` 函数会将数字转换为文本字符串并连接
- 如果提供的参数包含单元格引用,`CONCATENATE` 函数会将单元格的内容作为文本字符串连接
- 如果 `text1` 参数为空字符串(""`CONCATENATE` 函数将返回空字符串
- 如果 `text1` 参数之后的参数为空,`CONCATENATE` 函数将跳过这些参数
- 如果 `text1` 参数之后的参数为数字,`CONCATENATE` 函数会将数字转换为文本字符串并连接
**案例**
> 合并直接输入的文本
>
> =CONCATENATE("Hello", " ", "World")
>
> 合并单元格中的文本
>
> =CONCATENATE(A1, " ", B1)
>
> 合并包含特殊字符的文本
>
> =CONCATENATE("Hello", " ", "World!", "!")
>
> 合并包含数字的文本
>
> =CONCATENATE("Hello", " ", "World", 123)
---
## FIND 在字符串中查找另一字符串的起始位置
`FIND` 函数用于在一个文本字符串中查找另一个文本字符串的起始位置。基本语法:
> `=FIND(find_text, within_text, [start_num])`
**参数说明**
- `find_text`: 必需参数。要在 `within_text` 中查找的文本字符串
- `within_text`: 必需参数。包含 `find_text` 的文本字符串
- `[start_num]`: 可选参数。从 `within_text` 的哪个位置开始搜索 `find_text`。默认值为 1即从文本字符串的起始位置开始搜索
**说明**
- `FIND` 函数可以接受任何文本字符串作为参数
- `FIND` 函数返回 `find_text``within_text` 中首次出现的位置
- 如果 `find_text` 不存在于 `within_text` 中,`FIND` 函数将返回错误值 `#VALUE!`
- `FIND` 函数区分大小写
- 如果 `[start_num]` 参数为负数,`FIND` 函数将返回错误值 `#VALUE!`
- 如果 `[start_num]` 参数大于 `within_text` 的长度,`FIND` 函数将返回错误值 `#VALUE!`
- 如果 `find_text` 参数为空字符串(""`FIND` 函数将返回 1因为一个空字符串可以在任何位置找到
- 如果 `within_text` 参数为空字符串(""`FIND` 函数将返回错误值 `#VALUE!`,因为无法在空字符串中查找
- `FIND` 函数区分大小写,因此 "Hello" 和 "hello" 被视为不同的字符串
**案例**
> 查找直接输入的文本
>
> =FIND("World", "Hello World")
>
> 查找单元格中的文本
>
> =FIND("World", A1)
>
> 从指定位置开始查找
>
> =FIND("World", "Hello World", 5)
---
## REPLACE 替换字符串一部分内容
`REPLACE` 函数用于替换文本字符串中的一部分内容。基本语法:
> `=REPLACE(old_text, start_num, num_chars, new_text)`
**参数说明**
- `old_text`: 必需参数。原始文本字符串
- `start_num`: 必需参数。要开始替换的位置(索引)。索引从 1 开始
- `num_chars`: 必需参数。要替换的字符数量
- `new_text`: 必需参数。用来替换 `old_text` 中指定位置的文本字符串
**说明**
- `REPLACE` 函数可以接受任何文本字符串作为参数
- `REPLACE` 函数允许您指定要替换的文本字符串的位置和长度
- 如果 `start_num` 参数大于 `old_text` 的长度,`REPLACE` 函数将返回原始文本字符串
- 如果 `num_chars` 参数为负数,`REPLACE` 函数将返回错误值 `#VALUE!`
- 如果 `num_chars` 参数为 0`REPLACE` 函数将在指定位置插入 `new_text`,不会替换任何字符
- 如果 `start_num` 加上 `num_chars` 超出了 `old_text` 的长度,`REPLACE` 函数将替换从 `start_num` 开始到文本字符串结尾的所有字符
- 如果 `old_text` 参数为空字符串(""`REPLACE` 函数将返回空字符串
- 如果 `start_num` 参数为 0`REPLACE` 函数将返回错误值 `#VALUE!`
- 如果 `start_num` 参数加上 `num_chars` 超过了 `old_text` 的长度,`REPLACE` 函数将替换从 `start_num` 开始到文本字符串结尾的所有字符
**案例**
> 替换直接输入的文本
>
> =REPLACE("Hello World", 7, 5, "Universe")
>
> 替换单元格中的文本
>
> =REPLACE(A1, 7, 5, "Universe")
>
> 替换指定位置的文本
>
> =REPLACE("Hello World", 7, 5, "Universe")
---
## SUBSTITUTE 替换字符串内的指定文本
`SUBSTITUTE` 函数用于替换文本字符串中的指定文本。基本语法:
> `=SUBSTITUTE(text, old_text, new_text, [instance_num])`
**参数说明**
- `text`: 必需参数。原始文本字符串
- `old_text`: 必需参数。要替换的文本
- `new_text`: 必需参数。用来替换 `old_text` 的新文本
- `[instance_num]`: 可选参数。要替换的 `old_text` 实例的编号。如果不指定,则替换所有实例
**说明**
- `SUBSTITUTE` 函数可以接受任何文本字符串作为参数
- `SUBSTITUTE` 函数允许您替换文本字符串中的指定文本
- 如果 `[instance_num]` 参数省略,默认替换所有实例
- 如果 `[instance_num]` 参数为正整数,`SUBSTITUTE` 函数将替换指定编号的实例
- 如果 `[instance_num]` 参数为负数,`SUBSTITUTE` 函数将返回错误值 `#VALUE!`
- 如果 `[instance_num]` 参数大于实际的实例数,`SUBSTITUTE` 函数将不进行替换
- 如果 `text` 参数为空字符串(""`SUBSTITUTE` 函数将返回空字符串
- 如果 `old_text` 不存在于 `text` 中,`SUBSTITUTE` 函数将返回原始文本字符串
- `SUBSTITUTE` 函数区分大小写,因此 "Hello" 和 "hello" 被视为不同的字符串
**案例**
> 替换直接输入的文本
>
> =SUBSTITUTE("Hello World", "World", "Universe")
>
> 替换单元格中的文本
>
> =SUBSTITUTE(A1, "World", "Universe")
>
> 替换指定位置的文本
>
> =SUBSTITUTE("Hello World World", "World", "Universe", 2)
---
## VALUE 将文本字符串转换为数值
`VALUE` 函数用于将文本字符串转换为数值。基本语法:
> `=VALUE(text)`
**参数说明**
- `text`: 必需参数。要转换为数值的文本字符串
**说明**
- `VALUE` 函数可以接受任何看起来像数字的文本字符串作为参数
- `VALUE` 函数将尝试将文本字符串转换为数值
- 如果文本字符串不能被解释为数字,`VALUE` 函数将返回错误值 `#VALUE!`
- 如果 `text` 参数不是有效的数字文本,`VALUE` 函数将返回错误值 `#VALUE!`
- `VALUE` 函数不会改变文本字符串中的非数字字符。如果文本字符串包含除了数字和小数点/负号以外的其他字符,`VALUE` 函数将返回错误
- 当文本字符串中的小数点与区域设置中的小数点符号不匹配时,`VALUE` 函数可能无法正确转换文本
**案例**
> 转换直接输入的文本
>
> =VALUE("123")
>
> 转换包含小数的文本
>
> =VALUE("123.45")
>
> 转换单元格中的文本
>
> =VALUE(A1)
---
## TEXT 数值格式转化成字符串
TEXT函数用于将数值格式化为文本字符串并应用指定的数字格式。基本语法
> `=TEXT(value, format_text)`
**参数说明**
- `value`: 必需参数。要格式化的数值
- `format_text`: 必需参数。用于指定 `value` 的数字格式的文本字符串
- General:
- `General`: 默认格式Excel 自动选择最适合的格式
- Number:
- `#,##0`: 整数格式,千位分隔符
- `#,##0.00`: 浮点数格式,两位小数,千位分隔符
- `0.00`: 浮点数格式,两位小数,无千位分隔符
- `#0.00`: 浮点数格式,两位小数,只有当需要时才显示小数点
- `0`:整数格式,会将其四舍五入到最接近的整数
- Currency:
- `$#,##0.00`: 货币格式,美元符号,两位小数,千位分隔符
- `[$#,##0.00]`: 货币格式,美元符号,两位小数,千位分隔符,括号表示负数
- `€#,##0.00`: 欧元格式,欧元符号,两位小数,千位分隔符
- `£#,##0.00`: 英镑格式,英镑符号,两位小数,千位分隔符
- Date and Time:
- `mm/dd/yyyy`: 美国日期格式,月/日/年
- `dd.mm.yyyy`: 欧洲日期格式,日.月.年
- `yyyy-mm-dd`: ISO 8601 国际标准日期格式,年-月-日
- `hh:mm AM/PM`: 时间格式12小时制AM/PM 标志
- `hh:mm:ss`: 时间格式,小时:分钟:秒
- `yyyy-mm-dd hh:mm:ss`: 完整日期时间格式
- Percentage:
- `0%`: 百分比格式,一位小数
- `0.0%`: 百分比格式,两位小数
- Fractional:
- `# ?/?`: 分数格式,最大分母为 127
- `# ??/??`: 分数格式,最大分母为 1023
- Scientific Notation:
- `0.00E+00`: 科学记数法格式,两位小数
- Custom Formats:
- `[>9999]#,#0.00;[<=9999]#0.00`: 自定义格式,大于 9999 时显示带千位分隔符的小数格式,小于等于 9999 时不带千位分隔符
- `0.00_);[Red](0.00)`: 自定义格式,正常情况下显示浮点数,负数时显示红色字体
- `0.00_);(0.00)`: 自定义格式,正常情况下显示浮点数,负数时显示括号
- `0.00_);[Red](0.00)_);[Blue]---;[Green]+++`: 自定义格式,正常情况下显示浮点数,负数时显示红色字体,零值时显示蓝色破折号,正数时显示绿色加号
**说明**
- `TEXT` 函数可以接受任何数值作为参数
- `TEXT` 函数允许您指定输出文本字符串的数字格式
- `TEXT` 函数返回的文本字符串可以包含各种数字格式,如货币、日期、时间、分数、科学记数法等
- `TEXT` 函数返回的结果是文本字符串,这意味着它不能直接参与数学运算
- 如果 `value` 参数为错误值,`TEXT` 函数将返回错误
- 如果 `format_text` 参数不符合 Excel 的数字格式规则,`TEXT` 函数将返回错误
- `TEXT` 函数返回的文本字符串不能直接用于数学运算,但可以用于文本处理或显示目的
**案例**
> | A |
> | ---------- |
> | 12345.67 |
> | 2024-07-30 |
> | 0.5 |
>
> 将 A1 单元格中的数值格式化成$12,345.67
>
> =TEXT(A1, "$#,##0.00")
>
> 格式化包含特殊字符的数值
>
> =TEXT(A1, "[>9999]#, #0 .00;[<=9999] #0 .00")
>
> 对于 "12345.67",结果将是 "12,345.67"; 对于 "2024-07-30",结果将是 "30/07/2024"; 对于 "0.5",结果将是 "0.5"
---
## MAX 取得最大值
MAX函数用于找出一组数值中的最大值。基本语法
> `=MAX(number1, [number2], ...)`
**参数说明**
- `number1`: 必需参数。第一个数值或数值范围
- `[number2], ...`: 可选参数。其他数值或数值范围
**说明**
- `MAX` 函数可以接受任何数值或数值范围作为参数
- `MAX` 函数可以接受多个参数,返回所有参数中的最大值
- 如果提供的参数中包含文本或逻辑值 `TRUE``FALSE`,这些值将被忽略
- 如果所有参数都是空单元格或文本,`MAX` 函数将返回错误值 `#DIV/0!`
- 如果提供的参数中包含逻辑值 `TRUE``FALSE`,这些值将被忽略,除非它们直接作为参数输入
- `MAX` 函数可以处理多个参数,包括单元格引用、常量和数组
**案例**
> 找出输入值中的最大值
>
> =MAX(10, 20, 30, 40)
>
> 找出单元格中的最大值
>
> =MAX(A1:A10)
>
> 找出多个范围内的最大值
>
> =MAX(A1:A10, B1:B10)
---
## MAXIFS 在特定条件下找出最大值
MAXIFS函数用于找出一组数值中的最大值同时满足一个或多个条件。参数说明
> `=MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)`
**参数说明**
- `max_range`: 必需参数。包含要找出最大值的数值范围
- `criteria_range1`: 必需参数。第一个条件范围,用于应用 `criteria1`
- `criteria1`: 必需参数。应用于 `criteria_range1` 的条件
- `[criteria_range2, criteria2], ...`: 可选参数。额外的条件范围及其对应的条件
**说明**
- `MAXIFS` 函数可以接受多个条件范围及其对应的条件
- `MAXIFS` 函数可以处理复杂的条件,包括文本、数字和逻辑表达式
- 如果提供的条件范围中没有符合所有条件的值,`MAXIFS` 函数将返回错误值 `#DIV/0!`
- 如果所有参数都是空单元格或文本,`MAXIFS` 函数将返回错误值 `#DIV/0!`
- 如果提供的条件范围中没有符合所有条件的值,`MAXIFS` 函数将返回错误值 `#DIV/0!`
- `MAXIFS` 函数可以处理多个参数,包括单元格引用、常量和数组
**案例**
> 找出A1:A10单元格中对应于B1:B10单元格小于10的最大值
>
> =MAXIFS(A1:A10, B1:B10, "<10")
>
> 找出 A1:A10 中对应于 B1:B10 大于 10 且 C1:C10 小于 20 的最大值
>
> =MAXIFS(A1:A10, B1:B10, ">10", C1:C10, "<20")
>
> | A | B | C |
> | ---- | ---- | ---- |
> | 10 | 5 | 20 |
> | 20 | 10 | 15 |
> | 30 | 15 | 10 |
> | 40 | 20 | 5 |
> | 30 | 25 | Text |
>
> 找出 A 列中满足 B 列大于 10 且 C 列小于 20 的最大值( "Text" 不会被考虑为数值,所以 `MAXIFS` 函数将忽略它)
>
> =MAXIFS(A1:A4, B1:B4, ">10", C1:C4, "<20")
>
> 找出 A 列中满足 B 列大于 10 的最大值
>
> =MAXIFS(A1:A4, B1:B4, ">10")
---
## MIN 取得最小值
MIN函数用于找出一组数值中的最小值。基本语法
> `=MIN(number1, [number2], ...)`
**参数说明**
- `number1`: 必需参数。第一个数值或数值范围
- `[number2], ...`: 可选参数。其他数值或数值范围
**说明**
- `MIN` 函数可以接受任何数值或数值范围作为参数
- `MIN` 函数可以接受多个参数,返回所有参数中的最小值
- 如果提供的参数中包含文本或逻辑值 `TRUE``FALSE`,这些值将被忽略
- 如果所有参数都是空单元格或文本,`MIN` 函数将返回错误值 `#DIV/0!`
- 如果提供的参数中包含逻辑值 `TRUE``FALSE`,这些值将被忽略,除非它们直接作为参数输入
- `MIN` 函数可以处理多个参数,包括单元格引用、常量和数组
**案例**
> 找出输入值中的最小值
>
> =MIN(10, 20, 30, 40)
>
> 找出单元格中的最小值
>
> =MIN(A1:A10)
>
> 找出多个范围内的最小值
>
> =MIN(A1:A10, B1:B10)
---
## MINIFS 在特定条件下找出最小值
MINIFS函数用于找出一组数值中的最小值同时满足一个或多个条件。基础语法
> `=MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)`
**参数说明**
- `min_range`: 必需参数。包含要找出最小值的数值范围
- `criteria_range1`: 必需参数。第一个条件范围,用于应用 `criteria1`
- `criteria1`: 必需参数。应用于 `criteria_range1` 的条件
- `[criteria_range2, criteria2], ...`: 可选参数。额外的条件范围及其对应的条件
**说明**
- `MINIFS` 函数可以接受多个条件范围及其对应的条件
- `MINIFS` 函数可以处理复杂的条件,包括文本、数字和逻辑表达式
- 如果提供的条件范围中没有符合所有条件的值,`MINIFS` 函数将返回错误值 `#DIV/0!`
- 如果所有参数都是空单元格或文本,`MINIFS` 函数将返回错误值 `#DIV/0!`
- 如果提供的条件范围中没有符合所有条件的值,`MINIFS` 函数将返回错误值 `#DIV/0!`
- `MINIFS` 函数可以处理多个参数,包括单元格引用、常量和数组
**案例**
> 找出A1:A10单元格中对应于B1:B10单元格大于10的最小值
>
> =MINIFS(A1:A10, B1:B10, ">10")
>
> 找出 A1:A10 中对应于 B1:B10 大于 10 且 C1:C10 小于 20 的最小值
>
> =MINIFS(A1:A10, B1:B10, ">10", C1:C10, "<20")
>
> | A | B | C |
> | ---- | ---- | ---- |
> | 10 | 5 | 20 |
> | 20 | 10 | 15 |
> | 30 | 15 | 10 |
> | 40 | 20 | 5 |
> | 30 | 25 | Text |
>
> 找出 A 列中满足 B 列大于 10 且 C 列小于 20 的最小值( "Text" 不会被考虑为数值,所以 `MINIFS` 函数将忽略它)
>
> =MINIFS(A1:A4, B1:B4, ">10", C1:C4, "<20")
>
> 找出 A 列中满足 B 列大于 10 的最小值
>
> =MINIFS(A1:A4, B1:B4, ">10")
---
## ISNUMBER 判断一个值是否为数字
ISNUMBER函数用于检查一个值是否为数字。基本语法
> `=ISNUMBER(value)`
**参数说明**
- `value`: 必需参数。要测试的值或单元格引用
**说明**
- `ISNUMBER` 函数可以接受任何类型的值作为参数
- `ISNUMBER` 函数返回 TRUE 如果参数是数字,否则返回 FALSE
- `ISNUMBER` 函数可以用于验证公式或函数的结果是否为预期的数字类型
- `ISNUMBER` 函数会返回 FALSE 如果 `value` 参数是文本字符串,即使该文本看起来像数字(例如 "123"
- `ISNUMBER` 函数会返回 FALSE 如果 `value` 参数是错误值,例如 `#N/A``#DIV/0!`
- `ISNUMBER` 函数可以用于数组公式中,以测试数组中所有元素是否为数字
**案例**
> 测试直接输入的值
>
> =ISNUMBER(123)
>
> 测试单元格中的数值
>
> =ISNUMBER(A1)
>
> 测试公式结果
>
> =ISNUMBER(SUM(A1:A5))
---
## ISBLANK 判断单元格是否为空
ISBLANK函数用于判断单元格是否为空。基本语法
> `=ISBLANK(reference)`
**参数说明**
- `reference`: 必需参数。要测试的单元格或单元格区域
**说明**
- `ISBLANK` 函数仅接受单元格引用作为参数
- `ISBLANK` 函数返回 TRUE 如果单元格完全为空,即没有任何数据或公式
- `ISBLANK` 函数返回 FALSE 如果单元格包含任何类型的数据,包括公式、错误值或空白字符串 ""
- `ISBLANK` 函数不会检查单元格格式或注释
- 如果单元格包含公式但公式结果为空,`ISBLANK` 函数仍会返回 FALSE因为它识别到单元格中有公式存在
- `ISBLANK` 函数可以用于条件格式、数据有效性检查、以及动态数组公式中,以测试和处理空单元格
**案例**
> 测试单个单元格是否为空
>
> =ISBLANK(A1)
>
> 测试一片区域的单元格是否为空
>
> =ISBLANK(A1:B5)
---
## VLOOKUP 垂直查找引用函数
VLOOKUP函数用于在表格或范围的第一列查找特定值并返回同一行中指定列的值。通常在需要根据一个关键值查找并返回相关联的数据时使用。基本语法
> `=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])`
**参数说明**
- `lookup_value`: 必需参数。要查找的值。它可以是一个值或对包含查找值的单元格的引用
- `table_array`: 必需参数。包含数据的表格或范围。`lookup_value` 应该在 `table_array` 的第一列中
- `col_index_num`: 必需参数。`table_array` 中包含返回值的列号。列号为 1 表示返回 `table_array` 的第一列的值2 表示第二列的值,依此类推
- `[range_lookup]`: 可选参数。一个逻辑值,指明函数应执行精确匹配还是近似匹配。如果为 TRUE 或省略,则执行近似匹配;如果为 FALSE则执行精确匹配
**说明**
- `VLOOKUP` 函数只能在 `table_array` 的第一列中进行查找
- 当执行近似查找时,`table_array` 的第一列必须排序,否则结果可能不准确
- 如果找不到 `lookup_value``VLOOKUP` 函数将返回错误值 ` #N/A `
- 确保 `lookup_value``table_array` 的第一列中
- 如果 `range_lookup` 参数为 FALSE 或省略,且 `lookup_value` 不存在于 `table_array` 中,`VLOOKUP` 将返回错误值 ` #N/A `
- 当执行近似查找时,如果 `lookup_value` 小于 `table_array` 第一列中的最小值,`VLOOKUP` 也将返回错误值 ` #N/A `
**案例**
> | A | B |
> | ------- | ----- |
> | Product | Price |
> | Apple | $2.50 |
> | Banana | $0.75 |
> | Cherry | $3.00 |
>
> 查找 "Banana" 的价格
>
> =VLOOKUP("Banana", A2:B4, 2, FALSE)
>
> 查找整个表格中产品的价格
>
> =VLOOKUP(A2:A4, A2:B4, 2, FALSE)
>
> 查找一个不存在的产品的价格(结果是` #N/A `
>
> =VLOOKUP("Orange", A2:B4, 2, FALSE)
---
## HLOOKUP 水平查找引用函数
HLOOKUP函数用于在表格或范围的第一行查找特定值并返回同一列中指定行的值。通常在需要基于一个关键值查找并返回相关联的数据时使用特别适用于数据以行为主导的布局。基本语法
> `=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])`
**参数说明**
- `lookup_value`: 必需参数。要查找的值。它可以是一个值或对包含查找值的单元格的引用
- `table_array`: 必需参数。包含数据的表格或范围。`lookup_value` 应该在 `table_array` 的第一行中
- `row_index_num`: 必需参数。`table_array` 中包含返回值的行号。行号为 1 表示返回 `table_array` 的第一行的值2 表示第二行的值,依此类推
- `[range_lookup]`: 可选参数。一个逻辑值,指明函数应执行精确匹配还是近似匹配。如果为 TRUE 或省略,则执行近似匹配;如果为 FALSE则执行精确匹配
**说明**
- `HLOOKUP` 函数只能在 `table_array` 的第一行中进行查找
- 当执行近似查找时,`table_array` 的第一行必须排序,否则结果可能不准确
- 如果找不到 `lookup_value``HLOOKUP` 函数将返回错误值 ` #N/A `
- 确保 `lookup_value``table_array` 的第一行中
- 如果 `range_lookup` 参数为 FALSE 或省略,且 `lookup_value` 不存在于 `table_array` 中,`HLOOKUP` 将返回错误值 ` #N/A `
- 当执行近似查找时,如果 `lookup_value` 小于 `table_array` 第一行中的最小值,`HLOOKUP` 也将返回错误值 ` #N/A `
**案例**
> | A | B | C |
> | ------- | ----- | ----- |
> | Product | Jan | Feb |
> | Apple | $2.50 | $2.75 |
> | Banana | $0.75 | $0.80 |
> | Cherry | $3.00 | $3.25 |
>
> 查找 "Apple" 在二月份的价格
>
> =HLOOKUP("Apple", A1:C4, 3, FALSE)
>
> 找整个表格中产品在一月份的价格
>
> =HLOOKUP(B1:B3, A1:C4, 2, FALSE)
>
> 查找一个不存在的产品的价格
>
> =HLOOKUP("Orange", A1:C4, 3, FALSE)
---
## XLOOKUP 查找引用函数
XLOOKUP函数用于在表格或范围中查找特定值并返回与之相关联的另一个值。通常在需要查找数据并返回相关联的信息时使用特别是在需要更灵活和强大查找选项的情况下。基本语法
> `=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])`
**参数说明**
- `lookup_value`: 必需参数。要查找的值
- `lookup_array`: 必需参数。包含查找值的范围或数组
- `return_array`: 必需参数。与 `lookup_array` 关联的范围或数组,从中返回查找结果
- `[if_not_found]`: 可选参数。如果没有找到匹配项,此参数定义了返回的值。如果省略,默认返回 ` #N/A ` 错误
- `[match_mode]`: 可选参数。定义了匹配模式
- 0 或省略:精确匹配
- -1精确匹配或下一个小于 `lookup_value` 的值(近似匹配)
- 1精确匹配或下一个大于 `lookup_value` 的值(近似匹配)
- `[search_mode]`: 可选参数。定义了查找的方向
- 1 或省略:从左到右(或从上到下)
- -1从右到左或从下到上
- 2二分查找要求 `lookup_array` 排序
- -2二分查找从后向前要求 `lookup_array` 排序。
**说明**
- `XLOOKUP` 函数可以执行精确匹配和近似匹配
- 它可以处理多种查找方向,包括从左到右、从右到左、从上到下和从下到上
- 它允许定义未找到匹配项时的返回值
- `XLOOKUP` 函数在查找未找到的情况下返回的错误可以自定义,而不必总是返回 ` #N/A `
- 确保 `lookup_array` 正确排序,特别是当你使用近似匹配和二分查找模式时
- 如果 `lookup_array``return_array` 长度不一致,`XLOOKUP` 函数可能会返回错误结果
**案例**
> | A | B |
> | ------ | ----- |
> | Apple | $2.50 |
> | Banana | $0.75 |
> | Cherry | $3.00 |
>
> 查找 "Banana" 的价格
>
> =XLOOKUP("Banana", A2:A4, B2:B4)
>
> 找一个不存在的产品的价格,并返回默认值
>
> =XLOOKUP("Orange", A2:A4, B2:B4, "Product not found")
>
> 近似查找,返回最接近但不大于查找值的项
>
> =XLOOKUP(15, A2:A10, B2:B10, NA(), -1)
---
## COUNTIFS 根据一组条件计数满足所有条件的单元格数量
COUNTIFS函数用于根据一组条件计数满足所有条件的单元格数量。它可以用来统计多个范围内的单元格数目这些单元格必须同时满足指定的条件。基本语法
> `=COUNTIFS(range1, criteria1, [range2], [criteria2], ...)`
**参数说明**
- `range1`: 第一个条件范围,是你希望应用条件的第一个范围
- `criteria1`: 第一个条件,定义了在`range1`中要计数的单元格必须满足的标准
- `[range2], [criteria2]`: 可选的附加范围和条件对。最多可以指定127个范围/条件对
**说明**
- 条件可以使用文本、数字或表达式。例如,“>100”表示大于100
- 如果条件范围中有空白单元格,则它们不会被计数
- `COUNTIFS` 对大小写敏感。如果条件是文本,确保大小写一致
- 条件可以是通配符,如星号(*)表示任意字符,问号(?)表示单个字符
**案例**
> 假设我们有一个销售表其中A列为产品名称B列为地区C列为销售额我们可以使用`COUNTIFS`来统计特定产品在特定地区的销售次数
>
> `=COUNTIFS(A:A, "苹果", B:B, "北区")`
>
> 找出A、B、C三列中完全相同的行的数量输出值为1代表是唯一行若输出为0则代表该行中有某列数据存在问题
>
> `=COUNTIFS(A:A,A1,B:B,B1,C:C,C1)`