Как сделать неизменяемый диапазон в excel

Обновлено: 07.07.2024

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

Чтобы понять, как работают динамические именованные диапазоны, сначала нужно познакомиться с функцией Excel СМЕЩ (OFFSET), если вы еще не знакомы с ней. Функция СМЕЩ (OFFSET) относится к ссылочным функциям и функциям поиска Excel.

Начнем с простейшего динамического именованного диапазона, который будет расширяться вниз по одному столбцу, но только до тех пор, пока в этом столбце есть записи. Например, если в столбце А есть 10 последовательных строк с данными, динамический именованный диапазон будет охватывать диапазон А1:А10. Чтобы создать базовый динамический именованный диапазон, сделайте следующее.

Выберите команду Вставка → Имя → Присвоить (Insert → Name → Define) и в поле Имя (Names in workbook) введите MyRange. В поле Формула (Refers to) введите следующую формулу: =OFFSET($A$1;0;0;COUNTA($A$l:$A$100);l), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТЗ($А$1:$А$100);1). Теперь щелкните на кнопке Добавить (Add), затем щелкните на кнопке ОК.


При определении диапазона для функции COUNTA (СЧЁТЗ) не следует включать столбец данных полностью, чтобы функции не пришлось при вычислении учитывать, возможно, тысячи ненужных ячеек.


Теперь, если вы добавите некоторые данные в столбец А, этот диапазон будет содержать все данные в соседних строках, начиная с ячейки А1. Если вы хотите проверить динамический именованный диапазон, это можно сделать несколькими способами.

К сожалению, динамические именованные диапазоны нельзя проверить в стандартном поле имени слева от строки формул. Несмотря на это, можно щелкнуть в поле имени, ввести имя MyRange и нажать клавишу Enter. Excel автоматически выделит диапазон. Конечно, можно воспользоваться и диалоговым окном Переход (Go То), выбрав команду Правка → Перейти (Edit → Go To) (сочетание клавиш Ctrl/Apple+G). В поле Ссылка (Reference) введите MyRange и щелкните на кнопке ОК.

В динамическом именованном диапазоне, который вы создали в предыдущем примере, функция СЧЁТЗ (COUNTA) стоит на месте аргумента Высота (Height) функции СМЕЩ (OFFSET).



Если у вас есть список, который содержит только числовые данные, а в конце списка вы хотите записать текстовое значение, но не помещать его в динамический именованный диапазон, можно заменить функцию СЧЁТЗ (COUNTA) стандартной функцией Excel СЧЁТ (COUNT). Она подсчитывает только ячейки, содержащие числовые данные.

В следующем примере динамический именованный диапазон мы применим для определения таблицы данных, которая должна быть динамической. Для этогоn в поле Формула (Refers to) введите следующую формулу: =OFFSET($A$1;0;0;COUNTA($A$1:$A$100);COUNTA($1:$1)), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТЗ($А$1:$А$100);СЧЁТЗ($1:$1)). Теперь динамический именованный диапазон будет расширяться на столько записей, сколько есть в столбце А, и на столько строк, сколько заголовков в строке 1. Если вы уверены, что количество столбцов в таблице данных меняться не будет, можете заменить вторую функцию СЧЁТЗ (COUNTA) постоянным числом, например, 10.

Единственная проблема при использовании динамического именованного диапазона для таблицы данных заключается в том, что предполагается, что столбец А определяет максимальную длину таблицы. Чаще всего это так, однако иногда самым длинным столбцом может быть другой столбец таблицы. Преодолеть эту проблему можно при помощи функции Excel МАКС (МАХ), которая возвращает самое большое число в диапазоне ячеек. В качестве примера создайте таблицу, как на рис. 3.4.

Рис. 3.4. Динамическая таблица данных и диалоговое окно присвоения имени

Рис. 3.4. Динамическая таблица данных и диалоговое окно присвоения имени

В строке 1 хранятся функции СЧЁТЗ (COUNTA), которые ссылаются вниз на соответствующий столбец и, таким образом, возвращают количество записей в каждом столбце. Функция МАКС (МАХ) будет использоваться в качестве аргумента Высота (Height) функции СМЕЩ (OFFSET). Это гарантирует, что динамический именованный диапазон для этой таблицы всегда будет расширяться вниз на столько ячеек, сколько их содержится в самом длинном столбце в таблице. Конечно же, можно скрыть строку 1, так как пользователю совершенно не нужно ее видеть.

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

