Excel去重生成连续序号、适配VLOOKUP空列及无空值下拉列表求助
Excel连续序号生成与无空白下拉列表实现方案
1. A列同值同号连续序号公式(适配B列预留空白结构)
你的原公式问题出在VLOOKUP的规则限制:VLOOKUP要求查找值必须位于查找区域的第一列,你设置的查找区域C$1:A1中C列为第一列,要返回A列值需要填写列索引为3而非2,左查找场景更推荐用INDEX+MATCH组合避免列顺序变动的影响。
适配预留B列的通用公式(所有Excel版本可用,A2单元格输入后下拉填充即可):
=IF(COUNTIF(C$2:C2,C2)=1,MAX(A$1:A1)+1,INDEX(A:A,MATCH(C2,C:C,0)))
公式逻辑说明:
COUNTIF(C$2:C2,C2)=1:判断当前行C列值是否为首次出现- 首次出现时调用
MAX(A$1:A1)+1生成不重复的递增新序号 - 非首次出现时通过
INDEX+MATCH组合定位该值在C列第一次出现的行号,返回对应A列已有序号,不受中间B列空白/后续插列的影响,可直接配套VLOOKUP使用。
2. A列无空白值下拉列表实现
Excel 365/2021及以上版本(无需辅助列)
直接选中要设置下拉的单元格,打开「数据验证」,允许类型选「序列」,来源填写:
=UNIQUE(FILTER(A:A,A:A<>""))
即可自动生成去重、无空白的序号下拉列表,A列新增序号时下拉列表会自动更新。
旧版Excel(需辅助列)
- 任选空白列作为辅助列(例如D列),D2单元格输入数组公式:
=IFERROR(INDEX(A:A,SMALL(IF(A$2:A$1000<>"",ROW($2:$1000),9999),ROW(A1))),"")
输入完成后按Ctrl+Shift+Enter触发数组计算,下拉填充到超过A列最大数据量的行数即可得到无空白的序号列。
2. 打开数据验证,允许类型选「序列」,来源选择D列辅助区域即可。
内容的提问来源于stack exchange,提问作者Codewriter123
相关产品推荐
相关产品推荐

