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

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

Мы привыкли ссылаться на ячейки и диапазоны по их адресам. Например, A5 или B2:D17 . Однако, не все знают, что диапазону можно присвоить символьное имя и использовать его в качестве полноценной замены привычных адресов в формулах. На первый взгляд это дополнительные манипуляции, которые не приносят очевидной пользы, но это не так. Мы с вами разберём, как минимум, 7 причин, почему стоит использовать именованные диапазоны.

Я считаю, что умение оперировать именованными диапазонами ( далее ИД ) и понимание, для чего они нужны, одни из ключевых навыков квалифицированного пользователя Excel.

Создаём ИД

Создать ИД можно двумя способами:

Быстрый способ . Выделяем необходимый диапазон или ячейку. Идём в поле адреса и вводим там имя создаваемого ИД.

Стандартный способ . Выделяем диапазон, а потом выбираем пункт меню Присвоить имя с ленты ФОРМУЛЫ . В диалоговом окне вводим желаемое имя, меняем или оставляем без изменений область действия, примечание, адрес диапазона.

7 причин полюбить именованные диапазоны

Причина первая

Сравните 2 формулы:

В каком случае у вас больше шансов интуитивно догадаться, что мы вычисляем? Ответ очевиден — во втором случае. Потому что вместо скучных и безликих координат диапазонов, вы видите идентификаторы, которые рождают у вас некоторые ассоциации: Товары — это наверняка таблица с информацией о товарах, PrdSelected — это, видимо, выбранный пользователем продукт, Продукт — какой-то справочник продуктов, а VAT_Rate — без сомнения ставка НДС.

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

У вас не рябит в глазах от букв, цифр и знаков доллара в адресах диапазонов.

Причина вторая

Предположим у вас на листе 500 формул ВПР (VLOOKUP), которые ссылаются на один и тот же диапазон ячеек, из которого вы извлекаете данные. В случае изменения координат этого диапазона, вы будете вынуждены исправить его координаты в пятистах формулах. Безусловно, это можно сделать при помощи инструмента Поиск с заменой , но факт остаётся фактом — так или иначе вам надо менять формулы в большом количестве ячеек. А теперь представьте, что вы ссылаетесь в формулах на ИД. При изменении координат ИД, вы ОДИН раз изменяете его координаты в Диспетчере имён . При этом нет необходимости исправлять какие бы то ни было формулы. Это реальная экономия вашего времени!

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

Причина третья

Объявив ИД, вы можете его легко вставить в формулу. Есть 3 возможности:

Вызвать диалоговое окно Вставка имени (горячая клавиша F3 );

Начав набор названия ИД с клавиатуры и завершив выбором из раскрывшегося списка объектов;

Воспользовавшись пунктом меню Использовать в формуле на ленте ФОРМУЛЫ .

Формулы вводятся быстрее, приятнее и у вас меньше шансов внести в формулу ошибку.

Причина четвёртая

Используя обычные адреса диапазонов вы всегда должны думать, какой тип адресации применить, чтобы формула не поползла при протягивании или, напротив, поползла в нужном направлении. Речь идёт об относительных и абсолютных ссылках. Адес диапазона, введеный как A1:B5 при распространении (копировании) формулы вниз в следующей ячейке превратится в A2:B6 , потом в A3:B7 и т.д. Поэтому при вводе вы должны использовать абсолютную ссылку вида $A$1:$B$5 , от которых особенно рябит в глазах. Ссылки в виде ИД лишены данного недостатка.

Нет проблем при протягивании формул.

Причина пятая

ИД позволяют реализовать динамические диапазоны, которые подстраиваются под фактические размеры вашей таблицы. Это очень удобно, когда вы добавляете к какому-либо справочнику новые строки или столбцы. Делается это при помощи формул СМЕЩ + СЧЁТЗ (OFFSET+COUNTA), так:

Товары!$A$1 — точка отсчёта. Берите верхний левый угол таблицы;

1 — смещение по строкам для верхнего левого угла ИД. Поскольку у нас таблица с заголовками, то данные начинаются на 1 строку ниже, относительно указанной точки отсчёта;

0 — смещение по столбцам для верхнего левого угла ИД. Его у нас нет.

СЧЁТЗ(Товары!$A:$A)-1 — эта функция подсчитывает количество непустых строк в указанном диапазоне ( $A:$A ), а единицу вычитаем за счёт пропущенной строки с заголовками столбцов. При расширении таблицы вниз колонка A должна обязательно заполняться данными, либо выберите другой столбец, для которого это условие будет выполняться;