В следующем примере список чисел в столбце А также содержит пустые ячейки. Это означает, что, если вы попытаетесь воспользоваться функцией СЧЁТ (COUNT) или СЧЁТЗ (COUNTA), динамический именованный диапазон закончится раньше, чем последняя ячейка с данными. Взгляните, например, на рис. 3.5.

Рис. 3.5. Диапазон чисел и диалоговое окно присвоения имени

Рис. 3.5. Диапазон чисел и диалоговое окно присвоения имени

В этом случае, хотя последнее число диапазона в действительности находится в строке 10, динамический диапазон расширяется вниз только до шестой строки. Причина этого лежит в функции СЧЁТ (COUNT), которая считает значения в ячейках от А1 до А100. Так как в списке только шесть числовых значений, диапазон содержит только шесть строк.

Чтобы преодолеть эту проблему, воспользуйтесь функцией Excel ПОИСКПОЗ (MATCH). Функция ПОИСКПОЗ (MATCH) возвращает относительную позицию элемента массива, соответствующего указанному значению в указанном порядке. Например, если вы примените следующую функцию ПОИСКПОЗ (MATCH): =МАТСН(6;$А$1:$А$100;0), в русской версии Excel =ПОИСКПОЗ(6;$А$1:$А$100;0), к тому же набору чисел, что и на рис. 3.5, она вернет число 10, представляющее строку 10 столбца А. Она возвращает 10, так как вы приказали функции найти число 6 в диапазоне А1:А100.

Очевидно, когда вы используете функцию ПОИСКПОЗ (MATCH) в динамическом именованном диапазоне, последнее число диапазона, вероятно, заранее неизвестно. Таким образом, понадобится задать в функции поиск слишком большого числа, которое никогда не появится в диапазоне, и изменить ее последний аргумент с 0 на 1.

В предыдущем примере вы приказали функции ПОИСКПОЗ (MATCH) найти в точности число 6, не больше и не меньше. Заменив 0 на 1, вы заставите функцию искать самое большое значение, меньшее или равное указанному. Для этого воспользуйтесь формулой =МАТСН(1Е+306;$А$1:$А$100;1), в русской версии Excel =ПОИСКПОЗ(1Е+306;$А$1:$А$100;1).

Чтобы создать динамический именованный диапазон, который будет расширяться до последней строки, содержащей число (независимо от наличия пустых ячеек до нее), введите следующую формулу в поле Формула (Refers to) диалогового окна Присвоение имени (Define Name) (рис. 3.6): =OFFSET(Sheet2!$A$1;0;0;MATCH(lE+306;Sheet2!$A$l:$A$100;1);1), в русской версии Excel =CMEЩ(Sheet2!$A$1;0;0;ПОИСКПОЗ(1E+306;Sheet2!$A$l:$A$100;1);1).

Рис. 3.6. Динамический диапазон, расширяющийся до последней записи, содержащей число

Рис. 3.6. Динамический диапазон, расширяющийся до последней записи, содержащей число

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

Дайте ячейке А1 имя MaxRow. Выберите команду Вставка → Имя → Присвоить (Insert → Name → Define), присвойте динамическому диапазону имя, например, MyList и в поле Формула (Refers to:) введите следующую формулу: =OFFSET(Sheet2!$A$3;0;0;MaxRow;1), в русской версии Excel =CMEЩ(Sheet2!$A$3;0;0;MaxRow;1).

В следующем списке перечислены типы динамических именованных диапазонов, которые могут оказаться полезными. Для веет этих примеров понадобится заполнить столбец А и текстом, и числовыми значениями. Кроме того, выберите команду Вставка → Имя → Присвоить (Insert → Name → Define) и в поле Имя (Names in workbook) введите имя, состоящее из одного слова (например, MyRange). Все, что будет изменяться, — это формула в поле Формула (Refers to).

Расширить диапазон на столько строк, сколько существует числовых записей: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;COUNT($A:$A);1), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТ($А;$А);1).

Расширить диапазон на столько строк, сколько существует числовых и текстовых записей: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;COUNTA($A:$A);1), в русской версии Excel =СМЕЩ($А$1;0;0;СЧЁТЗ($А:$А);1).

Расширить до последней числовой записи: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;MATCH(1E+306;$A:$A)), в русской версии Excel =СМЕЩ($А$1;0;0;ПОИСКПОЗ(1Е+306;$А:$А)). Если вы ожидаете, что может встретиться число, большее 1Е+306 (1 с 306 нулями), введите еще большее число.

Расширить вниз в зависимости от значения в другой ячейке:В ячейку В1 введите число 10, а затем в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;$B$1;1), в русской версии Excel =СМЕЩ($А$1;0;0;$В$1;1). Теперь измените число в ячейке В1, и диапазон изменится соответствующим образом.

