В процессе работы с данными в Excel иногда заранее не известно, сколько данных будет собрано в той или иной таблице. Поэтому мы не всегда можем заранее знать какой диапазон должно охватывать имя. Ведь количество данных может изменяться. Для решения данной задачи следует автоматически изменить именованный диапазон используемых ячеек, в зависимости от количества введенных данных.
Как в Excel сделать автоматическое изменение диапазона
Допустим, у нас есть объект инвестирования, по которому мы хотим знать суммарную прибыль за весь период его использования. Заранее мы не можем определить период использования инвестиционного объекта. Но нам нужно постоянно следить за общим доходом, который приносит нам данный объект инвестирования.
Сформируйте отчет по доходности нашего объекта инвестирования, так как показано на рисунке:
Данную задачу можно было-бы решить путем суммирования целого столбца B и после появления в нем записей общая сумма изменялась бы автоматически. Но это некорректный способ решения задач в Excel. Во-первых, нам нельзя будет использовать ячейки столбца B для ввода других данных. Во-вторых, так функция суммирования будет нерационально потреблять больше памяти. Это может привести к серьезным проблемам при работе с документом. Самым рациональным решением является использование динамических имен.
- Выберите инструмент «Формулы»-«Определенные имена»-«Присвоить имя».
- Заполните поля диалогового окна «Создание имени» как на рисунке. Обратите внимание на то, что в поле «Диапазон:» мы используем функцию =СМЕЩ, а в одном из ее параметров используем функцию =СЧЕТ. Пример: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)
- Переместите курсор в ячейку D2 и введите функцию =СУММ с именем «доход» в ее параметрах.
Теперь постепенно заполняя ячейки в столбце B, мы можем проследить, как изменяется охват ячеек именем «доход».
Функция СМЕЩ в Excel
Разберем более детально функции, которые мы вводили в поле диапазон при создании динамического имени.
Функция =СМЕЩ определяет наш диапазон в зависимости от количества заполненных ячеек в столбце B. 5 параметров функции =СМЕЩ(начальная ячейка; смещение размера диапазона по строкам; смещение по столбцам; размер диапазона в высоту; размер диапазона в ширину):
- «Начальная ячейка» – указывает верхнюю левую ячейку, от которой будет динамически расширяться диапазон как вниз, так и вправо (при необходимости).
- «Смещение по строкам» – параметр определяет, на какое количество нужно смещать диапазон по вертикали от начальной ячейки (первого параметра). Значения могут быть нулевыми и отрицательными.
- «Смещение по столбцам» – параметр определяет, на какое количество нужно смещать по горизонтали от начальной ячейки. Значения могут быть даже нулевыми и отрицательными.
- «Размер диапазона в высоту» – количество ячеек, на которое нужно увеличить диапазон в высоту. По сути, название говорит само за себя.
- «Размер диапазона в ширину» – количество ячеек, на которое нужно увеличить в ширину от начальной ячейки.
Последние 2 параметра функции являются необязательными. Если их не заполнять, то диапазон будет состоять из 1-ой ячейки. Например: =СМЕЩ(A1;0;0) – это просто ячейка A1, а параметр =СМЕЩ(A1;2;0) ссылается на A3.
Теперь разберем функцию: =СЧЕТ, которую мы указывали в 4-ом параметре функции: =СМЕЩ.
Что определяет функция СЧЕТ
Функция =СЧЕТ($B:$B) автоматически считает количество заполненных ячеек в столбце B.
Таким образом, мы с помощью функции =СЧЕТ() и =СМЕЩ() автоматизируем процесс формирования диапазона для имени «доход», что делает его динамическим. Теперь еще раз посмотрим на нашу формулу, которой мы присвоили имя «доход»: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)
Читать данную формулу следует так: первый параметры указывает на то, что наш автоматически изменяемый диапазон начинается в ячейке B2. Следующие два параметра имеют значения 0;0 – это значит, что динамический диапазон не смещается относительно начальной ячейки B2. А увеличивается только его размер по вертикали, о чем свидетельствует 4-тый параметр. В нем находится функция СЧЕТ и она возвращает число равно количеству заполненных ячеек в столбце B. Соответственно количество ячеек по вертикали в диапазоне будет равно числу, которое нам даст функция СЧЕТ. А за ширину диапазона у нас отвечает последний 5-тый параметр, где находиться число 1.
Благодаря функции СЧЕТ мы рационально загружаем в память только заполненные ячейки из столбца B, а не весь столбец целиком. Данный факт исключает возможные ошибки связанные с памятью при работе с данным документом.
Динамические диаграммы в Excel
У нас есть динамическое имя, теперь создадим динамическую диаграмму для данного типа отчета:
- Выделите диапазон B2:B6 и выберите инструмент: «Вставка»-«Диаграммы»-«Гистограмма»-«Гистограмма с группировкой».
- Щелкните левой кнопкой мышки по любому столбцу гистограммы и в строке формул отобразится функция диаграммы: =РЯД().
- В строке формул измените параметры функции: =РЯД(Лист1!$B$1;;Лист1!$B$2:$B$7;1) на =РЯД(Лист1!$B$1;;Лист1!доход;1).
- В отчет добавьте новую запись в ячейки A8 — «июль», B8 — «77000» соответственно. И убедитесь, что на диаграмме автоматически добавился новый столбец.
Используя наше динамическое имя «доход» нам удалось создать автоматически изменяемую динамическую диаграмму, которая сама добавляет и отображает новые данные в отчете.
Содержание
- Как исправить ошибку #ПЕРЕНОС! в Excel
- Как исправить ошибку #ЗНАЧ! в Excel
- Как исправить ошибку #ПУСТО! в Excel
- Как исправить ошибку #ИМЯ? в Excel
Как исправить ошибку #ПЕРЕНОС! в Excel
Прежде чем рассмотреть ошибку #ПЕРЕНОС! (#SPILL), рассмотрим, что такое перенос. В Excel это означает, что формула возвращает несколько значений (массив), и они автоматически переносятся в соседние ячейки.
Диапазон переноса и значения внутри будут изменяться при обновлении источника данных.
Ошибка #ПЕРЕНОС! возникает, когда формула возвращает несколько значений, но Excel не может вывести один или несколько результатов.
У ошибки может быть множество причин. Поиск решения будет зависеть от используемой версии Excel.
- Веб-версия: наведите мышь на зеленый треугольник в верхнем левом углу ячейки с ошибкой #ПЕРЕНОС!. Появится сообщение с описанием ошибки.
- Десктопная версия: щелкните по ячейке с ошибкой #ПЕРЕНОС!. Нажмите на треугольник, который появится слева от ячейки. Причина ошибки будет указана в верхней части меню справки.
Рассмотрим решения, которые подойдут для наиболее распространенных вариаций этой ошибки.
Диапазон для переноса содержит одну или более ячеек с значениями
Решение: очистить диапазон для переноса.
Диапазон для переноса находится внутри таблицы
Решение 1: преобразовать таблицу в диапазон данных.
Для этого выполните следующие шаги:
- нажмите на любую ячейку в таблице,
- в меню в верхней части окна выберите «Конструктор»,
- выберите команду «Преобразовать в диапазон».
Обратите внимание, что расположение меню и списка команд могут отличаться в зависимости от версии.
Решение 2: переместить формулу за границы таблицы.
Диапазон для переноса содержит объединенные ячейки
Решение: разделить ячейки внутри диапазона.
Как исправить ошибку #ЗНАЧ! в Excel
Ошибка #ЗНАЧ! (#VALUE) возникает в следующих случаях:
- что-то не так с ячейкой (ячейками), на которую ссылается формула,
- что-то не так с самой формулой.
Иногда найти источник проблемы не просто. Ниже — о самых распространенных случаях и как и их исправить.
Математическая формула ссылается на текст
Формулы с математическими операторами могут вычислять только числа. Если одна или несколько ячеек, на которые ссылается формула, содержит текст, формула будет возвращать ошибку.
Решение: использовать вместо формулы (уравнения, составленного пользователем) функцию (формулу, заранее заданную Excel). Функции по умолчанию игнорируют большую часть текстовых значений и производят расчеты лишь с числами.
Например, на примере ниже функция =СУММ(B2,B11) будет игнорировать текст в ячейке B11.
Скриншот: Zapier.com
Стоит помнить, что эта функция не оповещает автоматически о пропусках ячеек, и ее результат может вводить в заблуждение.
Одна или более ячеек содержат пробелы
В этих случаях ячейка выглядит пустой.
Решение: найти и заменить пробелы. Вот как это сделать:
- выделите диапазон ячеек, к которому обращается формула;
- нажмите на иконку с биноклем, нажмите «Найти и выделить»;
- в окне «Найти и заменить» выберите «Заменить»;
- в поле «Найти» вставьте пробелы;
- поле «Заменить на» оставьте пустым;
- нажмите «Заменить все».
Как исправить ошибку #ПУСТО! в Excel
Ошибка #ПУСТО! (#REF) возникает, когда формулы ссылается на ячейку, которая уже не существует. Разберем наиболее распространенные причины возникновения ошибки и как их исправить.
Ячейка, на которую ссылается формула, удалена
Формула использует прямые ссылки на ячейки (каждая ячейка отделена запятой), но одна или несколько ячеек удалены. Это основная причина, почему Excel не рекомендует использовать прямые ссылки на ячейки.
Решение 1: Если ячейки удалены случайно, отмените это действие.
Решение 2: Обновите формулу, чтобы она ссылалась на диапазон ячеек. В этом случае Excel сможет произвести вычисления, даже если одна из ячеек была удалена.
Формула содержит относительные ссылки
Относительная ссылка означает, что используемые данные привязаны к ячейке, в которую вставлена формула. Например, если формулу =СУММ(B2:E2) скопировать из ячейки G2 в G3, Excel предположит, что должен суммировать все ячейки из колонок B-E в ряду 3.
Каждый раз, когда формула с относительными ссылками переносится в другую ячейку, ссылки автоматически меняются. И если установить связь невозможно, происходит ошибка.
Например, если формулу =СУММ(G2:G7) перенести в ячейку I4, Excel предположит, что пользователю требуется сложить шесть ячеек над клеткой I4. В данном случае это невозможно, так как доступны лишь три ячейки.
Решение: обновите формулу, чтобы включить в нее абсолютные значения. Это позволит созранить исходные ссылки, даже если формула будет перенесена. Для этого вставьте символ $ перед каждой буквой, обозначающей столбец, и номером ряда.
Например, формула =СУММ(G2:G7) с абсолютными ссылками будет выглядеть как: =СУММ($G$2:$G$7).
Как исправить ошибку #ИМЯ? в Excel
Ошибка #ИМЯ? (#NAME) возникает, если название формулы неверно написано. Рассмотрим основные решения проблемы.
Название формулы содержит опечатку
Решение: обновить название формулы. Лучший способ избегать опечаток — использовать встроенный редактор формул Excel. Когда пользователь начинает печатать название формулы, программа автоматически предложит список названий, содержащих те же буквы.
Неверное название формулы
Иногда пользователи вводят название несуществующей формулы или формулы, которая называется иначе (например, ПЛЮС вместо реальной функции СУММ). В этом случае формула вернет ошибку #ИМЯ?.
Решение: найти правильное имя формулы и обновить ее.
Вот как это сделать:
- выберите в меню раздел «Формулы»;
- нажмите на «Вставить функцию» в левой части панели инструментов, в открывшемся окне «Вставка функции» просмотрите недавно использовавшиеся функции или полный список всех доступных функций;
- выберите и вставьте нужную функцию;
- в редакторе формул обновите ячейки, к которым будет отсылаться формула (поля зависят от выбранной функции).
Эти советы применимы и к ошибкам в Google Таблицах (за исключением #ПЕРЕНОС!, которая часто отображается как #REF).
Источник.
Фото на обложке: Aihr.com
Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!
Динамический диапазон с автоподстройкой размеров
Есть ли у вас таблицы с данными в Excel, размеры которых могут изменяться, т.е. количество строк (столбцов) может увеличиваться или уменьшаться в процессе работы? Если размеры таблицы «плавают», то придется постоянно мониторить этот момент и подправлять:
- ссылки в формулах отчетов, которые ссылаются на нашу таблицу
- исходные диапазоны сводных таблиц, которые построены по нашей таблице
- исходные диапазоны диаграмм, построенных по нашей таблице
- диапазоны для выпадающих списков, которые используют нашу таблицу в качестве источника данных
Все это в сумме не даст вам скучать
Гораздо удобнее и правильнее будет создать динамический «резиновый» диапазон, который автоматически будет подстраиваться в размерах под реальное количество строк-столбцов данных. Чтобы реализовать такое, есть несколько способов.
Способ 1. Умная таблица
Выделите ваш диапазон ячеек и выберите на вкладке Главная – Форматировать как Таблицу (Home – Format as Table):
Если вам не нужен полосатый дизайн, который добавляется к таблице побочным эффектом, то его можно отключить на появившейся вкладке Конструктор (Design). Каждая созданная таким образом таблица получает имя, которое можно заменить на более удобное там же на вкладке Конструктор (Design) в поле Имя таблицы (Table Name).
Теперь можно использовать динамические ссылки на нашу «умную таблицу»:
- Таблица1 – ссылка на всю таблицу кроме строки заголовка (A2:D5)
- Таблица1[#Все] – ссылка на всю таблицу целиком (A1:D5)
- Таблица1[Питер] – ссылка на диапазон-столбец без первой ячейки-заголовка (C2:C5)
- Таблица1[#Заголовки] – ссылка на «шапку» с названиями столбцов (A1:D1)
Такие ссылки замечательно работают в формулах, например:
=СУММ(Таблица1[Москва]) – вычисление суммы по столбцу «Москва»
или
=ВПР(F5;Таблица1;3;0) – поиск в таблице месяца из ячейки F5 и выдача питерской суммы по нему (что такое ВПР?)
Такие ссылки можно успешно использовать при создании сводных таблиц, выбрав на вкладке Вставка – Сводная таблица (Insert – Pivot Table) и введя имя умной таблицы в качестве источника данных:
Если выделить фрагмент такой таблицы (например, первых два столбца) и создать диаграмму любого типа, то при дописывании новых строк они автоматически будут добавляться к диаграмме.
При создании выпадающих списков прямые ссылки на элементы умной таблицы использовать нельзя, но можно легко обойти это ограничение с помощью тактической хитрости – использовать функцию ДВССЫЛ (INDIRECT), которая превращает текст в ссылку:
Т.е. ссылка на умную таблицу в виде текстовой строки (в кавычках!) превращается в полноценную ссылку, а уж ее выпадающий список нормально воспринимает.
Способ 2. Динамический именованный диапазон
Если превращение ваших данных в умную таблицу по каким-либо причинам нежелательно, то можно воспользоваться чуть более сложным, но гораздо более незаметным и универсальным методом – создать в Excel динамический именованный диапазон, ссылающийся на нашу таблицу. Потом, как и в случае с умной таблицей, можно будет свободно использовать имя созданного диапазона в любых формулах, отчетах, диаграммах и т.д. Для начала рассмотрим простой пример:
Задача: сделать динамический именованный диапазон, который ссылался бы на список городов и автоматически растягивался-сжимался в размерах при дописывании новых городов либо их удалении.
Нам потребуются две встроенных функции Excel, имеющиеся в любой версии – ПОИКСПОЗ (MATCH) для определения последней ячейки диапазона и ИНДЕКС (INDEX) для создания динамической ссылки.
Ищем последнюю ячейку с помощью ПОИСКПОЗ
ПОИСКПОЗ(искомое_значение;диапазон;тип_сопоставления) – функция, которая ищет заданное значение в диапазоне (строке или столбце) и выдает порядковый номер ячейки, где оно было найдено. Например, формула ПОИСКПОЗ(“март”;A1:A5;0) выдаст в качестве результата число 4, т.к. слово «март» расположено в четвертой по счету ячейке в столбце A1:A5. Последний аргумент функции Тип_сопоставления = 0 означает, что мы ведем поиск точного соответствия. Если этот аргумент не указать, то функция переключится в режим поиска ближайшего наименьшего значения – это как раз и можно успешно использовать для нахождения последней занятой ячейки в нашем массиве.
Суть трюка проста. ПОИСКПОЗ перебирает в поиске ячейки в диапазоне сверху-вниз и, по идее, должна остановиться, когда найдет ближайшее наименьшее значение к заданному. Если указать в качестве искомого значение заведомо больше, чем любое имеющееся в таблице, то ПОИСКПОЗ дойдет до самого конца таблицы, ничего не найдет и выдаст порядковый номер последней заполненной ячейки. А нам это и нужно!
Если в нашем массиве только числа, то можно в качестве искомого значения указать число, которое заведомо больше любого из имеющихся в таблице:
Для гарантии можно использовать число 9E+307 (9 умножить на 10 в 307 степени, т.е. 9 с 307 нулями) – максимальное число, с которым в принципе может работать Excel.
Если же в нашем столбце текстовые значения, то в качестве эквивалента максимально большого числа можно вставить конструкцию ПОВТОР(“я”;255) – текстовую строку, состоящую из 255 букв «я» — последней буквы алфавита. Поскольку при поиске Excel, фактически, сравнивает коды символов, то любой текст в нашей таблице будет технически «меньше» такой длинной «яяяяя….я» строки:
Формируем ссылку с помощью ИНДЕКС
Теперь, когда мы знаем позицию последнего непустого элемента в таблице, осталось сформировать ссылку на весь наш диапазон. Для этого используем функцию:
ИНДЕКС(диапазон; номер_строки; номер_столбца)
Она выдает содержимое ячейки из диапазона по номеру строки и столбца, т.е. например функция =ИНДЕКС(A1:D5;3;4) по нашей таблице с городами и месяцами из предыдущего способа выдаст 1240 – содержимое из 3-й строки и 4-го столбца, т.е. ячейки D3. Если столбец всего один, то его номер можно не указывать, т.е. формула ИНДЕКС(A2:A6;3) выдаст «Самару» на последнем скриншоте.
Причем есть один не совсем очевидный нюанс: если ИНДЕКС не просто введена в ячейку после знака =, как обычно, а используется как финальная часть ссылки на диапазон после двоеточия, то выдает она уже не содержимое ячейки, а ее адрес! Таким образом формула вида $A$2:ИНДЕКС($A$2:$A$100;3) даст на выходе уже ссылку на диапазон A2:A4.
И вот тут в дело вступает функция ПОИСКПОЗ, которую мы вставляем внутрь ИНДЕКС, чтобы динамически определить конец списка:
=$A$2:ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(ПОВТОР(«я»;255);A2:A100))
Создаем именованный диапазон
Осталось упаковать все это в единое целое. Откройте вкладку Формулы (Formulas) и нажмите кнопку Диспетчер Имен (Name Manager). В открывшемся окне нажмите кнопку Создать (New), введите имя нашего диапазона и формулу в поле Диапазон (Reference):
Осталось нажать на ОК и готовый диапазон можно использовать в любых формулах, выпадающих списках или диаграммах.
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для связывания таблиц и подстановки значений
- Как создать автоматически наполняющийся выпадающий список
- Как создать сводную таблицу для анализа большого массива данных
Ширину столбцов и высоту строк можно настроить вручную или автоматически в соответствии с данными.
Примечание: Граница — это линия между ячейками, столбцами и строками. Если столбец слишком узкий для отображения данных, вы увидите в ячейке «###».
Изменение размера строк
Выделите строку или диапазон строк.
На вкладке Главная выберите Формат >Ширина строки (или Высота строки).
Введите высоту строки и нажмите кнопку ОК.
Изменение размера столбцов
Выберите столбец или диапазон столбцов.
На вкладке Главная выберите Формат >Ширина столбца (или Высота столбца).
Введите ширину столбца и нажмите кнопку ОК.
Автоматическое изменение размера всех столбцов и строк в соответствии с данными
Нажмите кнопку Выделить все в верхней части листа, чтобы выделить все столбцы и строки.
Дважды щелкните границу. Размер всех столбцов и строк изменится в соответствии с данными.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Трюк №42. Создание увеличивающихся и уменьшающихся диапазонов Excel
Если вам необходимо постоянно обновлять и добавлять данные или если вы работаете с диаграммами и сводными таблицами, вам понадобятся динамические именованные диапазоны, которые увеличиваются и уменьшаются в зависимости от ваших данных.
Чтобы понять, как работают динамические именованные диапазоны, сначала нужно познакомиться с функцией 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), затем щелкните на кнопке ОК.
К сожалению, динамические именованные диапазоны нельзя проверить в стандартном поле имени слева от строки формул. Несмотря на это, можно щелкнуть в поле имени, ввести имя MyRange и нажать клавишу Enter. Excel автоматически выделит диапазон. Конечно, можно воспользоваться и диалоговым окном Переход (Go То), выбрав команду Правка → Перейти (Edit → Go To) (сочетание клавиш Ctrl/Apple+G). В поле Ссылка (Reference) введите MyRange и щелкните на кнопке ОК.
В динамическом именованном диапазоне, который вы создали в предыдущем примере, функция СЧЁТЗ (COUNTA) стоит на месте аргумента Высота (Height) функции СМЕЩ (OFFSET).
В следующем примере динамический именованный диапазон мы применим для определения таблицы данных, которая должна быть динамической. Для этого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. Динамическая таблица данных и диалоговое окно присвоения имени
В строке 1 хранятся функции СЧЁТЗ (COUNTA), которые ссылаются вниз на соответствующий столбец и, таким образом, возвращают количество записей в каждом столбце. Функция МАКС (МАХ) будет использоваться в качестве аргумента Высота (Height) функции СМЕЩ (OFFSET). Это гарантирует, что динамический именованный диапазон для этой таблицы всегда будет расширяться вниз на столько ячеек, сколько их содержится в самом длинном столбце в таблице. Конечно же, можно скрыть строку 1, так как пользователю совершенно не нужно ее видеть.
Во всех этих примерах мы предполагали, что данные всегда будут размещаться в соседних строках, между которыми не будет пустых ячеек. Хотя именно этот способ настройки списка или таблицы данных является правильным, иногда он становится неуправляемым.
В следующем примере список чисел в столбце А также содержит пустые ячейки. Это означает, что, если вы попытаетесь воспользоваться функцией СЧЁТ (COUNT) или СЧЁТЗ (COUNTA), динамический именованный диапазон закончится раньше, чем последняя ячейка с данными. Взгляните, например, на рис. 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. Динамический диапазон, расширяющийся до последней записи, содержащей число
Следующий логический тип динамических именованных диапазонов, вытекающий из данного, — это диапазон, расширяющийся до последней текстовой записи независимо от пустых ячеек в списке или таблице. Для этого измените функцию ПОИСКПОЗ (MATCH) таким образом: МАТСН(«*»;$А$1:$А$100;-1), в русской версии Excel ПОИСКПОЗ(«*»;$А$1;$А$100;-1). Такая функция всегда возвращает номер строки, где содержится последняя текстовая запись в диапазоне $А$1:$А$100.
Теперь, когда известно, как выполнить эту задачу для числовых записей и текстовых значений, единственное, что осталось сделать, — каким-то образом определить динамический именованный диапазон, который будет расширяться, не обращая внимания на пустые ячейки в списке, содержащем и текстовые, и числовые данные.
Для этого сначала вставьте две пустые строки выше списка. Выделите строки 1 и 2 и выберите команду Вставка → Строки (Insert → Row). В первой строке (строка 1) введите следующую функцию: =МАХ(МАТСН»*»;$А$3:$А$100;-1);МАТСН(1Е+306;$А$3:$А$100;1)), в русской версии Excel =МАКС(ПОИСКПОЗ»*»;$А$3:$А$100;-1);ПОИСКПОЗ(1Е+306;$А$3:$А$100;1)). В ячейке под ячейкой с формулой введите число 1. Ячейка еще ниже, под ячейкой с числом 1, должна содержать текстовый заголовок списка. Число 1 было добавлено, чтобы вторая функция ПОИСКПОЗ (MATCH) не вернула ошибку #N/A, если в диапазоне АЗ:А100 не окажется чисел. Первая функция ПОИСКПОЗ (MATCH) всегда найдет текст — в заголовке.
Дайте ячейке А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 нулями), введите еще большее число.
Расширить до последней текстовой записи: в поле Формула (Refers to) введите следующее: =OFFSET($A$1;0;0;МАТCH(«*»;$А:$А;-1)), в русской версии Excel =СМЕЩ($А$1;0;0;ПОИСКПОЗ(«*»;$А:$А;-1)).
Расширить вниз в зависимости от значения в другой ячейке:В ячейку В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).
Расширение ячеек в Microsoft Excel
Довольно часто содержимое ячейки в таблице не умещается в границы, которые установлены по умолчанию. В этом случае актуальным становится вопрос их расширения для того, чтобы вся информация уместилась и была на виду у пользователя. Давайте выясним, какими способами можно выполнить данную процедуру в Экселе.
Процедура расширения
Существует несколько вариантов расширение ячеек. Одни из них предусматривают раздвигание границ пользователем вручную, а с помощью других можно настроить автоматическое выполнение данной процедуры в зависимости от длины содержимого.
Способ 1: простое перетаскивание границ
Самый простой и интуитивно понятный вариант увеличить размеры ячейки – это перетащить границы вручную. Это можно сделать на вертикальной и горизонтальной шкале координат строк и столбцов.
- Устанавливаем курсор на правую границу сектора на горизонтальной шкале координат той колонки, которую хотим расширить. При этом появляется крестик с двумя указателями, направленными в противоположные стороны. Зажимаем левую кнопку мыши и тащим границы вправо, то есть, подальше от центра расширяемой ячейки.
Внимание! Если на горизонтальной шкале координат вы установите курсор на левую границу расширяемого столбца, а на вертикальной – на верхнюю границу строки, выполнив процедуру по перетягиванию, то размеры целевых ячеек не увеличатся. Они просто сдвинутся в сторону за счет изменения величины других элементов листа.
Способ 2: расширение нескольких столбцов и строк
Существует также вариант расширить несколько столбцов или строк одновременно.
- Выделяем одновременно несколько секторов на горизонтальной и вертикальной шкале координат.
Способ 3: ручной ввод размера через контекстное меню
Также можно произвести ручной ввод размера ячеек, измеряемый в числовых величинах. По умолчанию высота имеет размер 12,75 единиц, а ширина – 8,43 единицы. Увеличить высоту можно максимум до 409 пунктов, а ширину до 255.
- Для того чтобы изменить параметры ширины ячеек, выделяем нужный диапазон на горизонтальной шкале. Кликаем по нему правой кнопкой мыши. В появившемся контекстном меню выбираем пункт «Ширина столбца».
Аналогичным способом производится изменение высоты строк.
- Выделяем сектор или диапазон вертикальной шкалы координат. Кликаем по этому участку правой кнопкой мыши. В контекстном меню выбираем пункт «Высота строки…».
Указанные выше манипуляции позволяют увеличить ширину и высоту ячеек в единицах измерения.
Способ 4: ввод размера ячеек через кнопку на ленте
Кроме того, есть возможность установить указанный размер ячеек через кнопку на ленте.
- Выделяем на листе ячейки, размер которых нужно установить.
Способ 5: увеличение размера всех ячеек листа или книги
Существуют ситуации, когда нужно увеличить абсолютно все ячейки листа или даже книги. Разберемся, как это сделать.
- Для того, чтобы совершить данную операцию, следует, прежде всего, выделить нужные элементы. Для того, чтобы выделить все элементы листа, можно просто нажать сочетание клавиш на клавиатуре Ctrl+A. Существует и второй вариант выделения. Он предполагает нажатие на кнопку в виде прямоугольника, которая расположена между вертикальной и горизонтальной шкалой координат Excel.
Аналогичные действия производим для увеличения размера ячеек всей книги. Только для выделения всех листов используем другой прием.
- Кликаем правой кнопкой мыши по ярлыку любого из листов, который расположен внизу окна сразу над шкалой состояния. В появившемся меню выбираем пункт «Выделить все листы».
Способ 6: автоподбор ширины
Данный способ нельзя назвать полноценным увеличением размера ячеек, но, тем не менее, он тоже помогает полностью уместить текст в имеющиеся границы. При его помощи происходит автоматическое уменьшение символов текста настолько, чтобы он поместился в ячейку. Таким образом, можно сказать, что её размеры относительно текста увеличиваются.
- Выделяем диапазон, к которому желаем применить свойства автоподбора ширины. Кликаем по выделению правой кнопкой мыши. Открывается контекстное меню. Выбираем в нем пункт «Формат ячеек…».
После этих действий, какой бы длинной запись не была, но она будет умещаться в ячейку. Правда, нужно учесть, что если в элементе листа слишком много символов, и пользователь не будет расширять его одним из предыдущих способов, то эта запись может стать очень мелкой, вплоть до нечитаемой. Поэтому довольствоваться исключительно данным вариантом для того, чтобы уместить данные в границы, не во всех случаях приемлемо. Кроме того, следует сказать, что этот способ работает только с текстом, но не с числовыми значениями.
Как видим, существует целый ряд способов увеличить размеры, как отдельных ячеек, так и целых групп, вплоть до увеличения всех элементов листа или книги. Каждый пользователь может подобрать наиболее удобный для него вариант выполнения данной процедуры в конкретных условиях. Кроме того, есть дополнительный способ вместить содержимое в пределы ячейки с помощью автоподбора ширины. Правда, последний метод имеет целый ряд ограничений.
Мы рады, что смогли помочь Вам в решении проблемы.
Для существующего именованного диапазона вам может потребоваться изменить размер или расширить его, чтобы включить больше столбцов и строк. В этой статье мы покажем вам три метода изменения размера существующего именованного диапазона в Excel.
Измените размер существующего именованного диапазона с помощью функции диспетчера имен
Изменить размер существующего именованного диапазона с помощью кода VBA
Измените размер существующего именованного диапазона с помощью Kutools for Excel
Измените размер существующего именованного диапазона с помощью функции диспетчера имен
Чтобы изменить размер существующего именованного диапазона с помощью функции диспетчера имен в Excel, сделайте следующее.
1. Нажмите Формулы > Менеджер имен. Смотрите скриншот:
2. в Менеджер имен диалоговом окне выберите имя диапазона, размер которого вы хотите изменить, а затем щелкните значок кнопку.
3. в Имя менеджера — относится к выберите новый диапазон для этого имени диапазона, а затем закройте это поле.
4. Когда он вернется в Менеджер имен диалогового окна, нажмите кнопку, чтобы сохранить новый диапазон, и, наконец, нажмите кнопку Закрыть кнопку, чтобы закрыть диалоговое окно. Смотрите скриншот:
Вы можете видеть, что указанный именованный диапазон немедленно изменяется.
Изменить размер существующего именованного диапазона с помощью кода VBA
Помимо вышеуказанного метода, код VBA также может помочь вам изменить размер указанного именованного диапазона.
1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Приложение Microsoft Visual Basic окно.
2. в Приложение Microsoft Visual Basic окна, нажмите Вставить > Модули.
3. Вставьте ниже код VBA в окно модуля.
VBA: изменение размера именованного диапазона
Sub ResizeNamedRange()
Dim xWb As Workbook
Dim xNameString As String
Dim xName As Name
Set xWb = Application.ActiveWorkbook
xNameString = Application.InputBox("Name :", xTitleId, "", Type: = 2)
Set xName = xWb.Names.Item(xNameString)
With xName
.RefersTo = .RefersToRange.Resize(10, 6)
End With
End Sub
Ноты:
1. «10, 6» в этой строке .RefersTo = .RefersToRange.Resize (10, 6) означает, что указанный именованный диапазон будет изменен, чтобы иметь 10 строк и 6 столбцов.
2. Измените эти переменные по своему усмотрению.
4. После изменения переменных нажмите кнопку F5 ключ для запуска кода. Во всплывающем диалоговом окне введите имя диапазона, размер которого вы хотите изменить, в Имя и фамилия поле, а затем щелкните OK кнопку.
Затем размер именованного диапазона немедленно изменяется в соответствии с указанными вами условиями.
Измените размер существующего именованного диапазона с помощью Kutools for Excel
Все названия диапазонов перечислены в Область переходов of Kutools for Excel. И вы можете легко изменить их размер в области навигации.
1. После установки Kutools for Excel, Область переходов по умолчанию отображается в левой части Excel. Пожалуйста, нажмите на Имя менеджера , выберите имя диапазона, размер которого нужно изменить, а затем нажмите кнопку
кнопку.
2. Во всплывающем Kutools for Excel диалоговом окне выберите новый диапазон для этого имени диапазона, а затем щелкните значок OK кнопку.
3. Затем нажмите в Область переходов чтобы завершить настройку.
Внимание: Если вы не видите Область переходов, Пожалуйста, нажмите Кутулс > Навигация чтобы включить его.
Наблюдения и советы этой статьи мы подготовили на основании опыта команды Область переходов of Kutools for Excel это мощная утилита, с ее помощью вы можете не только легко изменять размер именованного диапазона, но также создавать автоматический текст для будущего использования, легко переключаться между книгами и листами и так далее.
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!