下图所示为某银行员工单指单张点钞用时考核的部分记录,需要将用时秒数提取不重复数值后从小到大排列,并依次提取出对应的员工名单。

excel中提取不重复值后排序的方法及实例详解-趣帮office教程网

一、提取不重复用时秒数并排序

在 D2 单元格中输入公式=IFERROR(SMALL(IF(FREQUENCY(B$2:B$16,B$2:B$16),B$2:B$16),ROW(B1)),""),并向下复制到单元格显示空白为止。

  • 公式中的 “FREQUENCY (B$2:B$16,B$2:B$16)” 部分,对于 B2:B16 单元格区域的数值,如果是首次出现,则返回出现的次数;如果是重复出现则返回 0。例如得到的内存数组结果可能是{2;3;1;1;1;1;2;0;0;0;1;1;1;1;0;0}
  • 以此作为 IF 函数的第一参数,如果内存数组结果中的数值不等于 0,返回 B2:B16 单元格区域中对应的数值,否则返回逻辑值 FALSE。相当于提取出了用时秒数不重复值的内存数组结果,如{26.44;27.88;27.89;28.95;29.44;27.34;25.39;FALSE;FALSE;FALSE;28.14;25.63;29.33;27.13;FALSE;FALSE}
  • 最后使用 SMALL 函数,从小到大依次提取出不重复的用时秒数。

excel中提取不重复值后排序的方法及实例详解-趣帮office教程网

二、根据用时秒数提取对应的员工名单

在 E2 单元格中输入数组公式{=INDEX($A:$A,SMALL(IF($B$2:$B$16=$D2,ROW($2:$16),4^8),COLUMN(A1)))&""},按 组合键,将公式复制到 E2:G14 单元格区域。

这个公式的运算过程较为复杂,主要是通过 INDEX 函数结合 SMALL 函数和 IF 函数来实现。首先,IF 函数判断 B2:B16 单元格区域中的用时秒数是否等于 D2 单元格中的某个不重复用时秒数,如果相等,则返回对应的行号,否则返回一个较大的数值(这里是 4^8)。然后,SMALL 函数从小到大依次提取这些行号。最后,INDEX 函数根据提取出的行号从 A 列(员工名单列)中提取出对应的员工名字,并通过连接空字符串 "" 来处理可能出现的错误值。

通过以上步骤,可以从员工考核记录中提取出不重复的用时秒数并从小到大排序,同时提取出对应的员工名单,方便对员工考核情况进行整理和分析。