Excel 2019中如何提取列表分组唯一值、统计次数并生成镜像单元格?
在Excel 2019中实现分组唯一值、次数统计及数值镜像的方法
前提说明
假设目标数据区域为B3:B14,包含数字和空单元格;我们将用辅助列+数组公式完成需求,最终结果分别放在D列(分组唯一值)、E列(次数统计)、F列(镜像结果)。
步骤1:提取非空值到辅助列(C列)
先把B列的非空值筛选出来,避免空单元格干扰后续逻辑:
- 在
C3输入公式:=IF(B3<>"",B3,"") - 下拉填充到
C14,C列会保留B列所有非空数字,空单元格仍为空。
步骤2:生成分组唯一值列表(D列)
分组唯一值规则:相同数值被其他数值分隔后再次出现,视为新项;空单元格直接忽略。
- 在
D3输入数组公式(输入完成后按Ctrl+Shift+Enter确认,公式会自动包裹大括号{}):=IFERROR(INDEX($C$3:$C$14,SMALL(IF(($C$3:$C$14<>"")*(OFFSET($C$3:$C$14,-1,0)<>$C$3:$C$14),ROW($C$3:$C$14)-ROW($C$3)+1),ROW(D3)-ROW($D$3)+1)),"") - 下拉填充到
D列,直到出现空值为止。公式会自动提取所有“与前一个非空值不同”的数值,比如原序列16、25、25、16、25会生成16、25、16、25。
步骤3:统计每组相邻相同数值的出现次数(E列)
统计每个分组对应的连续相同数值数量(忽略空单元格,即中间有空单元格的相同数值视为同一组):
- 在
E3输入数组公式(按Ctrl+Shift+Enter确认):=IF(D3="","",SUMPRODUCT(($C$3:$C$14=D3)*(ROW($C$3:$C$14)>=MATCH(D3,$C$3:$C$14,0))*(ROW($C$3:$C$14)<=IFERROR(MATCH(TRUE,OFFSET($C$3:$C$14,MATCH(D3,$C$3:$C$14,0),0)<>D3,0)+MATCH(D3,$C$3:$C$14,0)-1,ROW($C$14)-ROW($C$3)+1)))) - 下拉填充到
E列,对应D列的每个分组值,会显示该组连续出现的次数,比如原序列16、25、25、16、25对应的次数是1、2、1、1。
步骤4:生成数值镜像显示的单元格(F列)
镜像显示即把分组唯一值列表倒序排列:
- 先在
G3输入公式:=COUNTA(D3:D14),得到分组值的总个数。 - 在
F3输入公式:=INDEX(D$3:D$14,$G$3-ROW(F3)+ROW(D$3)) - 下拉填充到
F列,直到覆盖所有分组值,即可得到D列的镜像结果,比如分组值16、25、16、25会变成25、16、25、16。
补充说明
- 数组公式必须按
Ctrl+Shift+Enter确认,否则无法正常运行; - 若不想用辅助列,可将公式中的
$C$3:$C$14直接替换为$B$3:$B$14,但需确保空单元格不会干扰判断。
内容的提问来源于stack exchange,提问作者Angetenars
相关产品推荐
相关产品推荐

