У меня есть таблица действий (корректирующая, NCR, IMP и т.д.), И мне нужно, чтобы она автоматически подсчитывала предыдущие действия одного и того же типа для создания уникальных идентификаторов действий.

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

Пока у меня есть следующее:

=VLOOKUP(C3,Sheet3!A2:B5,2) 

Это работает для определения типа, то есть CAR , OBS , IMP и NCR .

Может кто-нибудь помочь с тем, как добавить порядковый номер части?

РЕДАКТИРОВАТЬ:

Я хочу, чтобы результат формулы давал каждому действию того же типа уникальный идентификатор. Так, например, если есть несколько действий типа NCR он сгенерирует идентификаторы, подобные этому: NCR0001 , NCR0002 , CAR0001 , OBS0001 , NCR0003 .

1 ответ1

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)

Объяснение:

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

Он использует подстановочный знак ? (любой отдельный символ) в функции COUNTIF() чтобы соответствовать текущему типу, за которым следуют любые четыре символа, например, для D3 функция частично оценивается как COUNTIF(D$2:D2,"NCR????") Здесь следует отметить, что D$2:D2 - это динамический диапазон, который оценивается как «от строки 2 до строки выше текущей ячейки (столбца D)».

Затем RIGHT(10001+<count of type>,4) добавляет единицу и накладывает число слева нулями.

Наконец, этот номер добавляется к типу.

Заметки:

Ваш VLOOKUP() был изменен для правильной работы:

  • Второй аргумент должен быть абсолютным адресом
  • Четвертый должен быть FALSE а не значение по умолчанию, которое TRUE .

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