2024-10-30T06:31:19.png

这篇文章里讲了三种提取表格指定区域不重复名单的方法。这次主要是对其中的两种方法进行学习。

使用新函数 TOCOL

此函数需要 EXCEL 2021,或者 WPS 12 版本。

UNIQUE(TOCOL(B2:F7,1))

TOCOL 函数是将二维数组转换成单列的形式。语法:

=TOCOL(array, [ignore], [scan_by_column])

array 表示要转换成单列的数组或引用,
[ignore] 表示是否忽略某些类型的值。 默认情况下,不会忽略任何值。0--保留所有值(默认);1--忽略空白;2--忽略错误;3--忽略空白和错误。
scan_by_column 表示按列扫描数组。如果省略 scan_by_column 或 FALSE,则按行扫描数组;如果为 TRUE,则按列扫描数组。

通用方法

适用于较低版本的 Excel 或者 WPS 使用。H2单元格输入以下数组公式:

=INDIRECT(TEXT(MIN(IF(COUNTIF(H$1:H1,B$2:F$7)=0,ROW($2:$7)*100+COLUMN(B:F),99999)),"R0C00"),)&""

解释:
这个公式使用 INDIRECTTEXT 函数结合来动态获取一个储存格的值,这个储存格是根据最小值的条件计算出来的。

H$1:H1: 这是 COUNTIF 函数用来计算的范围,检查该范围内的值是否等于 0。
B$2:F$7: 这是需要检查的范围,公式要找出在该范围内,还未被计算的最小行列位置。
ROW($2:$7): 这返回行号
COLUMN(B:F): 这返回列号,并将两者乘上 100 以形成一个独特的数值。
MIN(IF(COUNTIF(...) = 0, ... , 99999)): 这会找出在 H$1:H1 中不存在的最小行列位置的值。
TEXT(...,"R0C00"): 将行列位置格式化为 R1C1 的形式以便使用 INDIRECT 函数。
INDIRECT(...): 最后,这个函数会转换成对应储存格的引用。

总结:该公式动态交回一个尚未出现在 H$1:H1 的储存格,按行列顺序的最小值的内容。

延伸阅读:

  1. TOCOL 函数 - Microsoft 支持

评论已关闭