从 Excel 多行多列表中提取出现 3 次的唯一值,排成一列
文章标签:
excel按条件提取数据
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
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(...):从上述结果中提取出唯一值