Atribuir números únicos sequenciais aninhados para itens na tabela do Excel

1

Estou tentando gerar um número de ID exclusivo para itens em uma tabela no Excel.

Por exemplo: 1.2.4 Para cada coluna, o número é numerado exclusivamente com base no texto. Por exemplo, na tabela abaixo, seria adicionar outra entrada de frutas e ser atribuído o ID primário de 1.

Em seguida, o ID secundário precisaria ser um ID exclusivo com base no principal. Por exemplo, adicionando uma linha na parte inferior como um tipo de Banana seria atribuído: 1 para o ID secundário.

O ID é baseado no número único sob a chave secundária.

E então, finamente, apenas construindo todos juntos, o que é apenas

=PrimaryID&"."&"SecondaryID"&"."&TeritaryID

Acabei ficando um pouco perdido depois de encontrar a seguinte fórmula on-line para obter itens exclusivos:

=IF(COUNTIF(A$2:A2,A2)=1,MAX(B$1:B1)+1,VLOOKUP(A2,A$1:B1,2,0))

Editar: Essa fórmula corresponde aos itens e fornece um número de identificação exclusivo Veja o exemplo abaixo.

O próximo passo em que preciso de ajuda é fazê-lo funcionar com um formato de x.x.x e torná-lo único, dependendo da chave pai, tornando-o aninhado.

 

╔════════╦════╗
║  Item  ║ ID ║
╠════════╬════╣
║ Test 1 ║  1 ║
║ Test 2 ║  2 ║
║ Nice   ║  3 ║
║ Test 2 ║  2 ║
║ Test 3 ║  4 ║
║ Test 4 ║  5 ║
║ dsa    ║  6 ║
║ Nice   ║  3 ║
║ Test 1 ║  1 ║
║ A      ║  7 ║
╚════════╩════╝

Exemplo da tabela abaixo:


╔════════════╦══════════════╦══════════════╦═══════════════╦═════════════╦═══════════════╦════════╗
║ Primary ID ║ Primary Name ║ Secondary ID ║ Secondary Key ║ Tertiary ID ║ Teritary Name ║ Gen ID ║
╠════════════╬══════════════╬══════════════╬═══════════════╬═════════════╬═══════════════╬════════╣
║          1 ║ Fruit        ║            1 ║ Banana        ║           1 ║ Cavendish     ║ 1.1.1  ║
║          1 ║ Fruit        ║            1 ║ Banana        ║           2 ║ Lacatan       ║ 1.1.2  ║
║          2 ║ Veg          ║            1 ║ Potato        ║           1 ║ Maris Piper   ║ 2.1.1  ║
║          1 ║ Fruit        ║            2 ║ Apple         ║           1 ║ Pink Lady     ║ 1.2.1  ║
║          1 ║ Fruit        ║            2 ║ Apple         ║           2 ║ Gala          ║ 1.2.2  ║
║          1 ║ Fruit        ║            2 ║ Apple         ║           3 ║ Granny Smith  ║ 1.2.3  ║
║          3 ║ Meat         ║            1 ║ Chicken       ║           1 ║ Sussex        ║ 3.1.1  ║
║          2 ║ Veg          ║            1 ║ Potato        ║           2 ║ Yukon Gold    ║ 2.1.2  ║
║          1 ║ Fruit        ║            3 ║ Grape         ║           1 ║ Cardinal      ║ 1.3.1  ║
╚════════════╩══════════════╩══════════════╩═══════════════╩═════════════╩═══════════════╩════════╝

    
por Jonathan Nakandala 16.08.2018 / 15:59

1 resposta

0

Veja abaixo uma abordagem ligeiramente diferente para obter o ID Gen.

Eu tive que ajustar o formato da sua tabela do excel para o formato abaixo.

Essencialmente,oquefizfoioseguinte:1.ReorganizaçãodosNomesPrimário,SecundárioeTerciárionastrêsprimeirascolunas.

  • Em seguida, adicionamos outra coluna (OrigSort) para manter a ordem de classificação original das entradas na extrema direita (supondo que a ordem possa ser importante para você e estaremos mudando isso na próxima etapa)

  • Classificou toda a tabela nas três primeiras colunas na ordem crescente.

  • Quando chegarmos a este ponto, é muito fácil configurar as fórmulas para os IDs de cada uma das Chaves, conforme abaixo:

    Coluna D: ID principal

    =IF(COUNTIF(A$2:A2,A2)=1,MAX(D$1:D1)+1,VLOOKUP(A2,A$1:D1,4,0))

    Coluna E: ID secundário

    =IF((A2=A1),IF(B2=B1,E1,E1+1),1)

    Col: F: ID do Terciário

    =IF((A2=A1)*(B2=B1),IF(C2=C1,F1,F1+1),1)

  • Agora, use a operação Concatenate para obter o ID Gen em Col G

  • Finalmente, (etapa opcional) restaure a ordem de classificação usando a coluna OrigSort.

  • por 17.08.2018 / 08:46