Таблица данных Excel с автоинкрементом ключа

Я хотел бы создать таблицу с каждой строкой, проиндексированной с помощью автоинкремента.

Я попытался использовать A2 = A1 + 1 или добавить 1 к предыдущему значению. Это должно быть решение в соответствии с этой веткой. Однако добавление новых строк (с помощью клавиши табуляции или перетаскивания угла вниз) не приводит к автоматическому увеличению столбца индекса.

Какое решение?


4

Если вы ссылаетесь на = row (1: 1) в первая строка вашей таблицы, она автоматически заполнит 1, 2, 3, 4, 5 и т.д. для того количества строк, которое у вас есть в вашей таблице. Формула автоматически будет иметь вид = row (1: 1) или 1, = row (2: 2) или 2, = row (3: 3) или 3 и т. д.

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

Улучшить этот ответ
отредактировал 12 марта ’16 в 8:08
techraf
4,5961111 золотых знаков2020 серебряных знаков3636 бронзовых знаков
ответил 12 марта ’16 в 3:38
  • 3
    Предполагается, что таблица никогда не будет отсортирована. Столбец всегда будет увеличиваться на 1, даже если вы отсортируете его от наибольшего к наименьшему. — Gravitate 14 ноя. ’18 в 11:03
добавить комментарий |

Если вы укажете = row (1: 1) в первой строке вашей таблицы, она автоматически заполнит 1, 2, 3, 4, 5 и т.д. для того количества строк, которое есть в вашей таблице. Формула автоматически будет иметь вид = row (1: 1) или 1, = row (2: 2) или 2, = row (3: 3) или 3 и т. д.

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


2

Предположим, вы хотите, чтобы идентификатор отображался в столбце A Sheet1

  • Создайте именованный диапазон для одной ячейки с именем nmID и вставьте формулу = MAX (Sheet1! A: A) +1
  • Выберите ячейки в столбце A Sheet1, которые содержат значения в этой строке.
  • Щелкните ленту данных> Проверка данных.
  • Выбрать Список в разделе «Разрешить»
  • Для типа источника в =nmID

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

Улучшите этот ответ
отредактировано 26 сен ’19 в 18:11
HackSlash
3,69333 золотых знака1313 серебряных знаков3232 бронзовых знака
31 июля ’19 в 16:27
  • 1
    Пол, это работает, но я не понимаю почему. Вы можете объяснить, что здесь происходит? — HackSlash 26 сен 2019 в 18:11
добавить комментарий |

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

  • Создайте Именованный диапазон одной ячейки с именем nmID и вставьте формулу = MAX (Sheet1! A: A) +1
  • Выберите ячеек в столбце A Sheet1, которые содержат значения в этой строке.
  • Щелкните ленту данных> Проверка данных.
  • Выберите List в разделе Разрешить
  • Для типа источника в =nmID

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



Функция автоматического подсчета макросов MS Excel

Добрый день всем, в настоящее время я все еще сталкиваюсь с проблемой задачи моего начальника , чтобы создать макрос MS Excel.

Проблема, с которой сейчас сталкиваются, — это

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

Я перепробовал так много кода из интернет-источников, но результат все тот же: не удалось запустить код или подсчитанное количество было 0.

У кого-нибудь есть предложения или решения. Спасибо.

Ниже приведены 2 кодирования ошибок

  • Это кодирование будет отображать только 0 устаревших данных.

    CountedAmount = Application.WorksheetFunction.CountIf (Range («L4: L1048576»), «Red»)

  • Это кодирование не выполняется, отображается предупреждение Ошибка выполнения 1004 Ошибка, определяемая приложением или объектом

    CountedAmount = Application.WorksheetFunction.CountIf (Range («L4: xlUp»), «Red»)

Это полный код моего макроса.

  Sub Worksheet_Activate () Dim CountedAmount As IntegerWith Worksheets  ("Sheet1") lastrow = Range ("L1048576"). End (xlUp) .Row'Это кодирование будет отображать только 0 устаревших данных.CountedAmount = Application.WorksheetFunction. CountIf (Range ("L4: L1048576"), "Red") 'Это кодирование не будет выполняться, отображается предупреждение Ошибка выполнения 1004 Определяемая приложением или объектно-определяемая ошибка' CountedAmount = Application.WorksheetFunction.CountIf (Range ("  L4: xlUp ")," Red ") For i = 4 To lastrowIf Range (" L "& i) .Value " "And Now " "Then If Range (" L "& i) .Value  

Если вы хотите подсчитайте количество ячеек, окрашенных в красный цвет, затем используйте что-то вроде этого:

  Dim startCell As Integer, endCell As IntegerDim column As IntegerDim CountCells As IntegerstartCell = 4endCell = 100column = 12 'Column  LCountCells = 0Dim i As IntegerFor i = startCell To endCell Шаг 1 Если Cells (i, column) .Interior.ColorIndex = 3 Then CountCells = CountCells + 1 End IfNext i  

Настроить startCell и endCell, чтобы сопоставить ячейку и столбец с столбцом. Этот цикл в настоящее время выполняет поиск от L4 до L100

И вы должны выяснить, какой цветовой индекс имеет красный, который вы используете. Возможно, вам придется использовать .Color вместо .ColorIndex, который использует код RGB.

Оцените статью
logicle.ru
Добавить комментарий