Расширять вниз по одной строке каждый месяц: В поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0,MONTH(TODAY());1), в русской версии Excel =СМЕЩ($А$1;0;0.МЕСЯЦ(СЕГОДНЯ));1).

Расширять вниз по одной строке каждую неделю: В поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;WEEKNUM(TODAY());1), В русской версии Excel =СМЕЩ($А$1;0;0;ДЕНЬНЕД(СЕГОДНЯ());1)

Для последней формулы необходимо установить Пакет анализа (Analysis ToolPak). Это можно сделать командой Сервис → Надстройки (Tools → Add-ins).

Дайте описательные имена определенным ячейкам или диапазонам ячеек

именованный диапазон , имя диапазона или определенное имя ссылаются на один и тот же объект в Excel; это описательное имя, например Jan_Sales или June_Precip , которое привязано к определенной ячейке или диапазону ячеек в рабочей таблице или рабочей книге. Именованные диапазоны облегчают использование и идентификацию данных при создании диаграмм и в формулах, таких как:

Кроме того, поскольку именованный диапазон не изменяется при копировании формулы в другие ячейки, он предоставляет альтернативу использованию абсолютных ссылок на ячейки в формулах. Существует три способа определения имени в Excel: с помощью поля имени, диалогового окна нового имени или диспетчера имен. Эта статья содержит инструкции для поля имени и менеджера имен.

Эти инструкции относятся к Excel 2019, 2016, 2013, 2010, 2007 и Excel для Office 365.

Одним из, и, возможно, самым простым способом определения имен является использование Именного поля , расположенного над столбцом A на листе. Вы можете использовать этот метод для создания уникальных имен, которые распознаются каждым листом в книге. Чтобы создать имя с помощью поля имени, как показано на рисунке выше:

Выделите требуемый диапазон ячеек на листе.

Введите нужное имя для этого диапазона в Имя окна , например Jan_Sales .

Нажмите клавишу Enter на клавиатуре.

Имя отображается в поле имени .

Имя также отображается в поле Имя , если на листе выделен одинаковый диапазон ячеек. Он также отображается в Менеджере имен .

Правила именования и ограничения

Синтаксические правила, которые следует помнить при создании или редактировании имен для диапазонов:

  • Имя не может содержать пробелы.
  • Первый символ имени должен быть буквой, подчеркиванием или обратной косой чертой.
  • Остальные символы могут быть только буквами, цифрами, точками или символами подчеркивания.
  • Максимальная длина имени составляет 255 символов.
  • Прописные и строчные буквы неотличимы от Excel, поэтому в Excel Jan_Sales и jan_sales рассматриваются как одно и то же имя.
  • Ссылка на ячейку не может использоваться в качестве имен, таких как A25 или R1C4 .

Определение и управление именами с помощью диспетчера имен

Выделите требуемый диапазон ячеек на листе.

Нажмите на вкладку Формулы на ленте .

В диалоговом окне необходимо указать Имя , Область и Диапазон .

По завершении нажмите ОК , чтобы вернуться на лист.

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

При определении имени в Менеджере имен открывается диалоговое окно Новое имя , описанное выше. Полный список шагов выглядит следующим образом:

Нажмите вкладку Формулы на ленте .

Нажмите на значок Диспетчер имен в центре ленты, чтобы открыть Диспетчер имен .

В Диспетчере имен нажмите кнопку Создать , чтобы открыть диалоговое окно Новое имя .

В этом диалоговом окне вы должны определить Имя , Область и Диапазон .

Нажмите ОК , чтобы вернуться в Менеджер имен , где новое имя будет указано в окне.

Нажмите Закрыть , чтобы вернуться на лист.

Удаление или редактирование имен

Когда менеджер имен открыт:

В окне со списком имен нажмите один раз на имя, которое нужно удалить или отредактировать.

Чтобы удалить имя, нажмите кнопку Удалить над окном списка.

Чтобы изменить имя, нажмите кнопку Изменить , чтобы открыть диалоговое окно Изменить имя .

Область существующего имени не может быть изменена с помощью параметров редактирования. Чтобы изменить область, удалите имя и переопределите его с правильной областью.

Фильтрация имен

Кнопка Фильтр в Менеджере имен позволяет легко:

  • Найти имена с ошибками – например, недопустимый диапазон.
  • Определите область имени – будь то уровень рабочего листа или книга.
  • Сортировать и фильтровать перечисленные имена – определенные (диапазон) имена или имена таблиц.

Отфильтрованный список отображается в окне списка в Диспетчере имен .

Определенные имена и область действия в Excel

