仅供参考
查找和引用函数之FILTER 函数
FILTER 函数可以基于定义的条件筛选一系列数据。
语法
FILTER 函数基于布尔值 (True/False) 数组筛选数组。
=FILTER(array,include,[if_empty])
| 参数 | 描述 |
| array 必需 | 要筛选的数组或区域 |
| include 必需 | 布尔值数组,其高度或宽度与数组相同 |
| [if_empty] 可选 | 所含数组中的所有值都为空(筛选器不返回任何内容)时返回的值 |
注意:
- 可将数组视为一行值、一列值或几行值和几列值的组合。 在上述示例中,FILTER 公式的源数组为范围 A5:D20。
- FILTER 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- 如果数据集可能返回空值,请使用第三个参数 ([if_empty])。 否则将导致 #CALC! 错误 ,因为 Excel 当前不支持空数组。
- 如果 include 参数的任何值都是一个错误的值(#N/A、#VALUE 等)或无法转换为布尔值,则 FILTER 函数将返回一个错误。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
查找和引用函数之SORT 函数
SORT 函数可对某个区域或数组的内容进行排序。
语法
SORT 将返回数组中排序的元素数组。 返回的数组与所提供的数组参数的形状相同。
=SORT(array,[sort_index],[sort_order],[by_col])
| 参数 | 描述 |
| array 必需 | 要排序的区域或数组 |
| [sort_index] 可选 | 一个数字,表示要按其排序的行或列 |
| [sort_order] 可选 | 一个数字,表示所需的排序顺序;1 表示升序(默认值),-1 表示降序 |
| [by_col] 可选 | 一个逻辑值,指示所需的排序方向;False 表示按行排序(默认值),True 表示按列排序 |
注意:
- 如果未提供 sort_index,将假定使用 row1/col1。 如果未提供顺序,将假定使用升序排序。 默认情况下,Excel 将按行排序,并且仅当 by_col 为 True 时按列排序。 如果 by_col 为 False 或缺失,Excel 将按行排序。
- 提供 SORT 函数,以对数组中的数据排序。 如果想要对网格中的数据排序,最好使用 SORTBY 函数,因为它更灵活。 SORTBY 将尊重列添加/删除,因为在它引用的区域中,SORT 引用列索引号。
- 可将数组视为一行值、一列值或几行值和几列值的组合。 在上述示例中,SORT 公式的源数组为范围 A5:D20。
- SORT 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
查找和引用函数之SORTBY 函数
SORTBY 函数基于相应范围或数组中的值对范围或数组的内容进行排序。
语法
=SORTBY (数组,by_array1,[sort_order1],[by_array2,sort_order2],…)
| 参数 | 描述 |
| array 必需 | 要进行排序的数组或区域 |
| by_array1 必需 | 要对其进行排序的数组或区域 |
| [sort_order1] 可选 | 要用于排序的顺序。 1 表示升序,-1 表示降序。 默认值为升序。 |
| [by_array2] 可选 | 要对其进行排序的数组或区域 |
| [sort_order2] 可选 | 要用于排序的顺序。 1 表示升序,-1 表示降序。 默认值为升序。 |
注意:
- 可将数组视为一行值、一列值或几行值和几列值的组合。 在上述示例中,SORTBY 公式的数组为范围 D2:E9。
- SORTBY 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
查找和引用函数之UNIQUE 函数
UNIQUE 函数返回列表或范围中的一系列唯一值。
语法
=UNIQUE (array,[by_col],[exactly_once])
UNIQUE 函数具有下列参数:
| 参数 | 描述 |
| array 必需 | 要返回唯一行或列的范围或数组 |
| [by_col] 可选 | by_col参数是一个逻辑值,指示如何比较。 TRUE 将相互比较列并返回唯一列 FALSE (或省略) 将行彼此比较并返回唯一行 |
| [exactly_once] 可选 | exactly_once参数是一个逻辑值,它将返回在区域或数组中恰好出现一次的行或列。 这是唯一的数据库概念。 TRUE 将返回从区域或数组恰好出现一次的所有非重复行或列 FALSE (或省略) 将返回区域或数组中所有不同的行或列 |
注意:
- 可以将数组视为值的行或列,或值行和列的组合。 在以上示例中,UNIQUE 公式的数组分别为区域 D2:D11 和 D2:D17。
- UNIQUE 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
查找和引用函数之XLOOKUP 函数
使用 XLOOKUP 函数按行查找表格或区域内容。
语法
XLOOKUP 函数搜索区域或数组,然后返回对应于它找到的第一个匹配项的项。 如果不存在匹配项,则 XLOOKUP 可以返回最接近 (匹配) 值。
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
| 参数 | 描述 |
| lookup_value 必需* | 查找值 *如果省略,则使用空白单元格进行匹配。 注意: 空字符串与空白单元格不同,无效 用于lookup_value,并生成错误。 |
| lookup_array 必需 | 要搜索的数组或区域 |
| return_array 必需 | 要返回的数组或区域 |
| [if_not_found] 可选 | 如果找不到有效匹配项,则返回你if_not_found的 [if_not_found] 文本。 如果未找到有效匹配项,并且缺少 [if_not_found],则#N/A。 |
| [match_mode] 可选 | 指定匹配类型: 0 – 完全匹配。 如果未找到,则返回 #N/A。 这是默认选项。 -1 – 完全匹配。 如果没有找到,则返回下一个较小的项。 1 – 完全匹配。 如果没有找到,则返回下一个较大的项。 2 – 通配符匹配,其中 *, ? 和 ~ 有特殊含义。 |
| [search_mode] 可选 | 指定要使用的搜索模式: 1 – 从第一项开始执行搜索。 这是默认选项。 -1 – 从最后一项开始执行反向搜索。 2 – 执行依赖于 lookup_array 按升序排序的二进制搜索。 如果未排序,将返回无效结果。 2 – 执行依赖于 lookup_array 按降序排序的二进制搜索。 如果未排序,将返回无效结果。 |
查找和引用函数之XMATCH 函数
XMATCH函数在数组或单元格区域搜索指定项,然后返回该项的相对位置。
语法
XMATCH 函数返回项在数组或单元格区域中的相对位置。
=XMATCH (lookup_value、lookup_array、[match_mode]、[search_mode])
| 参数 | 描述 |
| lookup_value 必需 | 查找值 |
| lookup_array 必需 | 要搜索的数组或区域 |
| [match_mode] 可选 | 指定匹配类型: 0 – 默认值 (完全) -1 – 完全匹配或下一个最小项 1 – 完全匹配或下一个最大项 2 – 通配符匹配,其中 *, ? 和 ~ 有特殊含义。 |
| [search_mode] 可选 | 指定搜索类型: 1 – 默认搜索 (搜索) -1 – 搜索倒序搜索 (搜索) 。 2 – 执行依赖于按升lookup_array排序的二进制搜索。 如果未排序,将返回无效结果。 2 – 执行依赖于 lookup_array 按降序排序的二进制搜索。 如果未排序,将返回无效结果。 |
数学和三角函数之LET 函数
LET 函数会向计算结果分配名称。 这样就可存储中间计算、值或定义公式中的名称。 这些名称仅可在 LET 函数范围内使用。 与编程中的变量类似,LET 是通过 Excel 的本机公式语法实现的。
若要在 Excel 中使用 LET 函数,需定义名称/关联值对,再定义一个使用所有这些项的计算。 必须至少定义一个名称/值对(变量),LET 最多支持 126 个对。
优势
- 提升性能 如果你在某公式中多次编写同一表达式,Excel 之前会多次计算出结果。 而借助 LET,你可按名称调用表达式,Excel 也只计算一次。
- 轻松阅读和撰写 不用再记住特定范围/单元格引用是指什么、你的计算在执行什么操作,也不用再复制/粘贴相同的表达式。 借助可声明和命名变量的能力,你可为自己和公式使用者提供有意义的上下文。
语法
=LET(name1, name_value1, calculation_or_name2, [name_value2, calculation_or_name3…])
| 参数 | 描述 |
| name1 必需 | 要分配的第一个名称。 必须以字母开头。 不能是公式的输出,也不能与范围语法冲突。 |
| name_value1 必需 | 分配给 name1 的值。 |
| calculation_or_name2 必需 | 下列任一项: · 使用 LET 函数中的所有名称的计算。 这必须是 LET 函数中的最后一个参数。 · 分配给第二个 name_value 的第二个名称。 如果指定了名称,则 name_value2 和 calculation_or_name3 是必需的。 |
| name_value2 可选 | 分配给 calculation_or_name2 的值。 |
| calculation_or_name3 可选 | 下列任一项: · 使用 LET 函数中的所有名称的计算。 LET 函数中的最后一个参数必须是一个计算。 · 分配给第三个 name_value 的第三个名称。 如果指定了名称,则 name_value3 和 calculation_or_name4 是必需的。 |
注意:
- 最后一个参数必须是会返回结果的计算。
- 变量的名称与可在名称管理器中使用的有效名称一致。 例如,“a”有效,但“c”无效,因为后者与 R1C1 样式参考冲突。
数学和三角函数之RANDARRAY 函数
RANDARRAY 函数返回一组随机数字。 可指定要填充的行数和列数,最小值和最大值,以及是否返回整数或小数值。
语法
=RANDARRAY([rows],[columns],[min],[max],[whole_number])
| 参数 | 描述 |
| [rows] 可选 | 要返回的行数 |
| [columns] 可选 | 要返回的列数 |
| [min] 可选 | 你想返回的最小数值 |
| [max] 可选 | 你想返回的最大数值 |
| [whole_number] 可选 | 返回整数或十进制值 · TRUE 表示整数 · FALSE 表示十进制数。 |
注意:
- 如果不输入行或列参数,RANDARRAY 将返回 0 到 1 之间的单个值。
- 如果不输入最小值或最大值参数,RANDARRAY 将分别用 0 和 1 默认表示。
- 最小数参数必须小于最大数,否则 RANDARRAY 将返回 #VALUE! 错误。
- 如果不输入 whole_number 参数,RANDARRY 会默认值 FALSE,或十进制数值。
- RANDARRAY 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- RANDARRAY 与 RAND 函数不同 ,RAND不返回数组,因此需要将 RAND 复制到整个范围。
- 可将数组视为一行值、一列值或几行值和几列值的组合。 在上面的示例中,RANDARRAY 公式的数组是范围 D2:F6,或 5 行乘 3 列。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
数学和三角函数之SEQUENCE 函数
SEQUENCE 函数可在数组中生成一系列连续数字,例如,1、2、3、4。
语法
=SEQUENCE(行,[列],[开始数],[增量])
| 参数 | 描述 |
| rows 必需 | 要返回的行数 |
| [columns] 可选 | 要返回的列数 |
| [start] 可选 | 序列中第一个数字 |
| [step] 可选 | 数组中每个连续值递增的值 |
注意:
- 任何缺少的可选参数都将默认为1。
- 可将数组视为一行值、一列值或几行值和几列值的组合。 在上述示例中,SEQUENCE 公式的数组为范围 C1:G4。
- SEQUENCE 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
文本函数之ARRAYTOTEXT 函数
ARRAYTOTEXT 函数返回任意指定区域内的文本值的数组。 它传递不变的文本值,并将非文本值转换为文本。
语法
ARRAYTOTEXT(array, [format])
ARRAYTOTEXT 函数语法具有下列参数。
| 参数 | 描述 |
| array 必需 | 要返回为文本的数组。 |
| 格式 可选 | 返回数据的格式,两个值之一: 0 默认。 易于阅读的简明格式。 返回的文本将与应用了常规格式的单元格中呈现的文本相同。 1 包含转义字符和行定界符的严格格式。 生成一条可在输入编辑栏时被解析的字符串。 将返回的字符串(布尔值、数字和错误除外)封装在引号中。 |
注意:
- “简明”格式将返回一个单元格内的值的列表,而“严格”格式返回与输入大小和形状相同的数组。
- 如果格式不是 0 或 1 之外的任何内容,ARRAYTOTEXT 将返回 #VALUE! 错误值。
文本函数之VALUETOTEXT 函数
VALUETOTEXT 函数返回来自任何指定值的文本。 它传递不变的文本值,并将非文本值转换为文本。
语法
VALUETOTEXT (value, [format])
VALUETOTEXT 函数语法具有下列参数。
| 参数 | 描述 |
| value 必需 | 要作为文本返回的值。 |
| 格式 可选 | 返回数据的格式,两个值之一: 0 默认。 易于阅读的简明格式。 返回的文本将与应用了常规格式的单元格中呈现的文本相同。 1 包含转义字符和行定界符的严格格式。 生成一条可在输入编辑栏时被解析的字符串。 将返回的字符串(布尔值、数字和错误除外)封装在引号中。 |
注意: 如果格式不是 0 或 1,则 VALUETOTEXT 返回#VALUE! 错误值。