СЧЁТЗ(Товары!$1:$1) — подсчёт количества непустых столбцов по тому же принципу (на основе строки 1:1 ).

Проконтролировать правильно ли вы написали формулу, можно зайдя в Диспетчер имён , выделив нужный ИД и встав курсором на формулу. При этом сам диапазон должен выделиться пунктирной линией.

Возможность задать динамические границы при определении ИД.

Причина шестая

ИД облегчают перенос формул на другие листы, в другие книги, либо перенос данных в другое место. Особенно удобно использовать ИД, когда вы ссылаетесь на другую книгу, потому что видеть в формулах длиннющие префиксы с путём к файлу книги, содержащий нужный диапазон, не составляет никакого удовольствия. Причём ИД в этом случае определять надо в той книге, в которой вы строите формулы, так как формула может использовать только ИД, определенный в родной книге. А сам ИД будет ссылаться на другую книгу.

Облегчение ссылок на другие книги, упрощение переноса формул на другие листы/книги.

Причина седьмая

В Excel 2007 и ранее нельзя было определить в Проверке данных (Data Validation) список (list), который бы ссылался на диапазон, располагающийся на другом листе. То есть вы не могли указать в качестве источника значений списка = Лист4!$A$2:$A$4 , а надо было обязательно определить ИД, и вот только так можно было сослаться на другой лист.


Ссылка на источник данных для списка в функции Проверка данных.

Управление ИД

Осуществляется при помощи данного блока меню на ленте ФОРМУЛЫ :

Получение списка всех ИД

Через диалог Вставка имени ( F3 или через меню Использовать в формуле — Вставить имена. ) можно получить в ячейки таблицы список всех ИД. Это выглядит так:

Замена обычных диапазонов на ИД

Если вы сначала написали формулы, а потом решили определить ИД, то обычные координаты диапазонов можно заменить на ИД через меню Присвоить имя , диалог Применить имена.

Массовое создание ИД

ИД можно создавать массово на основе ваших таблицы и заголовков столбцов/строк. Выделите необходимый диапазон данных и выберите пункт меню Создать из выделенного . Будет предложен такой диалог:

Укажите в нём, где располагаются имена ваших ИД. Если вы укажете, что имена расположены в верхней строке, то Excel создаст ИД для каждой строки и назовёт их теми идентификаторами, которые в верхней строке располагаются. В предложенном примере мы имеем 5 столбцов и после нажатия OK можно проконтролировать, что создано 5 ИД с соответствующими именами:

Тоже самое можно проделать и со строками, если на то есть необходимость.

Именованные константы

Помимо ссылок на ячейки в ИД можно указать ссылку на числовую константу. Например:

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

Многими возможнотями ИД (и даже больше) обладают также умные таблицы.

Диапазон Excel. Выделение, сравнение, изменение диапазонов значений

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

Что такое диапазон ячеек в Excel?

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

Читать еще:  Как сделать текст в ячейке excel чтобы отображались просто точки?

Что такое используемый диапазон ячеек в Excel?

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

Что такое именованный диапазон ячеек в Excel?

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

По умолчанию имена диапазонов ячеек автоматически считаются абсолютными ссылками.

Для имен действует ряд ограничений:

— имя может содержать до 255 символов;

— первым символом в имени должна быть буква, знак подчеркивания (_) либо обратная косая черта (), остальные символы имени могутбыть буквами, цифрами, точками и знаками подчеркивания;

— имена не могут быть такими же, как ссылки на ячейки;

— пробелы в именах не допускаются;

— строчные и прописные буквы не различаются.

Управление существующими именованными диапазонами (создание, просмотр и изменение) можно осуществлять при помощи диспетчера имен. В Excel 2007 диспетчер находится на вкладке «Формулы», в группе кнопок «Определенные имена».

Основные действия с диапазонами

Выделение диапазонов

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

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

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

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

Сравнение диапазонов

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

Например, для построчного сравнения часто используется логическая функция «ЕСЛИ» и какой-либо из операторов сравнения (также можно использовать и другие функции, например «СЧЕТЕСЛИ» из категории статистические для проверки вхождения элементов одного списка в другой).