Все имена имеют область , которая указывает на места, где определенное имя распознается в Excel. Область имени может быть для отдельных рабочих листов ( локальная область ) или для всей рабочей книги ( глобальная область ). Имя должно быть уникальным в пределах его области, но одно и то же имя может использоваться в разных областях.

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

Область уровня локального рабочего листа

Имя с областью действия уровня листа действительно только для листа, для которого оно было определено. Если имя Total_Sales имеет область действия лист 1 книги, Excel не распознает имя на листе 2 , листе 3 или любой другой лист в книге. Это позволяет определить одно и то же имя для использования на нескольких рабочих листах – при условии, что область действия для каждого имени ограничена его конкретной рабочей таблицей.

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

Чтобы различать одинаковые имена с разными областями действия в формулах, перед именем следует указать имя листа, например:

Имена, созданные с использованием Блока имен , всегда будут иметь глобальную область уровня рабочей книги, если только имя листа и имя диапазона не будут введены в поле имени при определении имени.

  • Имя: Jan_Sales, Scope – глобальный уровень рабочей книги
  • Имя: Sheet1! Jan_Sales, Scope – уровень локального листа

Глобальная область уровня рабочей книги

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

Однако имя области действия уровня книги не распознается любой другой книгой, поэтому имена глобального уровня могут повторяться в разных файлах Excel. Например, если имя Jan_Sales имеет глобальную область действия, одно и то же имя можно использовать в разных книгах под названием 2012_Revenue , 2013_Revenue и 2014_Revenue .

Конфликты области и приоритетность области

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

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

Чтобы переопределить правило приоритета, используйте имя уровня рабочей книги вместе с конкретным именем уровня листа, например:

Единственным исключением из переопределяющего приоритета является имя уровня локального рабочего листа, которое имеет область действия лист 1 рабочей книги. Области, связанные с листом 1 любой книги, не могут быть переопределены именами глобального уровня.

Часто так бывает, что при копировании формул, Вам нужно, что бы ссылка на ячейку в формуле осталась такой же, как и была, а не переместилась относительно исходного места. Тогда Вам на помощь придет такая функция в Excel, как фиксация ссылок на ячейки в Экселе. Остановимся подробно на всех вариантах.

1. Способ, как закрепить (зафиксировать) строку и столбец в формуле Excel

  1. Кликните на ячейке с формулой.
  2. Кликните в строке формул на адрес той ячейке, что Вы хотите закрепить.
  3. Нажмите F4 один раз.

Как зафиксировать ячейку в формуле Excel

Как зафиксировать ячейку в формуле Excel

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

2. Способ, как закрепить (зафиксировать) строку в формуле Excel

Способ полностью аналогичный тому, что описан выше, только Вам нужно будет нажать дважды на F4. К примеру, если у Вас в формуле ссылка на ячейку B2, то Вы получите B$2. Это значит, что теперь при перемещении формулы, будет изменяться буква столбца, а номер строки будет оставаться неизменным.

Как зафиксировать ячейку в формуле Excel

3. Способ, как закрепить (зафиксировать) столбец в формуле Excel

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

Как зафиксировать ячейку в формуле Excel

4. Способ, как отменить фиксацию ячейки в формуле Excel

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



Спасибо за внимание. Остались вопросы - задавайте их в комментариях к статье. Подписывайтесь на наши группы Вконтакте, Facebook, Twitter, Google+ и будете получать первыми информацию о новых статьях на сайте.

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

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

Защита выделенного диапазона от изменения

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

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

Защита ячеек в Excel от изменения, редактирования и ввода ошибочных данных

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





Ставим пароль

Теперь предположим, что Вы сами часто работаете с этим листом в Эксель и периодически нужно изменить данные в защищенных блоках. Чтобы это сделать, придется постоянно снимать защиту со страницы, а потом ставить ее обратно. Согласитесь, что это не очень удобно.

Поэтому давайте рассмотрим вариант, как можно поставить пароль для отдельных ячеек в Excel. В этом случае, Вы сможете их редактировать, просто введя запрашиваемый пароль.

Сделаем так, чтобы другие пользователи могли редактировать всё на листе, кроме диапазона B2:D7 . А Вы, зная пароль, могли редактировать и блоки в B2:D7 .


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





Проверяем, как работает защита ячеек. В Е5 введем шестерки. Если попробовать удалить значение из D5 , появится окно с запросом пароля. Введя пароль, можно будет изменить значение в ячейке.

Таким образом, зная пароль, можно изменить значения в защищенных ячейка листа Эксель.


Защищаем блоки от неверных данных

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






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

Читайте также: