1

Я пытаюсь сгенерировать уникальный идентификационный номер для элементов в таблице в Excel.

Например: 1.2.4 Для каждого столбца число уникально нумеруется в зависимости от текста. Например, в таблице ниже будет добавлена еще одна запись Fruit, и ей будет присвоен первичный идентификатор 1.

Тогда вторичный идентификатор должен быть уникальным идентификатором на основе первичного. Например, добавление строки внизу в качестве типа банана будет присвоено: 1 для вторичного идентификатора.

Тогда третичный идентификатор основан на уникальном номере под вторичным ключом.

А потом, в конце концов, просто собрать их всех вместе, что просто

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

В итоге я немного растерялся, когда нашел следующую формулу в Интернете, чтобы получить уникальные предметы:

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

Изменить: эта формула соответствует элементам и дает им уникальный идентификационный номер. Проверьте пример ниже.

Следующий шаг, где мне нужна помощь, - заставить его работать в формате xxx и сделать его уникальным только в зависимости от того, какой родительский ключ делает его вложенным.

 

╔════════╦════╗
║  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 ║
╚════════╩════╝

Пример таблицы ниже:


╔════════════╦══════════════╦══════════════╦═══════════════╦═════════════╦═══════════════╦════════╗
║ 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  ║
╚════════════╩══════════════╩══════════════╩═══════════════╩═════════════╩═══════════════╩════════╝

1 ответ1

0

Ниже приведен немного другой подход к Gen ID.

Мне пришлось настроить формат вашей таблицы Excel в следующем формате.

По сути, что я сделал, как показано ниже:1. Переставил первичные, вторичные и третичные имена в первые три столбца.

  1. Затем добавили еще один столбец (OrigSort), чтобы сохранить исходный порядок сортировки записей в крайнем правом углу (при условии, что этот порядок может быть важен для вас, и мы изменим его на следующем шаге)

  2. Сортировка всей таблицы по первым трем столбцам в порядке возрастания.

  3. Как только мы дойдем до этой точки, очень легко настроить формулы для идентификаторов для каждого из ключей, как показано ниже:

    Col D: основной идентификатор

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

    Col E: Вторичный ID

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

    Col F: третичный ID

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

  4. Теперь используйте операцию Concatenate, чтобы получить Gen ID в Col G

  5. Наконец (необязательный шаг) восстановите порядок сортировки обратно, используя столбец OrigSort.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .