365 版本问世好几年了,有不少同学还没尝试过,仍然在使用低版本的 Excel。
如果条件允许,建议大家尽量升级到最新版本,因为很多在低版本中很难的问题,用高阶函数则不费吹灰之力。
案例:将下图 1 中出现过 3 次的姓名去重后提取出来,排在同一列中,删除空单元格。
效果如下图 2 所示。
解决方案:
1. 在 F2 单元格中输入以下公式 --> 回车:
=TOCOL(A2:D9,1)
公式释义:
tocol 的作用是将数组转换成一列;
语法为 TOCOL(array, [ignore], [scan_by_column]);
array:要返回的数组;
ignore:忽略的内容
0:保留所有值(默认)
1:忽略空白
2:忽略错误
3:忽略空白和错误
scan_by_column:按列扫描数组;默认情况下是按行扫描;
本例的公式表示将区域 A2:D9 按行扫描转换成一列,忽略空值
2. 在 G2 单元格中输入以下公式 --> 下拉复制公式:
=IF(COUNTIF($F$2#,F2)=3,F2,"")
公式释义:
如果 F2 单元格的内容在数组区域 $F$2# 内出现 3 次,则返回 F2 的值,否则返回空值;
$F$2# 中的 # 表示引用的是动态数组区域
3. 在 H2 单元格中输入以下公式 --> 回车:
=UNIQUE(FILTER(G2:G24,G2:G24<>""))
公式释义:
FILTER(G2:G24,G2:G24<>""):筛选出区域 G2:G24 内不为空的值;
UNIQUE(...):从上述结果中提取出唯一值