Также для поиска отличий по столбцам или по строкам используется стандартное средство Excel, которое находится на вкладке «Главная», в группе кнопок «Редактирование», в меню кнопки «Найти и выделить». Если в этом меню выбрать пункт «Перейти» и далее нажать кнопку «Выделить», то в диалоговом окне «Выделение группы ячеек» можно выбрать одну из опций «Отличия по строкам» или «Отличия по столбцам».

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

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

Изменение (преобразование) диапазонов значений

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

Транспонирование можно осуществить при помощи функции «=ТРАНСП(Диапазон)», которая находится в категории «Ссылки и массивы». Есть и другой способ — копирование диапазона значений с последующей специальной вставкой, при которой ставится флажок в поле «Транспонировать».

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

Надстройка для работы с диапазонами в Excel

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

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

«Вы знаете, есть ли способ сделать эту работу с относительными выборками, чтобы формула могла быть «dragged down»/applied across several cells in the same column?»

Чтобы сделать такой выбор относительным, просто используйте формулу ROW для номера строки в Формуле INDEX и формулу COLUMN для номера столбца в Формуле INDEX. Чтобы сделать это более ясным вот пример:

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

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

1) имитировать Excel таблиц, Используя с именованным диапазоном

В вашем примере, вы назвали диапазон A10:A20 «Age». В зависимости от того, как вы хотите ссылаться на ячейку в этом диапазоне, вы можете либо (как писал @Alex P) использовать =INDEX(Age, 5) , либо если вы хотите ссылаться на ячейку в диапазоне «Age», которая находится в той же строке, что и Ваша формула, просто используйте:

Это имитирует относительные ссылочные объекты, встроенные в таблицы Excel, но является альтернативой, если вы не хотите использовать таблицу.

Если именованный диапазон является целым столбцом, формула упрощается следующим образом:

2) используйте таблицу Excel

Кроме того, если вы настроите это как таблицу Excel и введите «Age» в качестве заголовка столбца Age, то ваша формула в Столбцах справа от столбца Age может использовать такую формулу:

Я был готов использовать что — то подобное на листе, где все строки идентичны и обычно ссылаются на другие ячейки в одной строке, но поскольку формулы становятся сложными, ссылки на другие столбцы становятся трудными для чтения. Я попробовал трюк, приведенный в других ответах, например, столбец A с именем «Sales» я могу ссылаться на него как INDEX(Sales;row()) , но я нашел его слишком длинным для моих вкусов.

Однако в этом конкретном случае я обнаружил, что использование Sales само по себе работает так же хорошо — Excel (2010 здесь) просто автоматически получает соответствующую строку.

Похоже, что он работает и с другими диапазонами; например, скажем, у меня есть значения в A2:A11 , которые я называю Sales , я могу просто использовать =Sales*0.21 в B2:11 , и он будет использовать одно и то же значение строки, выдавая десять разных результатов.

Я также нашел хороший трюк на этой странице : именованные диапазоны также могут быть относительными. Возвращаясь к исходному вопросу, если ваше значение «Age» находится в столбце A и предполагается, что вы используете это значение в формулах в той же строке, вы можете определить возраст как $A2 вместо $A$2,, чтобы при использовании в B5 или C5, например, он действительно будет ссылаться на $A5. (Диспетчер имен всегда показывает ссылку относительно выбранной в данный момент ячейки)

Читать еще:  Как сделать водяные знаки в excel?

