
Можно ли сделать что-то подобное в Excel? Типа списка активных строк с порядковым номером в них.
Есть столбец B. Он должен показывать порядковый номер, который представляет активную строку на листе. Посмотрите на изображение.
Если строка неактивна, то столбец B не будет иметь порядкового номера. Теперь, когда яудалить некоторые порядковые номераиз столбца B, порядковый порядок должен обновиться соответственно. Допустим, я удаляю текст ячейки B7, как мне сделать так, чтобы столбец B обновил свои значения. Посмотрите на изображение.
Можно ли сделать это простым способом, без написания большого количества кода скрипта?
PS. Я не эксперт по Excel, поэтому было бы здорово, если бы было простое решение с помощью встроенных формул Excel. :) PPS. эта функция похожа на нумерованный список Word. Если я удалю любой элемент списка, последующие элементы обновят его значения соответствующим образом.
РЕДАКТИРОВАТЬ
В столбце A перечислены все задачи от 1 до X. В столбце B перечислены активные задачи. Они упорядочены по статусу (активные неактивные). Когда я заканчиваю определенную задачу (например, 7-ю задачу), я просто удаляю ее значение в столбце B, а затем вручную исправляю все последующие числа. Таким образом я знаю, сколько у меня активных задач и какие из них активны.
Пожалуйста, сообщите, если что-то все еще непонятно и какая часть требует дополнительных пояснений!!!
P.S. Задания описаны в столбцах C, D и E, но эта часть здесь неактуальна.
решение1
Я думаю, было бы проще управлять, если бы у вас был дополнительный столбец, где вы могли бы просто отмечать, активна ли строка, скажем, с помощью «x». Тогда вы могли бы автоматически вычислять порядковый ранг каждой активной строки в следующем столбце.
Например, если вы сделаете столбец B содержащим символы «x», обозначающие, что строка активна, в столбце C вы можете ввести следующее (в C2
):
=IF(B2="x",MAX(C$1:C1)+1,"")
Затем заполните эту колонку.
решение2
На основе предложений я нашел правильный и простой способ сделать это. Просто используя max
функцию.
Формула такова:=MAX($B$X:BY)+1
Например, в ячейку B2 я ввожу формулу =MAX($B$1:B1)+1
, а затем копирую ее во все остальные ячейки столбца B и вуаля - я получил то, что мне нужно. Я могу удалить любое значение ячейки, и все последующие сразу же обновятся.
Спасибо ребята!
решение3
Не зная, как попадают входные данные или для чего они используются, вы можете попробовать следующее:
Если вы ввели «1» в ячейку B1 и скопировали следующую формулу в ячейку B2:
=IF(B1 = "", OFFSET(B1,-1,0)+1,B1+1)
это позволит вам поддерживать список и удалять один диапазон. Если вы хотите иметь возможность удалить 2 ячейки, вам придется добавить еще один блок if для проверки каждой предыдущей ячейки.
Примечание: Offset
позволяет удалить содержимое ячейки и «перейти» на одну ячейку вверх в списке, если указанная выше ячейка пуста
Использование циклического макроса обеспечит большую масштабируемость.
Более подробная информация о том, чего вы пытаетесь достичь, будет весьма полезна.