Excel:创建唯一标识符

时间:2016-10-05 22:50:30

标签: excel

我希望根据一些标准为excel中的表创建唯一标识符列。我附上了一张带有下面示例表的图片供参考。

示例excel表

enter image description here

我想要创建的内容类似于第三列“唯一ID”,但是,根据我需要满足的标准,我很难过:

    1. ID需要以“类别”的第一个字母开头
    1. 每个类别ID在首次引入时需要从1开始,但在重新引入时继续从中断开始。
    1. 如果某个类别具有相同的“类型”,则“唯一ID”需要创建某种附加子集ID,例如“.1”,“a”等。

如果有人有任何建议,我真的很感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

假设您的数据位于B2:C23

要生成唯一ID,请使用这些公式数组

同时按 [Ctrl] + [Shift] + [Enter] 输入FormulaArray,如果输入正确,您将在公式周围看到 { }

格式A#.#结果D3:D23

D3处复制公式数组,直至D23

=IF(-1+COUNTIFS($B$2:$B3,$B3,$C$2:$C3,$C3)=0,
CONCATENATE(UPPER(LEFT($B3)),COUNTIF($B$2:$B3,$B3)),
CONCATENATE(
IFERROR(INDEX($D$2:$D2,
1-ROW($B$2)
+SMALL(IF(($B$2:$B$23=$B3)*($C$2:$C$23=$C3)=0,"",ROW($B$2:$B$23)),1)),""),
".",-1+COUNTIFS($B$2:$B3,$B3,$C$2:$C3,$C3)))

格式A#.a结果E3:E23

E3处复制公式数组,直至E23

=IF(-1+COUNTIFS($B$2:$B3,$B3,$C$2:$C3,$C3)=0,
CONCATENATE(UPPER(LEFT($B3)),COUNTIF($B$2:$B3,$B3)),
CONCATENATE(
IFERROR(INDEX($E$2:$E2,
1-ROW($B$2)
+SMALL(IF(($B$2:$B$23=$B3)*($C$2:$C$23=$C3)=0,"",ROW($B$2:$B$23)),1)),""),
".",CHAR(96+-1+COUNTIFS($B$2:$B3,$B3,$C$2:$C3,$C3))))

enter image description here

相关问题