我正在尝试为 Excel 表中的项目生成唯一的 ID 号。
例如:1.2.4 对于每一列,数字都是根据文本唯一编号的。例如,在下表中,将添加另一个水果条目,并为其分配主 ID 1。
然后,次要 ID 需要是基于主要 ID 的唯一 ID。例如,在底部添加一行作为香蕉类型,则将分配:次要 ID 为 1。
然后,三级ID基于二级键下的唯一编号。
最后把它们全部组合起来
=PrimaryID&"."&"SecondaryID"&"."&TeritaryID
在网上找到以下获取独特物品的公式后,我有点迷失了方向:
=IF(COUNTIF(A$2:A2,A2)=1,MAX(B$1:B1)+1,VLOOKUP(A2,A$1:B1,2,0))
编辑:此公式匹配项目并为其提供唯一的 ID 号,请查看下面的示例。
下一步我需要帮助的是让它以 xxx 的格式工作,并让它仅根据使其嵌套的父键变得唯一。
╔════════╦════╗ ║ 商品 ║ ID ║ ╠════════╬════╣ ║ 测试 1 ║ 1 ║ ║ 测试 2 ║ 2 ║ ║ 不错 ║ 3 ║ ║ 测试 2 ║ 2 ║ ║ 测试 3 ║ 4 ║ ║ 测试 4 ║ 5 ║ ║ dsa ║ 6 ║ ║ 不错 ║ 3 ║ ║ 测试 1 ║ 1 ║ ║ 一个 ║ 7 ║ ╚════════╩════╝
下表示例:
╔════════════╦════════════════╦════════════════╦════════════════╦═══════════════╦═══════════════╦════════════╗ ║ 主 ID ║ 主名称 ║ 次要 ID ║ 次要密钥 ║ 第三 ID ║ 第三名称 ║ Gen ID ║ ╠════════════╬═════════════════╬══════════════════╬═════════════════╬════════════════╬════════════════╬════════════╣ ║ 1 ║ 水果 ║ 1 ║ 香蕉 ║ 1 ║ 卡文迪什 ║ 1.1.1 ║ ║ 1 ║ 水果 ║ 1 ║ 香蕉 ║ 2 ║ 拉卡坦 ║ 1.1.2 ║ ║ 2 ║ 蔬菜 ║ 1 ║ 土豆 ║ 1 ║ Maris Piper ║ 2.1.1 ║ ║ 1 ║ 水果 ║ 2 ║ 苹果 ║ 1 ║ 粉红女士 ║ 1.2.1 ║ ║ 1 ║ 水果 ║ 2 ║ 苹果 ║ 2 ║ 加拉 ║ 1.2.2 ║ ║ 1 ║ 水果 ║ 2 ║ 苹果 ║ 3 ║ 格兰尼史密斯 ║ 1.2.3 ║ ║ 3 ║ 肉 ║ 1 ║ 鸡 ║ 1 ║ 苏塞克斯 ║ 3.1.1 ║ ║ 2 ║ 蔬菜 ║ 1 ║ 土豆 ║ 2 ║ 育空黄金 ║ 2.1.2 ║ ║ 1 ║ 水果 ║ 3 ║ 葡萄 ║ 1 ║ 红衣主教 ║ 1.3.1 ║ ╚════════════╩══════════════════╩═════════════════╩════════════════╩═══════════════╩══════════════╩═══════════╝
答案1
请参阅下面略微不同的获取 Gen ID 的方法。
基本上我所做的如下:1. 重新排列前三列的主要名称、次要名称和第三名称。
然后添加另一列(OrigSort)以维护最右侧条目的原始排序顺序(假设该顺序对您来说可能很重要,我们将在下一步中更改它)
按前三列的升序对整个表进行排序。
一旦我们到达这一点,就可以很容易地设置每个键的 ID 公式,如下所示:
D 栏:主要 ID
=IF(COUNTIF(A$2:A2,A2)=1,MAX(D$1:D1)+1,VLOOKUP(A2,A$1:D1,4,0))
E 号:次要 ID
=IF((A2=A1),IF(B2=B1,E1,E1+1),1)
F 栏:第三级 ID
=IF((A2=A1)*(B2=B1),IF(C2=C1,F1,F1+1),1)
现在,使用连接操作获取 Col G 中的 Gen ID
最后,(可选步骤)使用 OrigSort 列恢复排序顺序。