Добавьте столбец слева, чтобы B10 — B20 был вашим возрастом именованного диапазона. Установите A10 в A20 так, чтобы A10 = 1, A11= 2. A20 = 11 и присвоить диапазону A10-A20 имя, например AgeIndex. 5-й элемент может быть найден с помощью формулы массива » = sum( Age * (1 * (AgeIndex = 5) ) «. Поскольку это формула массива, вам нужно будет нажать shift + ctrl + return, чтобы она работала, а не просто возвращалась.

Похожие вопросы:

Как я могу получить имя Excel именованного диапазона из диапазона ячеек? Например, я называю ячейку «A1» как «Test» в Редакторе Excel, затем я хочу получить это имя в C# из диапазона «A1» Excel.

У меня есть именованный диапазон col_9395 это целый столбец. Я хочу установить диапазон в пределах этого именованного диапазона. Я хочу, чтобы диапазон начинался с строки 3 до строки 200 того же.

У меня есть 52 именованных диапазона, от W1 до W52. Я хотел бы, чтобы мой рабочий лист Google Sheet скрывал все строки, кроме именованного диапазона, который я ввожу в ячейку B1 и строку 1, чтобы я.

Я хочу прочитать именованный диапазон (‘NamedRange’) в массив (‘NamedRangeAsArray’). Я пробовал несколько вещей без успеха, и я надеюсь найти способ сделать это независимо от длины или высоты.

Как Вы читаете из именованного диапазона в excel в pandas dataframe? Read_excel предназначен для чтения целых листов в книге.

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

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

BluePrism Excel VBO имеет действия Get Worsheet As Collection и Get Worksheet Range as Collection , но как опытный разработчик VBA, я знаю, что лучше ссылаться на именованные диапазоны. (Это делает.

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

Я хотел бы вернуть ссылку на первый элемент (т. е. верхнюю левую ячейку) именованного диапазона в листе Google. Мне не нужно само значение ячейки, а скорее Ссылка «address» ячейки, предпочтительно в.

Например, предположим, что я выбираю диапазон A1:F1 в Excel. В VBA, как я могу конкретно обратиться к ячейке A1, к ячейке F1 и ко всем другим ячейкам, которые находятся в пределах диапазона? Большое.

Автоматически изменяемые диапазоны ячеек в Excel

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

Как в Excel сделать автоматическое изменение диапазона

Допустим, у нас есть объект инвестирования, по которому мы хотим знать суммарную прибыль за весь период его использования. Заранее мы не можем определить период использования инвестиционного объекта. Но нам нужно постоянно следить за общим доходом, который приносит нам данный объект инвестирования.

Сформируйте отчет по доходности нашего объекта инвестирования, так как показано на рисунке:

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

  1. Выберите инструмент «Формулы»-«Определенные имена»-«Присвоить имя».
  2. Заполните поля диалогового окна «Создание имени» как на рисунке. Обратите внимание на то, что в поле «Диапазон:» мы используем функцию =СМЕЩ, а в одном из ее параметров используем функцию =СЧЕТ. Пример: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)
  3. Переместите курсор в ячейку D2 и введите функцию =СУММ с именем «доход» в ее параметрах.

Теперь постепенно заполняя ячейки в столбце B, мы можем проследить, как изменяется охват ячеек именем «доход».

Функция СМЕЩ в Excel

Разберем более детально функции, которые мы вводили в поле диапазон при создании динамического имени.

Функция =СМЕЩ определяет наш диапазон в зависимости от количества заполненных ячеек в столбце B. 5 параметров функции =СМЕЩ(начальная ячейка; смещение размера диапазона по строкам; смещение по столбцам; размер диапазона в высоту; размер диапазона в ширину):

  1. «Начальная ячейка» – указывает верхнюю левую ячейку, от которой будет динамически расширяться диапазон как вниз, так и вправо (при необходимости).
  2. «Смещение по строкам» – параметр определяет, на какое количество нужно смещать диапазон по вертикали от начальной ячейки (первого параметра). Значения могут быть нулевыми и отрицательными.
  3. «Смещение по столбцам» – параметр определяет, на какое количество нужно смещать по горизонтали от начальной ячейки. Значения могут быть даже нулевыми и отрицательными.
  4. «Размер диапазона в высоту» – количество ячеек, на которое нужно увеличить диапазон в высоту. По сути, название говорит само за себя.
  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

У нас есть динамическое имя, теперь создадим динамическую диаграмму для данного типа отчета:

  1. Выделите диапазон B2:B6 и выберите инструмент: «Вставка»-«Диаграммы»-«Гистограмма»-«Гистограмма с группировкой».
  2. Щелкните левой кнопкой мышки по любому столбцу гистограммы и в строке формул отобразится функция диаграммы: =РЯД().
  3. В строке формул измените параметры функции: =РЯД(Лист1!$B$1;;Лист1!$B$2:$B$7;1) на =РЯД(Лист1!$B$1;;Лист1!доход;1).
  4. В отчет добавьте новую запись в ячейки A8 — «июль», B8 — «77000» соответственно. И убедитесь, что на диаграмме автоматически добавился новый столбец.

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

Трюк №42. Создание увеличивающихся и уменьшающихся диапазонов Excel

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

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

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

Читать еще:  Расширенный фильтр в excel 2010 как сделать

Выберите команду Вставка → Имя → Присвоить (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).

Ссылка на основную публикацию
Adblock
detector