这篇文章里讲了三种提取表格指定区域不重复名单的方法。这次主要是对其中的两种方法进行学习。
使用新函数 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"),)&""
解释:
这个公式使用 INDIRECT
和 TEXT
函数结合来动态获取一个储存格的值,这个储存格是根据最小值的条件计算出来的。
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
的储存格,按行列顺序的最小值的内容。
延伸阅读:
评论已关闭