我有一张操作工作表(纠正、NCR、IMP 等),需要让它自动计算先前提出的相同类型的操作,以便创建唯一的操作 ID。
我曾经用来VLOOKUP()
获取动作 ID 的第一部分(类型),但我无法弄清楚如何让它计算该列中相同类型的动作以获取下一个连续数字部分。
到目前为止我有以下内容:
=VLOOKUP(C3,Sheet3!A2:B5,2)
这可以识别类型,即CAR
、OBS
、IMP
和NCR
。
有人能帮忙如何添加序列号部分吗?
编辑:
我希望公式的结果能为同一类型的每个操作赋予一个唯一的 ID。例如,如果有多个同类型的操作,NCR
它将生成如下 ID:NCR0001
、NCR0002
、CAR0001
、OBS0001
、NCR0003
。
答案1
一旦您意识到该COUNTIF()
函数可以与通配符一起使用,解决方案就非常简单了。
Sheet3
像这样设置
你的工作表如下
输入以下公式D3
,然后按 ctrl-enter/copy-paste/fill-down/auto-fill 将其填充到表格其余列中:
=VLOOKUP(C3,Sheet3!$A$2:$B$5,2,FALSE)
&RIGHT(10001+COUNTIF(D$2:D2,VLOOKUP(C3,Sheet3!$A$2:$B$5,2,FALSE)&"????"),4)
解释:
基本上,该公式计算当前单元格上方发生的相同类型的操作的数量,然后创建一个数字部分比该数字部分多一个的 ID。
它使用函数中的通配符?
(任何单个字符)COUNTIF()
来匹配当前类型后跟任意四个字符,例如,D3
函数部分求值为COUNTIF(D$2:D2,"NCR????")
。这里要注意的关键D$2:D2
是动态的范围的计算结果为“从行2
到当前单元格(列D
)上方的行”。
然后加一并在数字左边填充零。RIGHT(10001+<count of type>,4)
最后,将该数字附加到类型中。
笔记:
您的VLOOKUP()
修改已正确运行:
- 第二个参数需要是绝对地址
- 第四个需要是
FALSE
而不是默认的TRUE
。