diff --git a/SanPinPLM/相关操作/4.0-other/998.Excel常用函数.md b/SanPinPLM/相关操作/4.0-other/998.Excel常用函数.md new file mode 100644 index 00000000..7776c16c --- /dev/null +++ b/SanPinPLM/相关操作/4.0-other/998.Excel常用函数.md @@ -0,0 +1,1406 @@ +# 介绍 + +使用Excel函数可以大幅提升数据处理效率、准确性和自动化水平 + +注意:若参数中包含了报错,那么多数函数的返回值也会是报错 + +# 函数列表 + +## SUM 求和函数 + +SUM函数用于计算一系列数值的总和。基本语法如下: + +> `=SUM(number1, [number2], ...)` + +**参数说明** + +- `number1`:必需参数。第一个需要求和的项,可以是直接的数值、单元格引用或者包含数值的区域 +- `[number2]`, ...:可选参数。后续需要求和的项,最多可以有 255 个参数 + +**说明** + +- `SUM` 函数可以接受多种类型的参数,包括数值、单元格引用、区域和逻辑值(TRUE 被转换为 1,FALSE 被转换为 0) +- 当区域中有非数值数据时,这些数据会被忽略 +- `SUM` 函数能够自动扩展以适应拖拽填充柄时所选择的单元格范围 +- 空单元格不会被计入总和中 + +**案例** + +> 对10,20,30求和 +> +> =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 转换为 1,FALSE 转换为 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 被转换为 1,FALSE 被转换为 0) +- 当区域中有非数值数据时,这些数据会被忽略 +- `AVERAGE` 函数能够自动扩展以适应拖拽填充柄时所选择的单元格范围 +- 如果 `AVERAGE` 函数中的参数包含了错误值(例如 #DIV/0 !),则最终的结果也会产生错误。 +- 空单元格不会被计入平均值计算中。 +- 如果所有参数都是空白或文本,则 `AVERAGE` 函数将返回 #DIV/0 ! 错误 + +**案例** + +> 对10,20,30求平均值 +> +> =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 之间相对应,但它们**会忽略隐藏行中的数据以及任何由过滤器排除的数据** + + | function_num | 描述 | + | ------------ | ------------------------------- | + | 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)` diff --git a/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173114.png b/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173114.png new file mode 100644 index 00000000..f731935d Binary files /dev/null and b/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173114.png differ diff --git a/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173221.png b/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173221.png new file mode 100644 index 00000000..46740bf1 Binary files /dev/null and b/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173221.png differ diff --git a/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173301.png b/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173301.png new file mode 100644 index 00000000..fa48f8a9 Binary files /dev/null and b/外发客户教程/客户特供/兆隆光电/assets/Pasted image 20250402173301.png differ diff --git a/外发客户教程/客户特供/兆隆光电/如何完成我的任务.md b/外发客户教程/客户特供/兆隆光电/如何完成我的任务.md index 61b73e8f..bf9653bd 100644 --- a/外发客户教程/客户特供/兆隆光电/如何完成我的任务.md +++ b/外发客户教程/客户特供/兆隆光电/如何完成我的任务.md @@ -1,3 +1,4 @@ +# 介绍 项目管理-项目跟踪-我的任务-我未完成任务-选中所需任务-双击打开 @@ -11,6 +12,7 @@ 选择文件夹-选择所需的文档-添加-确定 ![](assets/Pasted%20image%2020250402171703.png) + 文件就添加进来了 ![](assets/Pasted%20image%2020250402171833.png) @@ -24,6 +26,23 @@ ![](assets/Pasted%20image%2020250402172541.png) 弹出窗口及导入成功 + ![](assets/Pasted%20image%2020250402172614.png) + 如何工作流 +选中所有文档-鼠标右键-创建工作流 + +![](assets/Pasted%20image%2020250402173028.png) + +弹窗中点击 **确定** + +![](assets/Pasted%20image%2020250402173114.png) + +弹窗中点击 **确定** + +![](assets/Pasted%20image%2020250402173221.png) + +弹窗中点击 **完成** 即完成创建工作流 + +![](assets/Pasted%20image%2020250402173301.png) \ No newline at end of file diff --git a/外发客户教程/客户特供/兆隆光电/如何提交变更审批流.md b/外发客户教程/客户特供/兆隆光电/如何提交变更审批流.md index bd6f37f9..21bbaedc 100644 --- a/外发客户教程/客户特供/兆隆光电/如何提交变更审批流.md +++ b/外发客户教程/客户特供/兆隆光电/如何提交变更审批流.md @@ -1,3 +1,5 @@ # 介绍 -无论是任何文件的变更,其变更审批流都是 \ No newline at end of file +无论是任何文件的变更,其变更审批流都是无法在流程附件中查看到文件的,想要查看到是哪份文件发生了变更,必须要在 **变更操作** 里才能找到这份文件 + +![](assets/Pasted%20image%2020250402155102.png) \ No newline at end of file diff --git a/外发客户教程/客户特供/兆隆光电/如何提交审批流.md b/外发客户教程/客户特供/兆隆光电/如何提交审批流.md index bb129213..2eda8085 100644 --- a/外发客户教程/客户特供/兆隆光电/如何提交审批流.md +++ b/外发客户教程/客户特供/兆隆光电/如何提交审批流.md @@ -22,9 +22,9 @@ ![](assets/Pasted%20image%2020250402164754.png) -1.勾选直接驳回 文件被驳回,下次文件提交则跳过中间的流程,直接到您手中审批 -2.不选直接驳回 文件被驳回,下次文件提交按原有流程一步一步审批 -无论是否勾选 直接驳回,文件都会被驳回您选定的过程 +1. 勾选直接驳回 文件被驳回,下次文件提交则跳过中间的流程,直接到您手中审批 +2. 不选直接驳回 文件被驳回,下次文件提交按原有流程一步一步审批 +3. 无论是否勾选 直接驳回,文件都会被驳回到您选定的过程 ![](assets/Pasted%20image%2020250402165615.png)