EXCEL函数提取指定列不重复值到任意列且无空格

 时间:2026-02-13 03:20:47

1、函数目的:在I列取G列的不重复值

完整函数:=IFERROR(INDEX(G:G,SMALL(IF(MATCH($G$1:$G$6,$G$1:$G$6,)=ROW($G$1:$G$6),ROW($G$1:$G$6),4^8),ROW(G1)))&"",””)

思路:判断G列数据的行号,若为重复行号,则取个极大值,然后把结果排序;用INDEX函数+行号,把值取出。(数组函数Ctrl+Shift+Enter)

EXCEL函数提取指定列不重复值到任意列且无空格

2、1.用MATCH函数,可以取得相应值得行号。待查找值G1:G6,查找范围G1:G6,找到后范围对应数据的行号。

对应函数:MATCH($G$1:$G$6,$G$1:$G$6,)

得到结果:{1,2,2,2,5,6}

3、2.由于我们需要的行号是1,2,5,6;那么就需要把另外的两个2,忽略掉。

这时需要引入IF、ROW、SMALL函数。

①   ROW函数,ROW(G1),往下拖公式时,会得到结果1,2,3,4,5,6--------n;

②   用IF函数,判断MATCH的结果,与ROW的结果,若相同取ROW的结果,若不同,返回一个极大的数字,如4^8;

对应函数:

(IF(MATCH($G$1:$G$6,$G$1:$G$6,)=ROW($G$1:$G$6),ROW($G$1:$G$6),4^8)

③  用SMALL函数+ROW函数,将取得的行号的数字组合,从小到大排序,(这里为了函数更容易理解,把SMALL公式中,范围的部分,直接写成得到的列数的数组了),如:SMALL({1,2,4^8, 4^8,5,6,},ROW(G1)),得到结果{1,2,5,6,4^8, 4^8}

对应函数:

SMALL(IF(MATCH($G$1:$G$6,$G$1:$G$6,)=ROW($G$1:$G$6),ROW($G$1:$G$6),4^8),ROW(G1))

4、3.然后通过INDEX函数,把G列的值取出来

对应函数:

INDEX(G:G,SMALL(IF(MATCH($G$1:$G$6,$G$1:$G$6,)=ROW($G$1:$G$6),ROW($G$1:$G$6),4^8),ROW(G1)))

5、4.为了避免出现0值和错误值影响美观,在函数后面加上&””,在函数外面套上IFERROR(已有函数,””)

对应函数:

=IFERROR(INDEX(G:G,SMALL(IF(MATCH($G$1:$G$6,$G$1:$G$6,)=ROW($G$1:$G$6),ROW($G$1:$G$6),4^8),ROW(G1)))&"",””)

完毕。(转载请注明出处)

  • excel表格技巧—用函数实现模糊查询
  • Excel从多表中提取不重复的值(数据透视图法)
  • 通过VBA代码合并单元格
  • Excel中如何用函数对数据进行查找引用
  • 一列数据只有一个数据但位置不定怎样提取
  • 热门搜索
    冰岛旅游局 上海到北京旅游 普陀旅游 埃及旅游最佳时间 塞班岛旅游价格 广东哪里旅游好玩 湖北神农架旅游攻略 长白山旅游路线 广州市旅游职业学校 韩国釜山旅游