Excel по имени получить значение в ячейке

Обращение к ячейке на листе Excel из кода VBA по адресу, индексу и имени. Чтение информации из ячейки. Очистка значения ячейки. Метод ClearContents объекта Range.

Обращение к ячейке по адресу

Допустим, у нас есть два открытых файла: «Книга1» и «Книга2», причем, файл «Книга1» активен и в нем находится исполняемый код VBA.

В общем случае при обращении к ячейке неактивной рабочей книги «Книга2» из кода файла «Книга1» прописывается полный путь:

Workbooks(«Книга2.xlsm»).Sheets(«Лист2»).Range(«C5»)

Workbooks(«Книга2.xlsm»).Sheets(«Лист2»).Cells(5, 3)

Workbooks(«Книга2.xlsm»).Sheets(«Лист2»).Cells(5, «C»)

Workbooks(«Книга2.xlsm»).Sheets(«Лист2»).[C5]

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

Теперь предположим, что у нас в активной книге «Книга1» активны «Лист1» и ячейка на нем «A1». Тогда обращение к ячейке «A1» можно записать следующим образом:

ActiveCell

Range(«A1»)

Cells(1, 1)

Cells(1, «A»)

[A1]

Точно также можно обращаться и к другим ячейкам активного рабочего листа, кроме обращения ActiveCell, так как активной может быть только одна ячейка, в нашем примере – это ячейка «A1».

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

‘по основному имени листа

Лист2.Cells(2, 7)

‘по имени ярлыка

Sheets(«Имя ярлыка»).Cells(3, 8)

Имя ярлыка может совпадать с основным именем листа. Увидеть эти имена можно в окне редактора VBA в проводнике проекта. Без скобок отображается основное имя листа, в скобках – имя ярлыка.

Обращение к ячейке по индексу

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

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

Для примера, Cells(4) та же ячейка, что и Cells(1, 4). Используется такое обозначение редко, тем более, что у разных версий Excel может быть разным количество столбцов и строк на рабочем листе.

По индексу можно обращаться к ячейке не только на всем рабочем листе, но и в отдельном диапазоне. Нумерация ячеек осуществляется в пределах заданного диапазона по тому же правилу: слева-направо и сверху-вниз. Вот индексы ячеек диапазона Range(«A1:C3»):

Индексы ячеек в диапазоне Range("A1:C3")

Обращение к ячейке Range("A1:C3").Cells(5) соответствует выражению Range("B2").

Обращение к ячейке по имени

Если ячейке на рабочем листе Excel присвоено имя (Формулы –> Присвоить имя), то обращаться к ней можно по присвоенному имени.

Допустим одной из ячеек присвоено имя – «Итого», тогда обратиться к ней можно – Range("Итого").

Запись информации в ячейку

Содержание ячейки определяется ее свойством «Value», которое в VBA Excel является свойством по умолчанию и его можно явно не указывать. Записывается информация в ячейку при помощи оператора присваивания «=»:

Cells(2, 4).Value = 15

Cells(2, 4) = 15

Range(«A1») = «Этот текст записываем в ячейку»

ActiveCell = 28 + 10*36

Вместе с числами и текстом можно использовать переменные. Примеры здесь и ниже приведены для активного листа. Для неактивных листов дополнительно необходимо указывать имя листа, как в разделе «Обращение к ячейке».

Чтение информации из ячейки

Считать информацию из ячейки в переменную можно также при помощи оператора присваивания «=»:

Sub Test()

Dim a1 As Integer, a2 As Integer, a3 As Integer

Range(«A3») = 6

Cells(2, 5) = 15

a1 = Range(«A3»)

a2 = Cells(2, 5)

a3 = a1 * a2

MsgBox a3

End Sub

Точно также можно обмениваться информацией между ячейками:

Cells(2, 2) = Range(«A4»)

Очистка значения ячейки

Очищается ячейка от значения с помощью метода ClearContents. Кроме того, можно присвоить ячейке значение нуля. пустой строки или Empty:

Cells(10, 2).ClearContents

Range(«D23») = 0

ActiveCell = «»

Cells(5, «D») = Empty

30 функций Excel за 30 дней: АДРЕС (ADDRESS)

​Смотрите также​​=АДРЕС(ПОИСКПОЗ(F4&МАКС(($A$2:$A$15=F4)*$B$2:$B$15);$A$2:$A$15&$B$2:$B$15;0)+1;2) — формула​ самом конце. Повторюсь:​​Ромич​ «»​Так выглядит абсолютный тип​​ записью;​​ которое соответствует номеру​ файла и название​ левой верхней ячейки​ диапазона C1:C11.​ противном случае функция​​Если в качестве аргумента​​ чтобы видеть все​​ ИНДЕКС является константной​​ возвращаемый функцией​

​– если TRUE​Вчера в марафоне​ массива.​​ неважно в каком​​: ну,дык, если в​Ромич​ ссылок по строкам​«Курсы» — название листа,​ столбца, в котором​ листа.​ в ссылке.​216​ ИНДЕКС возвращает значение​ «ссылка» используется несмежный​

​ данные.​ массива, используйте форму​​ADDRESS​​ (ИСТИНА) или вообще​30 функций Excel за​Zorge​ столбце мы кликнем​ А2 вводить новое​: а если не​ и столбцам при​

Функция 20: ADDRESS (АДРЕС)

​ на котором находится​​ расположена искомая ячейка;​​=CELL(«filename»,B2)​filename​=СУММ(B2:ИНДЕКС(A2:C6;5;2))​ ошибки #ССЫЛКА!. Если​ диапазон, его необходимо​Данные​ массива.​(АДРЕС), как аргумент​​ не указано, функция​​ 30 дней​​: Извините, что пропал.​​ на гиперссылку -​ значение,то предыдущее стоит​ в соседнюю ячейку?​ использовании стиля R1C1.​

Функция АДРЕС в Excel

Как можно использовать функцию ADDRESS (АДРЕС)?

​ таблица с искомой​​[тип_ссылки] – число из​​=ЯЧЕЙКА(«имяфайла»;B2)​(имяфайла) – имя​Сумма значений из диапазона,​ аргументы «номер_строки» и​ заключить в скобки​

  • ​Данные​ИНДЕКС(массив; номер_строки; [номер_столбца])​ для​
  • ​ возвращает ссылку в​мы находили элементы​По хорошему, адрес​
  • ​ она всегда приведёт​ стереть?и,соответственно, адреса этого​

Синтаксис ADDRESS (АДРЕС)

​Юрий М​​Ромич​​ ячейкой.​ диапазона от 1​

​Из полученного результата при​
​ файла и полный​

  • ​ начинающегося с ячейки​​ «номер_столбца» опущены, функция​Если каждая область в​​Яблоки​​Аргументы функции ИНДЕКС описаны​INDIRECT​ стиле​ массива при помощи​ ячейки мне нужен,​ к нужному адресу.​​ имени тоже стираются?или​​: Тогда не Offset(0,​​: Народ, прошу прощения​​Для расчета стоимости в​​ до 4, соответствующее​​ помощи других функций​
  • ​ путь.​​ B2 и заканчивающегося​ ИНДЕКС возвращает область​ ссылке содержит только​Лимоны​ ниже.​​(ДВССЫЛ). Мы изучим​​A1​ функции​​ для того, чтобы​​Zorge​
  • ​ я что-то не​​ 1)​​ за назойливость, но​ рублях используем формулу:​ одному из типов​ Вы можете извлечь​format​ пересечением пятой строки​

Ловушки ADDRESS (АДРЕС)

​ в аргументе «ссылка»,​​ одну строку или​​Бананы​Массив​ функцию​, если FALSE (ЛОЖЬ),​MATCH​ можно было выбрать​: И снова добрый​​ так понял?​​Владимир​ вот интересно стало,​ =B3*ДВССЫЛ(D3).​ возвращаемой ссылки на​

Пример 1: Получаем адрес ячейки по номеру строки и столбца

​ название листа. В​​(формат) – числовой​​ и второго столбца​ заданную аргументом «номер_области».​ один столбец, аргумент​Груши​    — обязательный аргумент. Диапазон​INDIRECT​ то в стиле​(ПОИСКПОЗ) и обнаружили,​ значение из другого​ день, товарищи бойцы.​​Юрий М​​: Пока я телился…​

​ можно ли по​
​Функция ДВССЫЛ необходима для​

Функция АДРЕС в Excel

Абсолютная или относительная

​ ячейку:​ формуле ниже, используя​​ формат ячейки.​​ диапазона A2:A6, т. е.​Результатом вычисления функции ИНДЕКС​ «номер_строки» или «номер_столбца»​

​Формула​ ячеек или константа​(ДВССЫЛ) позже в​R1C1​​ что она отлично​​ столбца, соответствующее той​​И снова проблема,​​: Не так. Ваш​

​=АДРЕС(МАКС(ЕСЛИ(Лист1!$A$1:$G$20=A2;(СТРОКА(Лист1!$1:$20))));МАКС(ЕСЛИ(Лист1!$A$1:$G$20=A2;СТОЛБЕЦ(Лист1!$A:$G)));4)​
​ имени(значению) получать адрес,​

Функция АДРЕС в Excel

A1 или R1C1

​ получения числового значения,​​абсолютная на всю ячейку,​​ функции​parentheses​​ сумма значений из​​ является ссылка, которая​ соответственно является необязательным.​Описание​​ массива.​​ рамках марафона​

​.​
​ работает в команде​

Функция АДРЕС в Excel

Название листа

​ самой максимальной величине.​ выеденного яйца не​ последний файл. Ранее​Ромич​ а лучше даже​ хранимого в ячейке,​​ например — $A$4​​MID​

​(скобки) – возвращает​
​ диапазона B2:B6.​

Функция АДРЕС в Excel

Пример 2: Находим значение ячейки, используя номер строки и столбца

​ интерпретируется в качестве​​ Например, для ссылки​​Результат​Если массив содержит только​30 функций Excel за​sheet​ с другими функциями,​Вопрос мне показался​ стоящая.​ для АБВ нашлись​​: вместо 1 -​​ ссылку на эту​ на которую указывает​​абсолютная только на строку,​​(ПСТР) и​ 1, если форматированием​​2,42​​ таковой другими функциями.​ на единственную строку​​=ИНДЕКС(A2:B3;2;2)​ одну строку или​​ 30 дней​

​_text​
​ такими как​

Функция АДРЕС в Excel

​ простым потому, что​​Имею массив данных,​​ три адреса. Затем​ число шагов до​​ ячейку? Ну,например, на​​ ссылка. В результате​ например — A$4;​FIND​​ ячейки предусмотрено отображение​​К началу страницы​ В зависимости от​​ нужно использовать формулу​​Значение ячейки на пересечении​ один столбец, соответствующий​

​.​
​(имя_листа) – имя​

Функция АДРЕС в Excel

​VLOOKUP​​ в VB, если​​ из которых отбираю​ в А3 ввели​ нужного столбца?​ одном листе есть​

​ вычислений для остальных​
​абсолютная только на столбец,​

Функция АДРЕС в Excel

​(НАЙТИ), находим квадратные​​ положительных или всех​В 4-ый день марафона​ формулы значение, возвращаемое​

Пример 3: Возвращаем адрес ячейки с максимальным значением

​ ИНДЕКС(ссылка,,номер_столбца).​ второй строки и​ аргумент «номер_строки» или​=INDIRECT(ADDRESS(C2,C3))​​ листа может быть​​(ВПР) и​ я назначаю переменной​

​ уникальные значения из​​ новое имя. В​​Юрий М​ ячейка(А2) со значением​ товаров получим следующую​

​ например - $A4;​
​ скобки и возвращаем​

Функция АДРЕС в Excel

​ чисел в круглых​30 функций Excel за​​ функцией ИНДЕКС, может​​Номер_строки​ второго столбца в​​ «номер_столбца» не является​​=ДВССЫЛ(АДРЕС(C2;C3))​ указано, если Вы​​INDEX​​ какую-либо ячейку я​ повторяющихся и формулой​

​ В3 отобразился новый​
​: Точно: (0, 5)​

Функция АДРЕС в Excel

​ 123. А во​ таблицу:​
​относительная на всю ячейку,​
​ 32 символа, которые​

​ скобках; во всех​

office-guru.ru

ИНДЕКС (функция ИНДЕКС)

​ 30 дней​ использоваться как ссылка​    — обязательный аргумент. Номер​ диапазоне A2:B3.​

​ обязательным.​Функция​

  • ​ желаете видеть его​(ИНДЕКС).​ могу посмотреть и​ МАКС нахожу из​ адрес. В В4​

  • ​ на пять столбцов​ втором листе при​Пример 2. В таблице​ например A4.​

Форма массива

Описание

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

​ строки в диапазоне,​Груши​Если массив содержит больше​INDIRECT​

Синтаксис

​ в возвращаемом функцией​

​20-й день нашего марафона​ её адрес и​

  • ​ них наибольшие. Это​​ — осталось значение​ правее в той​ вводе этого значения,​

    • ​ содержатся данные о​[a1] – логическое значение,​ (длина названия листа​ 0 (ноль).​ сведения о рабочей​ Например, формула ЯЧЕЙКА(«ширина»;ИНДЕКС(A1:B2;1;2))​

    • ​ заданном аргументом «ссылка»,​=ИНДЕКС(A2:B3;2;1)​ одной строки и​(ДВССЫЛ) может работать​ результате.​ мы посвятим изучению​ её значение вне​ к тому, что​ для ячейки А2.​ же строке (ноль).​

  • ​ например, в столбец​​ цене товаров, отсортированные​ определяющее один из​ ограничена 31 символом).​prefix​ среде, используя функцию​ эквивалентна формуле ЯЧЕЙКА(«ширина»;B1).​ из которого требуется​

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

Замечания

  • ​Ромич​ ИМЯ, в соседнем​ в порядке возрастания​ двух типов ссылок:​=MID(CELL(«filename»,C3),FIND(«]»,CELL(«filename»,C3))+1,32)​(префикс) – текстовое​INFO​

  • ​ Функция ЯЧЕЙКА использует​ возвратить ссылку.​ второй строки и​ из аргументов «номер_строки»​ADDRESS​ADDRESS​ADDRESS​ сам ли я​ и к каждому​ очистим — список​: Юрий, огромное спасибо!​ столбце получаем ссылку​ стоимости. Необходимо получить​ A1 либо R1C1;​=ПСТР(ЯЧЕЙКА(«имяфайла»;C3);НАЙТИ(«]»;ЯЧЕЙКА(«имяфайла»;C3))+1;32)​ значение, соответствующее префиксу​(ИНФОРМ), – такие​ значение, возвращаемое функцией​

    ​Номер_столбца​​ первого столбца в​ и «номер_столбца» задан​(АДРЕС). Вот как​

  • ​(АДРЕС) возвращает лишь​(АДРЕС). Она возвращает​ назначаю эту ячейку​ из них выбирается​ адресов для А2​ как и остальным​ на Лист1!А2​

Примеры

Пример 1

​ ссылки на ячейки​[имя_листа] – текстовое значение,​Вместо того, чтобы вводить​ метки ячейки (показывает​ как версия Excel​ ИНДЕКС, как ссылку.​

​    — необязательный аргумент. Номер​ диапазоне A2:B3.​ только один, функция​ можно, используя оператор​ адрес ячейки в​ адрес ячейки в​ или аона является​ максимальное из первоначального​ будет неполным. Поэтому​ форумчанам — с​KuklP​ с минимальной и​ которое определяет имя​

​ значение аргумента​

​ тип выравнивания).​

​ и режим пересчёта.​

​ С другой стороны,​

​ столбца в диапазоне,​

​Бананы​

​ ИНДЕКС возвращает массив,​

​ конкатенации «​

​ виде текстовой строки.​

​ текстовом формате, используя​

​ результатом хитрых манипуляций.​ массива.​ и предлагаю в​ этим сайтом постигать​

​: Ромич, а Если(..ВПР)?​

​ максимальной стоимостью товаров​

​ листа в документе​info_type​protect​Одиннадцатый день марафона мы​

​ такая формула, как​

Пример 2

​ заданном аргументом «ссылка»,​В этом примере функция​ состоящий из целой​&​ Если Вам нужно​ номер строки и​ За сим прилагаю​

​Собственно вопрос: Каким​ строку все адреса​ excel и проще,​ Ща наши киты​ соответственно.​ Excel. Используется для​(тип_сведений) в функцию​(защита) — 0​ посвятим изучению функции​ 2*ИНДЕКС(A1:B2;1;2), преобразует значение,​ из которого требуется​ ИНДЕКС используется в​

​ строки или целого​

​«, слепить нужный адрес​

​ значение ячейки, используйте​

​ столбца. Нужен ли​​ файл с примером​​ образом можно определить​

​ для одного значения.​ и интереснее​ подключатся, думаю и​Исходная таблица имеет следующий​ создания внешних ссылок.​CELL​ = ячейка не​CELL​ возвращаемое функцией ИНДЕКС,​

​ возвратить ссылку.​

​ формуле массива для​ столбца аргумента «массив».​ в стиле​ её в качестве​

​ нам этот адрес?​

​ более обширным.​​ адрес ячейки, данные​ Тогда и путаницы​и еще в​ Индекс порулит… Неисповедимы​ вид:​Примечания:​(ЯЧЕЙКА) в виде​ заблокирована, 1 =​(ЯЧЕЙКА), которая сообщит​ в число в​Номер_области​ поиска значений двух​Номер_строки​R1C1​

​ аргумента функции​

Ссылочная форма

Описание

​ Можно ли сделать​Благодарю за оперативность.​ из которой мне​ не будет никакой.Теперь​ завершение. можно ли​ пути формулистов:-) Только​Для получения ссылки на​Ссылки типа R1C1 используются​ текстовой строки, Вы​

Синтаксис

​ заблокирована.​

​ информацию о форматировании​ ячейке B1.​

  • ​    — необязательный аргумент. Диапазон​​ заданных ячеек в​     — обязательный аргумент.​и в результате​

    • ​INDIRECT​ то же самое​vikttur​ показывает формула? Адрес,​

    • ​ понятно объяснил?​ сделать получаемый адрес​ Ким жаловался, что​ ячейку с минимальной​ для цифрового обозначения​ можете указать ссылку​row​ ячейки, её содержимом​Примечание:​ в аргументе «ссылка»,​

  • ​ массиве с диапазоном​​ Выбирает строку в​ получить значение ячейки:​(ДВССЫЛ) или примените​ с помощью других​: Например, номер договора:​

  • ​ Индекс и Ячейка​​Ромич​ гиперссылкой?​ формулисты не в​ стоимостью товара используем​ столбцов и строк.​

  • ​ на ячейку, содержащую​​(строка) – номер​ и расположении. Она​  Функция ЯЧЕЙКА недоступна​ из которого требуется​ 2 x 2.​ массиве, из которой​=INDIRECT(«R»&C2&»C»&C3,FALSE)​ одну из альтернативных​ функций?​=ИНДЕКС($D$2:$D$15;ПОИСКПОЗ(МАКС(СМЕЩ(B1;ПОИСКПОЗ(F4;$A$2:$A$15;0);0;СЧЁТЕСЛИ($A$2:$A$15;F4)));$B$2:$B$15;))​ действуют диаметрально проивоположным​: нет.Имя по задумке​Юрий М​ фаворе.​ формулу:​ Для возвращения ссылок​ корректные значения. В​ строки ячейки.​ работает аналогично функции​ в Excel Web​ возвратить значение ячейки​В этом случае нужно​ требуется возвратить значение.​=ДВССЫЛ(«R»&C2&»C»&C3;ЛОЖЬ)​ формул, показанных в​Давайте обратимся к сведениям​СМЕЩ() лучше заменить​ образом.​ вводится ТОЛЬКО в​: в завершение. можно​Ки-им! Ваш выход.​Функция АДРЕС принимает следующие​

​ такого типа в​ этом примере в​type​INFO​ App.​ на пересечении строки​ выбрать любые две​ Если аргумент «номер_строки»​Функция​

Замечания

  • ​ примере 2.​ по функции​ на ИНДЕКС (сообщение​Заранее благодарю и​ ячейку А2. Ввел,посмотрел(в​ ли сделать получаемый​ Я за Вас​ параметры:​ качестве параметра a1​ ячейке B4 находится​(тип) – тип​(ИНФОРМ), т.е. имеет​Скопируйте образец данных из​ и столбца, заданных​ ячейки по вертикали,​ опущен, аргумент «номер_столбца»​

  • ​INDEX​При помощи функции​ADDRESS​ 29.07.2011, 18:52)​ удачной пятницы​ оригинальном файле еще​ адрес гиперссылкой?{/post}{/quote}​

  • ​ переживаю.​число, соответствующее номеру строки​ должно быть явно​ выпадающий список, а​ данных в ячейке​ список значений, которые​ следующей таблицы и​ аргументами «номер_строки» и​ например A1:A2, вставить​ является обязательным.​(ИНДЕКС) также может​ADDRESS​

  • ​(АДРЕС) и изучим​Если возможны совпадения​Михаил С.​ туча параметров выводится),​Насчёт завершения -​Ромич​ с минимальным значением​ указано логическое значение​ вместо аргумента​ (пустая, текст, другое).​ можно ввести в​ вставьте их в​ «номер_столбца». Первая введенная​ в первую ячейку​Номер_столбца​ вернуть значение ячейки,​(АДРЕС) Вы можете​ примеры работы с​ максимумов для разных​: Вроде уже около​

​ стер. Если надо,ввел​​ сомнительно: начиналось с​: впр не покатит​ цены (функция МИН​

Примеры

​ ЛОЖЬ или соответствующее​info_type​width​ функцию, но содержит​ ячейку A1 нового​ или выделенная область​ формулу =ИНДЕКС({1;2:3;4};0;2) и​     — необязательный аргумент.​ если указан номер​ получить адрес ячейки​ ней. Если у​ названий, диапазон ИНДЕКС($D$2:$D$15;…​ 40 ответов, а​

​ следующий.​

​ соседнего столбца. Пока​

​ — ячейки со​

​ выполняет поиск минимального​

​ числовое значение 0.​

​(тип_сведений) указана ссылка​

​(ширина) – ширина​

​ не один, а​

​ листа Excel. Чтобы​

​ имеет номер 1, вторая —​

​ нажать клавиши CTRL+SHIFT+ВВОД.​

​ Выбирает столбец в​

​ строки и столбца:​

​ в виде текста,​

​ Вас есть дополнительная​

​ тоже нужно определять​

​ правила так и​

​И еще вопрос.Можно​

​ накопите вопросы.​

​ значениями разбросаны по​

​ значения и возвращает​

​Стиль ссылок в Excel​

​ на эту ячейку.​

​ столбца ячейки.​

​ два аргумента.​

​ отобразить результаты формул,​

​ 2 и т. д.​

​ Если ввести формулу​

​ массиве, из которого​

​=INDEX(1:5000,C2,C3)​

​ используя номер строки​

​ информация или примеры,​

​ динамически.​

​ не читали….​

​ ли указать промежутки​Юрий М​ листу, а-ля А2,​ его, функция ПОИСКПОЗ​

​ может быть изменен​

​ Аргумент​

​Есть несколько моментов, за​Итак, давайте рассмотрим информацию​ выделите их и​ Если аргумент «номер_области»​ как формулу массива,​

​ требуется возвратить значение.​

​=ИНДЕКС(1:5000;C2;C3)​

​ и столбца. Если​ пожалуйста, делитесь ими​Zorge​Кто данные за​

​ поиска(например, чтоб в​

​: Судя по всему​

​ В5, С1​ находит позицию ячейки,​ путем установки/снятия флажка​reference​ которыми нужно внимательно​ и примеры по​ нажмите клавишу F2,​ опущен, в функции​

​ Excel автоматически вставит​

​ Если аргумент «номер_столбца»​

support.office.com

30 функций Excel за 30 дней: ЯЧЕЙКА (CELL)

​1:5000​​ Вы введёте только​ в комментариях.​​: Спасибо всем огромное.​ Вас придумывать будет?​ столбце В отображались​​ вопросов больше нет​​KuklP​ содержащей минимальное значение​ пункта меню «Стиль​

​(ссылка) ссылается на​ следить, используя функцию​​ функции​​ а затем — клавишу​ ИНДЕКС используется область 1. ​ ее во вторую​ опущен, аргумент «номер_строки»​– это первые​​ эти два аргумента,​​Функция​Заработало.​vikttur​ адреса в промежутках​ :-) Смотрите с​: Ромич, честно каюсь​

​ цены. К полученному​ ссылок R1C1», который​ ячейку B2.​​CELL​​CELL​ ВВОД. При необходимости​ Все указанные здесь​ ячейку.​ является обязательным.​ 5000 строк листа​

Функция 11: CELL (ЯЧЕЙКА)

​ результатом будет абсолютный​​ADDRESS​​k1ava​: И Вам удачных​ А2:К200 и АВ2:АХ200,​ гиперссылкой​

Функция ЯЧЕЙКА в Excel

Как можно использовать функцию CELL (ЯЧЕЙКА)?

​ — я не​​ значению добавлено 2,​​ находится в «Файл​Когда выбрано значение​(ЯЧЕЙКА):​

  • ​(ЯЧЕЙКА). Если у​
  • ​ измените ширину столбцов,​
  • ​ области должны находиться​

Синтаксис CELL (ЯЧЕЙКА)

​Формула​​Если используются оба аргумента​​ Excel.​ адрес, записанный в​

​(АДРЕС) возвращает ссылку​
​: К примеру в​

​ выходных. Может, за​​ а в столбце​Guest​ формулист. Как у​

  • ​ поскольку ПОИСКПОЗ осуществляет​​ – Параметры –​protect​Если аргумент​​ Вас есть что​​ чтобы видеть все​ на одном листе. ​
  • ​Описание​​ — и «номер_строки»,​В этом примере мы​ стиле ссылок​​ на ячейку в​​ столбце A в​
  • ​ два дня справитесь​​ С — адреса​: Прекрайне благодарен!​ них в избушке​ поиск относительно диапазона​ Формулы – Работа​(защита): результат равен​reference​
  • ​ добавить к нашим​​ данные.​ Если указать области,​Результат​
  • ​ и «номер_столбца», —​​ найдём ячейку с​A1​ виде текста, основываясь​
  • ​ одном ряду значение​​ с задачей :)​ промежутка L2:AA200)? Ну​
  • ​Владимир​​ побываю — в​ выбранных ячеек.​ с Формулами».​ 1, если ячейка​(ссылка) опущен, то​ примерам и сведениям,​Фрукты​ находящиеся на разных​
  • ​=ИНДЕКС({1;2​​ функция ИНДЕКС возвращает​ максимальным значением и​.​ на номере строки​
  • ​ одной ячейки x​​Или все-таки пример​ или что-то в​: Как понять это​ шоке! Они там​
  • ​2 – номер столбца,​​Если требуется ссылка на​ заблокирована, или 0​
  • ​ результат возвращается для​​ пожалуйста, делитесь этим​Цена​ листах, произойдет ошибка​
  • ​:​​ значение ячейки на​ используем функцию​

Ловушки функции CELL (ЯЧЕЙКА)

​=ADDRESS($C$2,$C$3)​ и столбца. Она​ , значение другой​​ покажете?​​ этом роде​

  • ​ слово «прекрайне»? Бесконечно…​​ такое мутят, что​​ в котором находится​ ячейку, которая находится​ (ноль), если не​ последней изменённой ячейки.​ в комментариях.​Количество​ #ЗНАЧ!  Если необходимо​3;4};0;2)​ пересечении указанных строки​ADDRESS​=АДРЕС($C$2;$C$3)​ может возвращать абсолютный​​ y.​​Михаил С.​
  • ​Юрий М​​ …или крайность, в​​ не пойму сам:​ искомая ячейка.​ в другом листе​ заблокирована.​
  • ​ Чтобы быть уверенным,​​Функция​​Яблоки​​ использовать диапазоны, находящиеся​​Значение ячейки на пересечении​ и столбца.​(АДРЕС), чтобы получить​Если не указывать значение​

Пример 1: Формат числа в ячейке

​ или относительный адрес​​Задача в том​​: И зачем Вам​: Если нужно контролировать​​ хорошем смысле слова…​​ то ли я​Аналогичным способом получаем ссылку​ данного документа Excel,​=CELL(B4,B2)​​ что результат получился​​CELL​0,69 ₽​​ на разных листах,​​ первой строки и​

​Если указать в качестве​
​ её адрес.​

Функция ЯЧЕЙКА в Excel

Пример 2: Название листа

​ аргумента​​ в стиле ссылок​​ что бы дать​​ именно адрес?​​ только одну ячейку​Юрий М​ дурак(а это скорее!),​ на ячейку с​

​ полезно использовать параметр​
​=ЯЧЕЙКА(B4;B2)​

Функция ЯЧЕЙКА в Excel

​ именно тот, что​(ЯЧЕЙКА) показывает информацию​40​ рекомендуется применить функцию​ второго столбца в​ аргумента «номер_строки» или​​Функция​​abs_num​​A1​​ еще одной ячейки​Zorge​ — зачем тогда​: Через край, наверное…​ то ли они​ максимальной ценой товара.​

​ [имя_листа], который принимает​
​Когда выбрано значение​

Функция ЯЧЕЙКА в Excel

Пример 3: Подстановка аргумента info_type (тип_сведений) из выпадающего списка

​ Вам нужен, ссылку​ о форматировании, содержании​​Бананы​​ ИНДЕКС в форме​​ массиве. Массив содержит​​ «номер_столбца» значение 0​MAX​(тип_ссылки) в формуле,​или​ значение z​: Благодарю за оперативность.​ обрабатываем диапазон? Сформулируйте​Ромич​ иноПланетяне. Ждем наших​​ В результате получим:​​ текстовое значение, соответствующее​width​ желательно всегда указывать.​​ и расположении ячейки​​0,34 ₽​ массива и использовать​

​ значения 1 и​​ (ноль), функция ИНДЕКС​​(МАКС) находит максимальное​ то результатом будет​R1C1​Такое возможно в​Я так понимаю,​

​ уже условие ЗАНОВО​
​: См. значение префикса​

Функция ЯЧЕЙКА в Excel

​ уважаемых Формулистов. Хотя​​Пример 3. В таблице​​ названию требуемого листа,​(ширина), результат показывает​ Вы можете сослаться​ по заданной ссылке.​38​ другую функцию для​ 2 в первой​ возвратит массив значений​

Функция ЯЧЕЙКА в Excel

​ число в столбце​ абсолютная ссылка.​
​. К тому же​
​ exel?​

​ что даже не​

office-guru.ru

Примеры функции АДРЕС для получения адреса ячейки листа Excel

​ и ОДНОЗНАЧНО.​ ПРЕ-​ … макросом можно.​ содержится ячейка, данные​ например «Лист7».​ ширину столбца в​ даже ячейку, в​Функция​Лимоны​

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

Функция АДРЕС в Excel: описание особенностей синтаксиса

​По второму вопросу​В общем, «через​

​ Ща меня ногами​

​ из которой используются​​ формате целого числа.​

​ которой содержится сама​

  • ​CELL​0,55 ₽​ массив.  Например, определить​ 3 и 4​
  • ​ или целой строки​=MAX(C3:C8)​ виде относительной ссылки,​ быть включено имя​
  • ​ как реализовать.​ а в возможности/невозможности​ — зачем распределять​ край» — это​ формулисты запинают:-).​ в другом программном​
  1. ​Пример 1. В таблице​ Единицей измерения в​
  2. ​ функция​(ЯЧЕЙКА) может сообщить​
  3. ​15​ используемый диапазон можно​
  4. ​ во второй строке.​ соответственно. Чтобы использовать​
  • ​=МАКС(C3:C8)​ можно подставить в​ листа.​Спасибо заранее за​
  • ​ выполнения.​ найденные значения-адреса по​ близко​П.С. 11979 -​ продукте. Для обеспечения​

​ Excel содержится ячейка,​

  1. ​ этом случае является​CELL​ о ячейке информацию​Апельсины​ с помощью функции​2​ значения, возвращенные как​Далее в игру вступает​ качестве аргумента​Функция​
  2. ​ любые ответы…​Вот примерно такой​ разным столбцам (это​Ромич​ это две пары?​ совместимости необходимо предоставить​ отображающая динамически изменяемые​ ширина одного символа​(ЯЧЕЙКА).​
  3. ​ следующего содержания:​0,25 ₽​ ВЫБОР.​Значение ячейки на пересечении​ массив, введите функцию​ функция​abs_num​ADDRESS​Haken​

​ пример получился.​

Примеры использования функции АДРЕС в Excel

​ сложнее), если в​: в завершение. можно​ Никогда не играл​ ссылку на нее​ данные в зависимости​ при стандартном размере​При работе с функцией​Числовой формат ячейки.​25​Например, если аргумент «ссылка»​ второй строки и​ ИНДЕКС как формула​

​ADDRESS​(тип_ссылки) значение​(АДРЕС) может возвратить​

Курсы.

​: Встаете на ячейку,​Нужен этот адрес,​ ячейках ГИПЕРССЫЛКИ? Неважно​ ли сделать получаемый​ в игры, это​

Цены.

​ в виде R1C1.​ от определенных условий.​ шрифта.​CELL​Название листа.​Груши​ определяет ячейки (A1:B4,D1:E4,G1:H4),​ второго столбца в​ массива в горизонтальный​

валюты USD.

​(АДРЕС) в сочетании​

  • ​4​ адрес ячейки или​ пишете​
  • ​ для работы с​ из какого столбца​
  • ​ адрес гиперссылкой?{/post}{/quote}​ уже здесь подхватил.​
  • ​Исходная таблица имеет следующий​ Для работы с​Урок подготовлен для Вас​
  • ​(ЯЧЕЙКА), иногда необходимо​Выравнивание или ширину столбца.​0,59 ₽​ номер области 1​

​ массиве, указанном выше.​ диапазон ячеек для​ с​

расчет стоимости в рублях.

​.​ работать в сочетании​=A1+A2​ первоначальным массивом. Например,​ сработает гиперссылка?​Насчёт завершения -​ От «Казанский».​ вид:​

ДВССЫЛ.

Как получить адрес ссылки на ячейку Excel?

​ актуальными данными в​ командой сайта office-guru.ru​ делать пересчёт листа,​Функция​40​ соответствует диапазону A1:B4,​4​ строки и в​MATCH​

​=ADDRESS($C$2,$C$3,4)​ с другими функциями,​

Пример 2.

​ну или другую​ если яблоки и​Ромич​ сомнительно: начиналось с​

АДРЕС.

​Юрий М​Для получения ссылки на​

  • ​ таблице, которая находится​Источник: http://blog.contextures.com/archives/2011/01/12/30-excel-functions-in-30-days-11-cell/​ чтобы обновить результат,​CELL​Миндаль​ номер области 2​Примечание:​ вертикальный — для столбца.​(ПОИСКПОЗ), которая находит​=АДРЕС($C$2;$C$3;4)​ чтобы:​ формулу, по которой​ груши от разных​
  • ​: Хорошо,сейчас попробую.​ соседнего столбца. Пока​: Вот так, например.​

​ ячейку B6 используем​ на другом листе​Перевел: Антон Андронов​ который возвращает функция.​

получаем ссылку на ячейку.

Адрес по номерам строк и столбцов листа Excel в стиле R1C1

​(ЯЧЕЙКА) имеет вот​2,80 ₽​ — диапазону D1:E4,​ Это формула массива, которую​ Чтобы ввести формулу​ номер строки, и​Чтобы задать стиль ссылок​Получить адрес ячейки, зная​

​ должно считаться значение​ поставщиков.​

>Исходная таблица.

​Есть таблица, при​ накопите вопросы.{/post}{/quote}​kim​

используем следующую формулу.

​ следующую формулу: =АДРЕС(6;2;1;0).​

  • ​ документа требуется получить​Автор: Антон Андронов​
  • ​Если в качестве аргумента​ такой синтаксис:​10​
  • ​ а номер области​ нужно вводить с​
  • ​ массива, нажмите сочетание​COLUMN​

​R1C1​

R1C1.

​ номер строки и​ третьей ячейки…​MCH​ вводе в первую​Юрий, а что​

​: Дык автор конкретно​Аргументы функции:​ ссылку на данную​Функция АДРЕС возвращает адрес​info_type​CELL(info_type,reference)​Кешью​ 3 — диапазону​ помощью клавиш CTRL+SHIFT+ВВОД.​ клавиш CTRL+SHIFT+ВВОД.​(СТОЛБЕЦ), которая определяет​, вместо принятого по​ столбца.​

абсолютный тип ссылок по строкам и столбцам.

​Serge​: И зачем Вам​ ячейку которой Имени​ нужно дописать в​

exceltable.com

поиск адреса ячейки по значению

​ формулой вроде не​​6 – номер строки​ ячейку.​ определенной ячейки (текстовое​(тип_сведений) выбрано значение​ЯЧЕЙКА(тип_сведений;ссылка)​3,55 ₽​ G1:H4.​ Excel автоматически заключит​Примечание:​ номер столбца.​ умолчанию стиля​Найти значение ячейки, зная​: k1ava, а теперь​ всетаки адрес? что​ мы должны получить​ этом макросе,чтобы он​ просил…​

​ искомой ячейки;​​На листе «Курсы» создана​ значение), на которую​filename​info_type​16​После того как с​ формулу в фигурные​  В Excel Web​
​=ADDRESS(MATCH(F3,C:C,0),COLUMN(C2))​A1​ номер строки и​

​ можно ещё раз​​ Вы с ним​ адреса расположения(гиперссылки) на​ выдавал не один​Ну да ладно,​2 – номер столбца,​

​ таблица с актуальными​​ указывают номера столбца​(имяфайла), а книга​(тип_сведений) — это​Арахис​ помощью аргументов «ссылка»​ скобки {}. Если​ App невозможно создавать​=АДРЕС(ПОИСКПОЗ(F3;C:C;0);СТОЛБЕЦ(C2))​, Вы должны указать​ столбца.​ и по-русски?​ будете делать?​ схеме.​ адрес, а несколько,списком(если,например,имя​ вот формульный вариант​ в котором содержится​
​ курсами валют:​ и строки. К​ Excel ещё не​ один из вариантов​1,25 ₽​ и «номер_области» выбран​

​ вы попытаетесь ввести​​ формулы массива.​

​Урок подготовлен для Вас​​ значение FALSE (ЛОЖЬ)​Возвратить адрес ячейки с​Понятно и с​
​Михаил С.​По поводу второй​

​ встречается неоднократно).​​Ромич​ ячейка;​На отдельном листе «Цены»​ примеру, в результате​

​ сохранена, то результатом​​ аргумента:​20​ диапазон, с помощью​ их вручную, Excel​Аргументы «номер_строки» и «номер_столбца»​ командой сайта office-guru.ru​ для аргумента​ самым большим значением.​ примером в Excel?​
​: Или так​ части. Дело в​Юрий М​: Юрий, а можно​
​1 – тип ссылки​ создана таблица с​ выполнения функции =АДРЕС(5;7)​
​ будет пустая строка.​
​address​Грецкие орехи​

​ аргументов «номер_строки» и​​ отобразит формулу как​ должны указывать на​

​Источник: http://blog.contextures.com/archives/2011/01/21/30-excel-functions-in-30-days-20-address/​​а1​Функция​

​Guest​​Михаил С.​
​ том, что как​

​: А каким образом​​ поподробнее об этом​ (абсолютная);​ товарами, отображающая стоимость​

​ будет выведено значение​​Со значением​(адрес) – ссылка​1,75 ₽​ «номер_столбца» выбирается конкретная​

​ текст. Если при​​ ячейку внутри заданного​Перевел: Антон Андронов​.​ADDRESS​: Расчитать не получится.​: Блин, не свой​

​ раз-таки важно, из​ и куда выводить​ макросе?что там к​0 – указание на​

​ в долларах США​​ $G$5.​format​ на первую ячейку​
​12​ ячейка: номер строки​ вводе формулы не​ массива; в противном​

​Автор: Антон Андронов​​=ADDRESS($C$2,$C$3,1,FALSE)​(АДРЕС) имеет вот​Надо что бы​ файл сохранил …​

​ какого столбца работает​​ этот список?​

​ чему?​​ стиль R1C1.​ (USD):​Примечание: наличие символов «$»​(формат) Вы можете​

​ в аргументе​​Формула​

​ 1 соответствует первой​​ нажать клавиши CTRL+SHIFT+ВВОД,​ случае функция ИНДЕКС​
​Функция ИНДЕКС возвращает значение​=АДРЕС($C$2;$C$3;1;ЛОЖЬ)​ такой синтаксис:​

​ значение «Да» напротив​​ ;)​ гиперссылка — идет​Ромич​
​Юрий М​В результате получим ссылку:​В ячейку D3 поместим​ в адресе ячейки​

​ использовать функцию​reference​Описание​ строке диапазона, номер​ она возвратит ошибку​ возвратит значение ошибки​

​ или ссылку на​​Последний аргумент – это​ADDRESS(row_num,column_num,[abs_num],[a1],[sheet_text])​ Питания ставилось только​

​vikttur​​ распределение по зонам.Но​

​: ну,например,так​: Хм, подробнее… Макрос​Практическое применение функции АДРЕС:​ ссылку на ячейку​ $G$5 свидетельствует о​

​CELL​​(ссылка) в текстовом​Результат​ столбца 1 —​ #ЗНАЧ!​ #ССЫЛКА!.​ значение из таблицы​ имя листа. Если​АДРЕС(номер_строки;номер_столбца;[тип_ссылки];[а1];[имя_листа])​ если в полях​
​: Нелетучая формула извлечения​ это не суть​

​А еще был​​ отслеживает изменения в​ Поиск значения в​ таблицы, находящейся на​ том, что ссылка​(ЯЧЕЙКА), чтобы показать​ формате.​=ИНДЕКС(A2:C6;2;3)​

​ его первому столбцу​​К началу страницы​В этих примерах функция​ или диапазона.​ Вам необходимо это​abs_num​ «должность» и «График»​ МАКС:​ важно. Есть другой​ бы рад, если​ диапазоне А2:А1000, запускает​ диапазоне таблицы Excel​ листе «Курсы», в​ на данную ячейку​ числовой формат ячейки.​col​Пересечение второй строки и​ и т. д.​Возвращает ссылку на ячейку,​ ИНДЕКС используется для​Функцию ИНДЕКС можно использовать​

​ имя в полученном​​(тип_ссылки) – если​ стоят значения «Водитель»​=МАКС(ИНДЕКС($B$2:$B$15;ПОИСКПОЗ(F4;$A$2:$A$15;)):ИНДЕКС($B$2:$B$15;ПОИСКПОЗ(F4;$A$2:$A$15;)+СЧЁТЕСЛИ(A$2:A$15;F4)-1))​ вариант тут,если это​ бы Вы оставили​ по этому изменению​ по столбцам и​

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

​ и «Пятидневка», в​​И все-таки, для​ слишком запарно​ в тексте программы​ поиск. Если находит,​ строкам.​ о курсе валюты​
​ есть не меняется​ B7 имеет формат​ столбца ячейки в​ диапазоне A2:C6, т. е.​ ИНДЕКС, указывает на​ указанной строки и​ находящейся на пересечении​Если вы хотите возвращать​

​ в качестве аргумента​​1​
​ противном случае поле​ чего адрес? Поверьте​Юрий М​ комментарии)​ то в соседнюю​Примечание: при использовании стиля​
​ USD. Для этого​ при копировании данных.​General​ аргументе​ содержимое ячейки C3.​ пересечение строки «номер_строки»​ указанного столбца. Если​ заданных строки и​ значение указанной ячейки​sheet_text​или вообще не​

​ остается пустым.​​ опыту: АДРЕС() практически​
​: Уточняемся:​Юрий М​ ячейку записывает адрес​
​ R1C1 запись абсолютной​ введем следующую формулу:​Функция АДРЕС имеет следующую​
​(Общий), то результатом​reference​
​38​
​ и столбца «номер_столбца».​ ссылка составлена из​ столбца.​ или массива ячеек,​(имя_листа).​ указано, то функция​Guest​ не используется, эта​1. Значение всегда​

planetaexcel.ru

Узнать адрес ячейки по отобранному формулой значению

​: А как быть,​​ найденной ячейки, если​ ссылки не содержит​
​ =АДРЕС(3;2;1;1;»Курсы»).​ синтаксическую запись:​ формулы будет​
​(cсылка).​=ИНДЕКС((A1:C6;A8:C11);2;2;2)​Если указать в качестве​ несмежных выделенных диапазонов,​Скопируйте образец данных из​ см. раздел Форма​=ADDRESS($C$2,$C$3,1,TRUE,»Ex02″)​ возвратит абсолютный адрес​: Не прикрепилось ))​ функция покажет адрес,​ будет вводиться ТОЛЬКО​ если в А2​
​ нет — орёт.​ знака «$». Чтобы​Значение параметров:​=АДРЕС(номер_строки;номер_столбца;[тип_ссылки];[a1];[имя_листа])​G​сolor​Пересечение второй строки и​ аргумента «номер_строки» или​

​ можно указать, какой​ следующей таблицы и​

​ массива.​​=АДРЕС($C$2;$C$3;1;ИСТИНА;»Ex02″)​ ($A$1). Чтобы получить​ Прикрепленные файлы post_114193.jpg​ но в тексте,​
​ в ячейку А2.​ введём новое имя?​

​Кстати, нужно добавить​​ отличать абсолютные и​3 – номер строки,​Первые два аргумента данной​:​
​(цвет) – возвращается​ второго столбца во​

​ «номер_столбца» значение 0​​ из них требуется​ вставьте их в​

​Если требуется возвращать ссылку​​Функция​
​ относительный адрес (A1),​ (17.37 КБ)​ и обработать его​2. Список найденных​ Может лучше по​

​ очистку «соседней» ячейки​ относительные ссылки используются​
​ в которой содержится​ функции являются обязательными​=CELL(«format»,C2)​ 1, если форматированием​ второй области (A8:C11),​ (ноль), функция ИНДЕКС​

​ использовать.​​ ячейку A1 нового​ на указанные ячейки,​ADDRESS​ используйте значение​

​kim​​ в дальнейшем можно,​

​ адресов отображать в​​ строке вправо? Тогда​ после неудачного поиска:​ квадратные скобки «[]».​

​ искомая ячейка;​​ для заполнения.​=ЯЧЕЙКА(«формат»;C2)​
​ ячейки предусмотрено изменение​

​ т. е. содержимое ячейки​ возвратит ссылку на​ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])​ листа Excel. Чтобы​ см. раздел Ссылочная​(АДРЕС) возвращает адрес​4​: =ЕСЛИ((должность=»водитель»)*(график=»пятидневка);»Да»;»»)​ только преобразовав в​ столбце В.​ всё найденное будет​ после строки​

​ Например, если в​​2 – номер столбца​Описание аргументов:​

​Со значением​ цвета для отрицательных​

​ B9.​​ целый столбец или​
​Аргументы функции ИНДЕКС описаны​ отобразить результаты формул,​ форма.​ ячейки в виде​. Остальные варианты:​k1ava​ ссылку. А это​
​3. «Старый» список​ относиться к одному​MsgBox «А нету​ данном примере в​ с искомой ячейкой;​Номер_строки – числовое значение,​filename​ значений; во всех​1,25​ целую строку соответственно.​ ниже.​ выделите их и​Возвращает значение элемента таблицы​ текста, а не​2​: А если не​

​ усложнение и добавление​

​ очищать.​​ имени в одной​
​ там такого. Совсем​

​ качестве параметра тип_ссылки​1 – тип ссылки​ соответствующее номеру строки,​
​(имяфайла) функция​ остальных случаях возвращается​=СУММ(ИНДЕКС(A1:C11;0;3;1))​Аргументы «номер_строки», «номер_столбца» и​Ссылка​

​ нажмите клавишу F2,​​ или массив, заданного​
​ как действующую ссылку.​

planetaexcel.ru

Как автоматически задать значение ячейки основываясь на данных других ячеек?

​=A$1,​​ сложно, можно куда​ летучести (ДВССЫЛ(), например).​Правильно?​ строке.​ нет.», 48, «Ошибка!»​ указать число 4,​
​ – абсолютная;​ в которой находится​CELL​ 0 (ноль).​
​Сумма третьего столбца в​ «номер_области» должны указывать​
​    — обязательный аргумент. Ссылка​ а затем — клавишу​
​ номером строки и​ Если Вам нужно​

​3​​ нибудь залить файл​Владимир​
​В моём предыдущем​
​P.S. Комментарий за​добавьте такую строку:​ ссылка на ячейку​1 – выбор стиля​

​ требуемая ячейка;​​(ЯЧЕЙКА) покажет путь​contents​ первой области диапазона​
​ на ячейку внутри​ на один или​

​ ВВОД. При необходимости​​ номером столбца.​
​ получить значение ячейки,​=$A1.​ с простым примеров​: Возможно совпадёт с​ сообщении ошибочно проставлен​ отдельную плату :-)​Target.Offset(0, 1) =​ примет следующий вид:​ ссылок с буквенно-цифровой​

​Номер_столбца – числовое значение,​​ к файлу, имя​(содержимое) – значение​ (A1:C11) является суммой​

​ аргумента «ссылка»; в​​ несколько диапазонов ячеек.​

​ измените ширину столбцов,​​Если первый аргумент функции​ можно использовать результат,​a1​ подобной конструкции​ чьим-либо решением, но…:​

planetaexcel.ru

​ знак вопрос в​

Иногда бывает необходимо с помощью формул узнать о какой-либо ячейке подробную информацию и параметры, чтобы использовать это в расчетах. Например, выяснить число или текст в ячейке или какой числовой формат в ней установлен. Сделать это можно, используя функцию ЯЧЕЙКА (CELL).

Синтаксис у функции следующий:

=ЯЧЕЙКА(Параметр; Адрес)

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

Параметры функции ЯЧЕЙКА (CELL)

Давайте рассмотрим пару трюков с применением этой функции на практике.

Например, можно получить имя текущего листа формулой, используя функцию ЯЧЕЙКА с параметром «имяфайла» и извлекающей все символы правее закрывающей квадратной скобки:

Имя листа формулой

Также можно проверить тип данных в ячейке (параметр «тип») и выводить сообщение об ошибке вместо вычислений, если введен текст или ячейка пуста:

Проверка содержимого ячейки функцией ЯЧЕЙКА

Или подсветить условным форматированием все незащищенные ячейки в заданном диапазоне:

Подсветка незащищенных ячеек

Ссылки по теме

  • Включение / выключение подсветки незащищенных ячеек макросом
  • Условное форматирование в Excel

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

Описание

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

Создание образца листа

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

Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.

A

B

C

D

E

1

Имя

Правитель

Возраст

Поиск значения

2

Анри

501

Плот

Иванов

3

Стэн

201

19

4

Иванов

101

максималь

5

Ларри

301

составляет

Определения терминов

В этой статье для описания встроенных функций Excel используются указанные ниже условия.

Термин

Определение

Пример

Массив таблиц

Вся таблица подстановки

A2: C5

Превышающ

Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».

E2

Просматриваемый_массив
-или-
Лукуп_вектор

Диапазон ячеек, которые содержат возможные значения подстановки.

A2: A5

Номер_столбца

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

3 (третий столбец в инфо_таблица)

Ресулт_аррай
-или-
Ресулт_вектор

Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.

C2: C5

Интервальный_просмотр

Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.

ЛОЖЬ

Топ_целл

Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?.

Оффсет_кол

Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).

Функции

LOOKUP ()

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

Ниже приведен пример синтаксиса формулы подСТАНОВКи.

   = Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)


Следующая формула находит возраст Марии на листе «образец».

   = ПРОСМОТР (E2; A2: A5; C2: C5)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).

Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.

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

Использование функции Просмотр в Excel

ВПР ()

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

Ниже приведен пример синтаксиса формулы ВПР :

    = ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)

Следующая формула находит возраст Марии на листе «образец».

   = ВПР (E2; A2: C5; 3; ЛОЖЬ)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).

Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
 

Как найти точное совпадение с помощью функций ВПР или ГПР

INDEX () и MATCH ()

Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.

Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:

    = Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)

Следующая формула находит возраст Марии на листе «образец».


= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).

Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:

Поиск данных в таблице с помощью функции индекс

СМЕЩ () и MATCH ()

Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.

Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.

   = СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)

Эта формула находит возраст Марии на листе «образец».

   = СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).

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

Использование функции СМЕЩ

Нужна дополнительная помощь?

Всё о работе с ячейками в Excel-VBA: обращение, перебор, удаление, вставка, скрытие, смена имени.

Содержание:

Table of Contents:

  • Что такое ячейка Excel?
  • Способы обращения к ячейкам
    • Выбор и активация
    • Получение и изменение значений ячеек
      • Ячейки открытой книги
      • Ячейки закрытой книги 
    • Перебор ячеек
    • Перебор в произвольном диапазоне
  • Свойства и методы ячеек
    • Имя ячейки
    • Адрес ячейки
    • Размеры ячейки
  • Запуск макроса активацией ячейки

2 нюанса:

  1. Я почти везде стараюсь использовать ThisWorkbook (а не, например, ActiveWorkbook) для обращения к текущей книге, в которой написан этот код (считаю это наиболее безопасным для новичков способом обращения к книгам, чтобы случайно не внести изменения в другие книги). Для экспериментов можете вставлять этот код в модули, коды книги, либо листа, и он будет работать только в пределах этой книги. 
  2. Я использую английский эксель и у меня по стандарту листы называются Sheet1, Sheet2 и т.д. Если вы работаете в русском экселе, то замените Thisworkbook.Sheets(«Sheet1») на Thisworkbook.Sheets(«Лист1»). Если этого не сделать, то вы получите ошибку в связи с тем, что пытаетесь обратиться к несуществующему объекту. Можно также заменить на Thisworkbook.Sheets(1), но это менее безопасно.

Что такое ячейка Excel?

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

Объекты в Excel-VBA. Пока мы работаем в Excel без углубления в VBA определение ячейки как «пересечения» строк и столбцов нам вполне хватает, но если мы решаем как-то автоматизировать процесс в VBA, то о нём лучше забыть и просто воспринимать лист как «мешок» ячеек, с каждой из которых VBA позволяет работать как минимум тремя способами:

  1. по цифровым координатам (ряд, столбец),
  2. по адресам формата А1, B2 и т.д. (сценарий целесообразности данного способа обращения в VBA мне сложно представить)
  3. по уникальному имени (во втором и третьем вариантах мы будем иметь дело не совсем с ячейкой, а с объектом VBA range, который может состоять из одной или нескольких ячеек). Функции и методы объектов Cells и Range отличаются. Новичкам я бы порекомендовал работать с ячейками VBA только с помощью Cells и по их цифровым координатам и использовать Range только по необходимости.

Все три способа обращения описаны далее

Как это хранится на диске и как с этим работать вне Excel? С точки зрения хранения и обработки вне Excel и VBA. Сделать это можно, например, сменив расширение файла с .xls(x) на .zip и открыв этот архив.

Пример содержимого файла Excel:

Далее xl -> worksheets и мы видим файл листа

Содержимое файла:

 То же, но более наглядно:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2" xmlns:xr3="http://schemas.microsoft.com/office/spreadsheetml/2016/revision3" xr:uid="{00000000-0001-0000-0000-000000000000}">
	<dimension ref="B2:F6"/>
	<sheetViews>
		<sheetView tabSelected="1" workbookViewId="0">
			<selection activeCell="D12" sqref="D12"/>
		</sheetView>
	</sheetViews>
	<sheetFormatPr defaultRowHeight="14.4" x14ac:dyDescent="0.3"/>
	<sheetData>
		<row r="2" spans="2:6" x14ac:dyDescent="0.3">
			<c r="B2" t="s">
				<v>0</v>
			</c>
		</row>
		<row r="3" spans="2:6" x14ac:dyDescent="0.3">
			<c r="C3" t="s">
				<v>1</v>
			</c>
		</row>
		<row r="4" spans="2:6" x14ac:dyDescent="0.3">
			<c r="D4" t="s">
				<v>2</v>
			</c>
		</row>
		<row r="5" spans="2:6" x14ac:dyDescent="0.3">
			<c r="E5" t="s">
				<v>0</v></c>
		</row>
		<row r="6" spans="2:6" x14ac:dyDescent="0.3">
			<c r="F6" t="s"><v>3</v>
		</c></row>
	</sheetData>
	<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>

Как мы видим, в структуре объектной модели нет никаких «пересечений». Строго говоря рабочая книга — это архив структурированных данных в формате XML. При этом в каждую «строку» входит «столбец», и в нём в свою очередь прописан номер значения данного столбца, по которому оно подтягивается из другого XML файла при открытии книги для экономии места за счёт отсутствия повторяющихся значений. Почему это важно. Если мы захотим написать какой-то обработчик таких файлов, который будет напрямую редактировать данные в этих XML, то ориентироваться надо на такую модель и структуру данных. И правильное определение будет примерно таким: ячейка — это объект внутри столбца, который в свою очередь находится внутри строки в файле xml, в котором хранятся данные о содержимом листа.

Способы обращения к ячейкам

Выбор и активация

Почти во всех случаях можно и стоит избегать использования методов Select и Activate. На это есть две причины:

  1. Это лишь имитация действий пользователя, которая замедляет выполнение программы. Работать с объектами книги можно напрямую без использования методов Select и Activate.
  2. Это усложняет код и может приводить к неожиданным последствиям. Каждый раз перед использованием Select необходимо помнить, какие ещё объекты были выбраны до этого и не забывать при необходимости снимать выбор. Либо, например, в случае использования метода Select в самом начале программы может быть выбрано два листа вместо одного потому что пользователь запустил программу, выбрав другой лист.

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

Отменить выбор  ячеек можно методом Unselect:

Selection.Unselect

Отличие выбора от активации — активировать можно только один объект из раннее выбранных. Выбрать можно несколько объектов.

Если вы записали и редактируете код макроса, то лучше всего заменить Select и Activate на конструкцию With … End With. Например, предположим, что мы записали вот такой макрос:

Sub Macro1()
' Macro1 Macro
    Range("F4:F10,H6:H10").Select 'выбрали два несмежных диапазона зажав ctrl
    Range("H6").Activate          'показывает только то, что я начал выбирать второй диапазон с этой ячейки (она осталась белой). Это действие ни на что не влияет
    With Selection.Interior       
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535            'залили желтым цветом, нажав на кнопку заливки на верхней панели
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

Почему макрос записался таким неэффективным образом? Потому что в каждый момент времени (в каждой строке) программа не знает, что вы будете делать дальше. Поэтому в записи выбор ячеек и действия с ними — это два отдельных действия. Этот код лучше всего оптимизировать (особенно если вы хотите скопировать его внутрь какого-нибудь цикла, который должен будет исполняться много раз и перебирать много объектов). Например, так:

Sub Macro11()
'
' Macro1 Macro
    Range("F4:F10,H6:H10").Select '1. смотрим, что за объект выбран (что идёт до .Select)
    Range("H6").Activate
    With Selection.Interior       '2. понимаем, что у выбранного объекта есть свойство interior, с которым далее идёт работа
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub



Sub Optimized_Macro()
    With Range("F4:F10,H6:H10").Interior '3. переносим объект напрямую в конструкцию With вместо Selection
' ////// Здесь я для надёжности прописал бы ещё Thisworkbook.Sheet("ИмяЛиста") перед Range,
' ////// чтобы минимизировать риск любых случайных изменений других листов и книг
' ////// With Thisworkbook.Sheet("ИмяЛиста").Range("F4:F10,H6:H10").Interior
        .Pattern = xlSolid               '4. полностью копируем всё, что было записано рекордером внутрь блока with
        .PatternColorIndex = xlAutomatic
        .Color = 55555                   '5. здесь я поменял цвет на зеленый, чтобы было видно, работает ли код при поочерёдном запуске двух макросов
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

Пример сценария, когда использование Select и Activate оправдано:

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

Sub Select_Activate_is_OK()
Thisworkbook.Worksheets(Array("Sheet1", "Sheet3")).Select 'Выбираем несколько листов по именам
Thisworkbook.Worksheets("Sheet3").Activate 'Показываем пользователю третий лист
'Далее все действия с выбранными ячейками через Select будут одновременно вносить изменения в оба выбранных листа

'Допустим, что тут мы решили покрасить те же два диапазона:
Range("F4:F10,H6:H10").Select
    Range("H6").Activate
    With Selection.Interior       
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

End Sub

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

Получение и изменение значений ячеек

Значение ячеек можно получать/изменять с помощью свойства value. 

'Если нужно прочитать / записать значение ячейки, то используется свойство Value
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Value 'записать значение ячейки А1 листа "Sheet1" в переменную "a"
ThisWorkbook.Sheets("Sheet1").Cells (1,1).Value = 1  'задать значение ячейки А1 (первый ряд, первый столбец) листа "Sheet1"

'Если нужно прочитать текст как есть (с форматированием), то можно использовать свойство .text:
ThisWorkbook.Sheets("Sheet1").Cells (1,1).Text = "1" 
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Text

'Когда проявится разница:
'Например, если мы считываем дату в формате "31 декабря 2021 г.", хранящуюся как дата
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Value 'эапишет как "31.12.2021"
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Text  'запишет как "31 декабря 2021 г."

Ячейки открытой книги

К ячейкам можно обращаться:

'В книге, в которой хранится макрос (на каком-то из листов, либо в отдельном модуле или форме)
ThisWorkbook.Sheets("Sheet1").Cells(1,1).Value        'По номерам строки и столбца
ThisWorkbook.Sheets("Sheet1").Cells(1,"A").Value      'По номерам строки и букве столбца
ThisWorkbook.Sheets("Sheet1").Range("A1").Value       'По адресу - вариант 1
ThisWorkbook.Sheets("Sheet1").[A1].Value              'По адресу - вариант 2
ThisWorkbook.Sheets("Sheet1").Range("CellName").Value 'По имени ячейки (для этого ей предварительно нужно его присвоить)

'Те же действия, но с использованием полного названия рабочей книги (книга должна быть открыта)
Workbooks("workbook.xlsm").Sheets("Sheet1").Cells(1,1).Value 'По номерам строки и столбца
Workbooks("workbook.xlsm").Sheets("Sheet1").Cells(1,"A").Value                'По номерам строки и букве столбца
Workbooks("workbook.xlsm").Sheets("Sheet1").Range("A1").Value                 'По адресу - вариант 1
Workbooks("workbook.xlsm").Sheets("Sheet1").[A1].Value                        'По адресу - вариант 2
Workbooks("workbook.xlsm").Sheets("Sheet1").Range("CellName").Value           'По имени ячейки (для этого ей предварительно нужно его присвоить)

Ячейки закрытой книги

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

Workbooks.Open Filename:="С:closed_workbook.xlsx"    'открыть книгу (она становится активной)
a = ActiveWorkbook.Sheets("Sheet1").Cells(1,1).Value  'достать значение ячейки 1,1
ActiveWorkbook.Close False                            'закрыть книгу (False => без сохранения)

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

Код из файла:

Option Explicit
Sub get_value_from_closed_wb() 'достать значение из закрытой книги
Dim a, wb_path, wsh As String
wb_path = ThisWorkbook.Sheets("Sheet1").Cells(2, 3).Value 'get path to workbook from sheet1
wsh = ThisWorkbook.Sheets("Sheet1").Cells(3, 3).Value
Workbooks.Open Filename:=wb_path
a = ActiveWorkbook.Sheets(wsh).Cells(3, 3).Value
ActiveWorkbook.Close False
ThisWorkbook.Sheets("Sheet1").Cells(4, 3).Value = a
End Sub

Sub record_value_to_closed_wb() 'записать значение в закрытую книгу
Dim wb_path, b, wsh As String
wsh = ThisWorkbook.Sheets("Sheet1").Cells(3, 3).Value
wb_path = ThisWorkbook.Sheets("Sheet1").Cells(2, 3).Value 'get path to workbook from sheet1
b = ThisWorkbook.Sheets("Sheet1").Cells(5, 3).Value 'get value to record in the target workbook
Workbooks.Open Filename:=wb_path
ActiveWorkbook.Sheets(wsh).Cells(4, 4).Value = b 'add new value to cell D4 of the target workbook
ActiveWorkbook.Close True
End Sub

Перебор ячеек

Перебор в произвольном диапазоне

Скачать файл со всеми примерами

Пройтись по всем ячейкам в нужном диапазоне можно разными способами. Основные:

  1. Цикл For Each. Пример:
    Sub iterate_over_cells()
    
    For Each c In ThisWorkbook.Sheets("Sheet1").Range("B2:D4").Cells
    MsgBox (c)
    Next c
    
    End Sub​

    Этот цикл выведет в виде сообщений значения ячеек в диапазоне B2:D4 по порядку по строкам слева направо и по столбцам — сверху вниз. Данный способ можно использовать для действий, в который вам не важны номера ячеек (закрашивание, изменение форматирования, пересчёт чего-то и т.д.).

  2. Ту же задачу можно решить с помощью двух вложенных циклов — внешний будет перебирать ряды, а вложенный — ячейки в рядах. Этот способ я использую чаще всего, потому что он позволяет получить больше контроля над исполнением: на каждой итерации цикла нам доступны координаты ячеек. Для перебора всех ячеек на листе этим методом потребуется найти последнюю заполненную ячейку. Пример кода:
    Sub iterate_over_cells()
    
    Dim cl, rw As Integer
    Dim x As Variant
    
    'перебор области 3x3
    For rw = 1 To 3 ' цикл для перебора рядов 1-3
    
        For cl = 1 To 3 'цикл для перебора столбцов 1-3
            x = ThisWorkbook.Sheets("Sheet1").Cells(rw + 1, cl + 1).Value
            MsgBox (x)
        Next cl
    Next rw
    
    
    
    'перебор всех ячеек на листе. Последняя ячейка определена с помощью UsedRange
    'LastRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
    'LastCol = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
    'For rw = 1 To LastRow 'цикл перебора всех рядов
    '    For cl = 1 To LastCol 'цикл для перебора всех столбцов
    '        Действия 
    '    Next cl
    'Next rw
    
    
    End Sub​
  3. Если нужно перебрать все ячейки в выделенном диапазоне на активном листе, то код будет выглядеть так:
    Sub iterate_cell_by_cell_over_selection()
        Dim ActSheet As Worksheet
        Dim SelRange As Range
        Dim cell As Range
        
     
        Set ActSheet = ActiveSheet
        Set SelRange = Selection
        
        'if we want to do it in every cell of the selected range
        For Each cell In Selection
        MsgBox (cell.Value)
        
        Next cell
    
    End Sub​

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

  4. Перебор ячеек в ряду
    Sub iterate_cells_in_row()
        Dim i, RowNum, StartCell As Long
        
        RowNum = 3 'какой ряд
        StartCell = 0 ' номер начальной ячейки (минус 1, т.к. в цикле мы прибавляем i)
        
        For i = 1 To 10 ' 10 ячеек в выбранном ряду
        ThisWorkbook.Sheets("Sheet1").Cells(RowNum, i + StartCell).Value = i '(i + StartCell) добавляет 1 к номеру столбца при каждом повторении
        Next i
    
    End Sub
  5. Перебор ячеек в столбце
    Sub iterate_cells_in_column()
        Dim i, ColNum, StartCell As Long
        
        ColNum = 3 'какой столбец
        StartCell = 0 ' номер начальной ячейки (минус 1, т.к. в цикле мы прибавляем i)
        
        For i = 1 To 10 ' 10 ячеек
        ThisWorkbook.Sheets("Sheet1").Cells(i + StartCell, ColNum).Value = i ' (i + StartCell) добавляет 1 к номеру ряда при каждом повторении
        Next i
    
    End Sub​

Свойства и методы ячеек

Имя ячейки

Присвоить новое имя можно так:

Thisworkbook.Sheets(1).Cells(1,1).name = "Новое_Имя"

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

ActiveWorkbook.Names("Старое_Имя").Delete

Пример кода для переименования ячеек:

Sub rename_cell()

old_name = "Cell_Old_Name"
new_name = "Cell_New_Name"

ActiveWorkbook.Names(old_name).Delete
ThisWorkbook.Sheets(1).Cells(2, 1).Name = new_name
End Sub

Sub rename_cell_reverse()

old_name = "Cell_New_Name"
new_name = "Cell_Old_Name"

ActiveWorkbook.Names(old_name).Delete
ThisWorkbook.Sheets(1).Cells(2, 1).Name = new_name
End Sub

Адрес ячейки

Sub get_cell_address() ' вывести адрес ячейки в формате буква столбца, номер ряда
  '$A$1 style
  txt_address = ThisWorkbook.Sheets(1).Cells(3, 2).Address
  MsgBox (txt_address)
End Sub

Sub get_cell_address_R1C1()' получить адрес столбца в формате номер ряда, номер столбца
  'R1C1 style
  txt_address = ThisWorkbook.Sheets(1).Cells(3, 2).Address(ReferenceStyle:=xlR1C1)
  MsgBox (txt_address)
End Sub

  'пример функции, которая принимает 2 аргумента: название именованного диапазона и тип желаемого адреса 
  '(1- тип $A$1 2- R1C1 - номер ряда, столбца)
Function get_cell_address_by_name(str As String, address_type As Integer)
  '$A$1 style
  Select Case address_type
    Case 1
      txt_address = Range(str).Address
    Case 2
      txt_address = Range(str).Address(ReferenceStyle:=xlR1C1)
    Case Else
      txt_address = "Wrong address type selected. 1,2 available"
    End Select
  get_cell_address_by_name = txt_address
End Function

'перед запуском нужно убедиться, что в книге есть диапазон с названием, 
'адрес которого мы хотим получить, иначе будет ошибка
Sub test_function() 'запустите эту программу, чтобы увидеть, как работает функция
  x = get_cell_address_by_name("MyValue", 2)
  MsgBox (x)
End Sub

Размеры ячейки

Ширина и длина ячейки в VBA меняется, например, так:

Sub change_size()
Dim x, y As Integer
Dim w, h As Double

'получить координаты целевой ячейки
x = ThisWorkbook.Sheets("Sheet1").Cells(2, 2).Value
y = ThisWorkbook.Sheets("Sheet1").Cells(3, 2).Value

'получить желаемую ширину и высоту ячейки
w = ThisWorkbook.Sheets("Sheet1").Cells(6, 2).Value
h = ThisWorkbook.Sheets("Sheet1").Cells(7, 2).Value

'сменить высоту и ширину ячейки с координатами x,y
ThisWorkbook.Sheets("Sheet1").Cells(x, y).RowHeight = h
ThisWorkbook.Sheets("Sheet1").Cells(x, y).ColumnWidth = w


End Sub

Прочитать значения ширины и высоты ячеек можно двумя способами (однако результаты будут в разных единицах измерения). Если написать просто Cells(x,y).Width или Cells(x,y).Height, то будет получен результат в pt (привязка к размеру шрифта). 

Sub get_size()
Dim x, y As Integer
'получить координаты ячейки, с которой мы будем работать
x = ThisWorkbook.Sheets("Sheet1").Cells(2, 2).Value
y = ThisWorkbook.Sheets("Sheet1").Cells(3, 2).Value

'получить длину и ширину выбранной ячейки в тех же единицах измерения, в которых мы их задавали
ThisWorkbook.Sheets("Sheet1").Cells(2, 6).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).ColumnWidth
ThisWorkbook.Sheets("Sheet1").Cells(3, 6).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).RowHeight

'получить длину и ширину с помощью свойств ячейки (только для чтения) в поинтах (pt)
ThisWorkbook.Sheets("Sheet1").Cells(7, 9).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).Width
ThisWorkbook.Sheets("Sheet1").Cells(8, 9).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).Height

End Sub

Скачать файл с примерами изменения и чтения размера ячеек

Запуск макроса активацией ячейки

Для запуска кода VBA при активации ячейки необходимо вставить в код листа нечто подобное:

3 важных момента, чтобы это работало:

1. Этот код должен быть вставлен в код листа (здесь контролируется диапазон D4)

2-3. Программа, ответственная за запуск кода при выборе ячейки, должна называться Worksheet_SelectionChange и должна принимать значение переменной Target, относящейся к триггеру SelectionChange. Другие доступные триггеры можно посмотреть в правом верхнем углу (2).

Скачать файл с базовым примером (как на картинке)

Скачать файл с расширенным примером (код ниже)

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        ' имеем в виду, что триггер SelectionChange будет запускать эту Sub после каждого клика мышью (после каждого клика будет проверяться:
          '1. количество выделенных ячеек и 
          '2. не пересекается ли выбранный диапазон с заданным в этой программе диапазоном.
        ' поэтому в эту программу не стоит без необходимости писать никаких других тяжелых операций

    If Selection.Count = 1 Then 'запускаем программу только если выбрано не более 1 ячейки


    'вариант модификации - брать адрес ячейки из другой ячейки:
    'Dim CellName as String
    'CellName = Activesheet.Cells(1,1).value 'брать текстовое имя контролируемой ячейки из A1 (должно быть в формате Буква столбца + номер строки)
    'If Not Intersect(Range(CellName), Target) Is Nothing Then
    'для работы этой модификации следующую строку надо закомментировать/удалить



        If Not Intersect(Range("D4"), Target) Is Nothing Then 
        'если заданный (D4) и выбранный диапазон пересекаются 
        '(пересечение диапазонов НЕ равно Nothing)

        'можно прописать диапазон из нескольких ячеек:
        'If Not Intersect(Range("D4:E10"), Target) Is Nothing Then
        'можно прописать несколько диапазонов:
        'If Not Intersect(Range("D4:E10"), Target) Is Nothing or Not Intersect(Range("A4:A10"), Target) Is Nothing Then

            Call program 'выполняем программу
        End If
    End If
End Sub

Sub program()

MsgBox ("Program Is running") 'здесь пишем код того, что произойдёт при выборе нужной ячейки


End Sub

Skip to content

Как использовать функцию ДВССЫЛ – примеры формул

В этой статье объясняется синтаксис функции ДВССЫЛ, основные способы ее использования и приводится ряд примеров формул, демонстрирующих использование ДВССЫЛ в Excel.

В Microsoft Excel существует множество функций, некоторые из которых просты для понимания, другие требуют длительного обучения. При этом первые используются чаще, чем вторые. И тем не менее, функция Excel ДВССЫЛ  (INDIRECT на английском) является единственной в своем роде. Эта функция Excel не выполняет никаких вычислений, не оценивает никаких условий не ищет значения.

Итак, что такое функция ДВССЫЛ (INDIRECT) в Excel и для чего ее можно использовать? Это очень хороший вопрос, и, надеюсь, вы получите исчерпывающий ответ через несколько минут, когда закончите чтение.

Функция ДВССЫЛ в Excel — синтаксис и основные способы использования

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

Все это может быть проще понять на примере. Однако чтобы написать формулу, пусть даже самую простую, нужно знать аргументы функции, верно? Итак, давайте сначала кратко рассмотрим синтаксис Excel ДВССЫЛ.

Функция ДВССЫЛ в Excel возвращает ссылку на ячейку, используя текстовую строку. Она имеет два аргумента, первый является обязательным, а второй – нет:

ДВССЫЛ(ссылка_на_ячейку; [a1])

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

a1 — логическое значение, указывающее, какой тип ссылки содержится в первом аргументе:

  • Если значение ИСТИНА или опущено, то используется ссылка на ячейку в стиле A1.
  • Если ЛОЖЬ, то возвращается ссылка в виде R1C1.

Таким образом, ДВССЫЛ возвращает либо ссылку на ячейку, либо ссылку на диапазон.

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

Как работает функция ДВССЫЛ

Чтобы получить представление о работе функции, давайте создадим простую формулу, которая демонстрирует, как можно применить ДВССЫЛ в Excel.

Предположим, у вас есть число 5 в ячейке A1 и текст «A1» в ячейке C1. Теперь поместите формулу =ДВССЫЛ(C1) в любую другую ячейку и посмотрите, что произойдет:

  • Функция ДВССЫЛ обращается к значению в ячейке C1. Там в виде текстовой строки записан адрес «A1».
  • Функция ДВССЫЛ направляется по этому адресу в ячейку A1, откуда извлекает записанное в ней значение, то есть число 555.

Итак, в этом примере функция ДВССЫЛ преобразует текстовую строку в ссылку на ячейку.

Аналогичным образом можно получить ссылку на диапазон. Для этого просто нужно функции ДВССЫЛ указать два адреса – начальный и конечный. Вы видите это на скриншоте ниже.

Формула   ДВССЫЛ(C1&»:»&C2) извлекает адреса из указанных ячеек и превращается в =ДВССЫЛ(«A1:A5»).

В итоге мы получаем ссылку =A1:A5

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

Как использовать ДВССЫЛ в Excel — примеры формул

Как показано в приведенном выше примере, вы можете использовать функцию ДВССЫЛ, чтобы записать адрес ячейки как обычную текстовую строку и получить в результате значение этой ячейки. Однако этот простой пример — не более чем намек на возможности ДВССЫЛ.

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

Создание косвенных ссылок из значений ячеек

Как вы помните, функция ДВССЫЛ в Excel позволяет использовать стили ссылок A1 и R1C1. Обычно вы не можете использовать оба стиля на одном листе одновременно. Вы можете переключаться между двумя типами ссылок только с помощью опции «Файл» > «Параметры» > «Формулы» > R1C1 . По этой причине пользователи Excel редко рассматривают использование R1C1 в качестве альтернативного подхода к созданию ссылок.

В формуле ДВССЫЛ вы можете использовать любой тип ссылки на одном и том же листе, если хотите. Прежде чем мы двинемся дальше, давайте более подробно рассмотрим разницу между стилями ссылок A1 и R1C1.

Стиль A1 — это обычный и привычный всем нам тип адресации в Excel, который указывает сначала столбец, за которым следует номер строки. Например, B2 обозначает ячейку на пересечении столбца B и строки 2.

Стиль R1C1 является обозначает координаты ячейки наоборот – за строками следуют столбцы, и к этому нужно привыкнуть:) Например, R5C1 относится к ячейке A5, которая находится в строке 5, столбце 1 на листе. Если после буквы не следует какая-либо цифра, значит, вы имеете в виду ту же строку или столбец, в которых записана сама формула.

А теперь давайте сравним на простом примере, как функция ДВССЫЛ обрабатывает адреса вида A1 и R1C1:

Как вы видите на скриншоте выше, две разные формулы возвращают один и тот же результат. Вы уже поняли, почему? 

  • Формула в ячейке D1:   =ДВССЫЛ(C1)

Это самый простой вариант. Формула обращается к ячейке C1, извлекает ее значение — текстовую строку «A2» , преобразует ее в ссылку на ячейку, переходит к ячейке A2 и возвращает ее значение, равное 456.

  • Формула в ячейке D3:  =ДВССЫЛ(C3;ЛОЖЬ)

ЛОЖЬ во втором аргументе указывает, что указанное значение (C3) следует рассматривать как ссылку на ячейку в формате R1C1, т. е. сначала идет номер строки, за которым следует номер столбца. Таким образом, наша формула ДВССЫЛ интерпретирует значение в ячейке C3 (R2C1) как ссылку на ячейку на пересечении строки 2 и столбца 1, которая как раз и является ячейкой A2.

Создание ссылок из значений ячеек и текста

Аналогично тому, как мы создавали ссылки из значений ячеек , вы можете комбинировать текстовую строку и ссылку на ячейку с адресом прямо в формуле ДВССЫЛ, соединив их вместе при помощи оператора конкатенации (&).

В следующем примере формула =ДВССЫЛ(«А»&C1) возвращает значение из ячейки А1 на основе следующей логической цепочки:

Функция ДВССЫЛ объединяет элементы в первом аргументе ссылка_на_ячейку — текст «А» и значение из ячейки C1. Значение в C1 – это число 1, что в результате формирует адрес А1. Формула переходит к ячейке А1 и возвращает ее значение – 555.

Использование функции ДВССЫЛ с именованными диапазонами

Помимо создания ссылок на ячейки из текстовых строк, вы можете заставить функцию Excel ДВССЫЛ создавать ссылки на именованные диапазоны.

Предположим, у вас есть следующие именованные диапазоны на вашем листе:

  • Яблоки – С2:E2
  • Лимоны — C3: E3
  • Апельсины – C4:E4 и так далее по каждому товару.

Чтобы создать динамическую ссылку Excel на любой из указанных выше диапазонов с цифрами продаж, просто запишите его имя, скажем, в H1, и обратитесь к этой ячейке при помощи формулы =ДВССЫЛ(H1).

А теперь вы можете сделать еще один шаг и вложить эту формулу в другие функции Excel. Например, попробуем вычислить сумму и среднее значений в заданном именованном диапазоне или найти максимальную и минимальную сумму продаж в нём, как это сделано на скриншоте ниже:

  • =СУММ(ДВССЫЛ (H1))
  • =СРЗНАЧ(ДВССЫЛ (H1))
  • =МАКС(ДВССЫЛ (H1))
  • =МИН(ДВССЫЛ (H1))

Теперь, когда вы получили общее представление о том, как работает функция ДВССЫЛ в Excel, мы можем поэкспериментировать с более серьёзными формулами.

ДВССЫЛ для ссылки на другой рабочий лист

Полезность функции Excel ДВССЫЛ не ограничивается созданием «динамических» ссылок на ячейки. Вы также можете использовать ее для формирования ссылки на другие листы.

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

Нам поможет формула:

=ДВССЫЛ(«‘»&A2&»‘!»&B2&C2)

Давайте разбираться, как работает эта формула.

Как вы знаете, обычным способом сослаться на другой лист в Excel является указание имени этого листа, за которым следуют восклицательный знак и ссылка на ячейку или диапазон, например Лист1!A1:С10. Так как имя листа часто содержит пробелы, вам лучше заключить его (имя, а не пробел :) в одинарные кавычки, чтобы предотвратить возможную ошибку, например,

‘Лист 1!’$A$1 или для диапазона – ‘Лист 1!’$A$1:$С$10 .

Наша задача – сформировать нужный текст и передать его функции ДВССЫЛ. Все, что вам нужно сделать, это:

  • записать имя листа в одну ячейку,
  • букву столбца – в другую,
  • номер строки – в третью,  
  • объединить всё это в одну текстовую строку,
  • передать этот адрес функции ДВССЫЛ. 

Помните, что в текстовой строке вы должны заключать каждый элемент, кроме номера строки, в двойные кавычки и затем связать все элементы в единое целое с помощью оператора объединения (&).

С учетом вышеизложенного получаем шаблон ДВССЫЛ для создания ссылки на другой лист:

ДВССЫЛ («‘» & имялиста & «‘!» & имя столбца нужной ячейки & номер строки нужной ячейки )

Возвращаясь к нашему примеру, вы помещаете имя листа в ячейку A2 и вводите адреса столбца и строки в B2 и С2, как показано на скриншоте выше. В результате вы получите следующую формулу:

ДВССЫЛ(«‘»&A2&»‘!»&B2&C2)

Кроме того, обратите внимание, что если вы копируете формулу в несколько ячеек, вам необходимо зафиксировать ссылку на имя листа, используя абсолютные ссылки на ячейки, например $A$2.

Замечание.

  • Если какая-либо из ячеек, содержащих имя листа и адреса ячеек (A2, B2 и c2 в приведенной выше формуле), будет пуста, ваша формула вернет ошибку. Чтобы предотвратить это, вы можете обернуть функцию ДВССЫЛ в функцию ЕСЛИ :

ЕСЛИ(ИЛИ(A2=»»;B2=»»;C2-“”); «»; ДВССЫЛ(«‘»&A2&»‘!»&B2&C2)

  • Чтобы формула ДВССЫЛ, ссылающаяся на другой лист, работала правильно, указанный лист должен быть открыт в Экселе, иначе формула вернет ошибку #ССЫЛКА. Чтобы не видеть сообщение об ошибке, которое может портить вид вашей таблицы, вы можете использовать функцию ЕСЛИОШИБКА, которая будет отображать пустую строку при любой возникшей ошибке:

ЕСЛИОШИБКА(ДВССЫЛ(«‘»&A2&»‘!»&B2&C2); «»)

Формула ДВССЫЛ для ссылки на другую книгу Excel

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

Чтобы упростить задачу, давайте начнем с создания ссылки на другую книгу обычным способом (апострофы добавляются, если имена вашей книги и/или листа содержат пробелы):
‘[Имя_книги.xlsx]Имя_листа’!Арес_ячейки

Но, чтобы формула была универсальной, лучше апострофы добавлять всегда – лишними не будут .

Предполагая, что название книги находится в ячейке A2, имя листа — в B2, а адрес ячейки — в C2 и D2, мы получаем следующую формулу:

=ДВССЫЛ(«‘[«&$A$2&».xlsx]»&$B$2&»‘!»&C2&D2)

Поскольку вы не хотите, чтобы ячейки, содержащие имена книг и листов, изменялись при копировании формулы в другие ячейки, вы можете зафиксировать их, используя абсолютные ссылки на ячейки – $A$2 и $B$2 соответственно.

Если адреса ячеек заменить их значениями, то мы получим такой промежуточный результат:

=ДВССЫЛ(«‘[INDIRECT.xlsx]Продажи’!D3»)

Ну а итоговый результат вы видите на скриншоте ниже.

Hbc6

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

=ДВССЫЛ(«‘[» & Название книги & «]» & Имя листа & «‘!» & Адрес ячейки )

Примечание. Рабочая книга, на которую ссылается ваша формула, всегда должна быть открыта, иначе функция ДВССЫЛ выдаст ошибку #ССЫЛКА. Как обычно, функция ЕСЛИОШИБКА может помочь вам избежать этого:

=ЕСЛИОШИБКА(ДВССЫЛ(«‘[«&$A$2&».xlsx]»&$B$2&»‘!»&C2&D2); «»)

Использование функции Excel ДВССЫЛ чтобы зафиксировать ссылку на ячейку

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

Чтобы проиллюстрировать разницу, сделайте следующее:

  1. Введите любое значение в любую ячейку, например, число 555 в ячейку A1.
  2. Обратитесь к A1 из двух других ячеек тремя различными способами: =A1, =ДВССЫЛ(«A1») и ДВССЫЛ(С1), где в С1 записан адрес «А1».
  3. Вставьте новую строку над строкой 1.

Видите, что происходит? Ячейка с логическим оператором =А1 по-прежнему возвращает 555, потому что ее формула была автоматически изменена на =A2 после вставки строки. Ячейки с формулой ДВССЫЛ теперь возвращают нули, потому что формулы в них не изменились при вставке новой строки и они по-прежнему ссылаются на ячейку A1, которая в настоящее время пуста:

После этой демонстрации у вас может сложиться впечатление, что функция ДВССЫЛ больше мешает, чем помогает. Ладно, попробуем по-другому.

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

=СУММ(A2:A5)

Однако вы хотите, чтобы формула оставалась неизменной, независимо от того, сколько строк было удалено или вставлено. Самое очевидное решение — использование абсолютных ссылок — не поможет. Чтобы убедиться, введите формулу =СУММ($A$2:$A$5) в какую-нибудь ячейку, вставьте новую строку, скажем, в строку 3, и увидите формулу, преобразованную в =СУММ($A$2:$A$6).

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

Решение состоит в использовании функции ДВССЫЛ, например:

=СУММ(ДВССЫЛ(«A2:A5»))

Поскольку Excel воспринимает «A1: A5» как простую текстовую строку, а не как ссылку на диапазон, он не будет вносить никаких изменений при вставке или удалении строки (строк), а также при их сортировке.

Использование ДВССЫЛ с другими функциями Excel

Помимо СУММ, ДВССЫЛ часто используется с другими функциями Excel, такими как СТРОКА, СТОЛБEЦ, АДРЕС, ВПР, СУММЕСЛИ и т. д.

Пример 1. Функции ДВССЫЛ и СТРОКА

Довольно часто функция СТРОКА используется в Excel для возврата массива значений. Например, вы можете использовать следующую формулу массива (помните, что для этого нужно нажать Ctrl + Shift + Enter), чтобы вернуть среднее значение трех наименьших чисел в диапазоне B2:B13

{=СРЗНАЧ(НАИМЕНЬШИЙ(B2:B13;СТРОКА(1:3)))}

Однако, если вы вставите новую строку в свой рабочий лист где-нибудь между строками 1 и 3, диапазон в функции СТРОКА изменится на СТРОКА(1:4), и формула вернет среднее значение четырёх наименьших чисел вместо трёх.

Чтобы этого не произошло, вставьте ДВССЫЛ в функцию СТРОКА, и ваша формула массива всегда будет оставаться правильной, независимо от того, сколько строк будет вставлено или удалено:

={СРЗНАЧ(НАИМЕНЬШИЙ(B2:B13;СТРОКА(ДВССЫЛ(«1:3»))))}

Аналогично, если нам нужно найти сумму трёх наибольших значений, можно использовать ДВССЫЛ вместе с функцией СУММПРОИЗВ.

Вот пример:

={СУММПРОИЗВ(НАИБОЛЬШИЙ(B2:B13;СТРОКА(ДВССЫЛ(«1:3»))))}

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

={СУММПРОИЗВ(НАИБОЛЬШИЙ(B2:B13;СТРОКА(ДВССЫЛ(«1:»&C1))))}

Согласитесь, что получается достаточно гибкий расчёт.

Пример 2. Функции ДВССЫЛ и АДРЕС

Вы можете использовать Excel ДВССЫЛ вместе с функцией АДРЕС, чтобы получить значение в определенной ячейке на лету.

Как вы помните, функция АДРЕС используется в Excel для получения адреса ячейки по номерам строк и столбцов. Например, формула =АДРЕС(1;3) возвращает текстовую строку «$C$1», поскольку C1 — это ячейка на пересечении 1-й строки и 3-го столбца.

Чтобы создать ссылку на ячейку, вы просто встраиваете функцию АДРЕС в формулу ДВССЫЛ, например:

=ДВССЫЛ(АДРЕС(1;3))

Конечно, эта несложная формула лишь демонстрирует технику. Более сложные примеры использования функций ДВССЫЛ И АДРЕС в Excel см. в статье Как преобразовать строки в столбцы в Excel .

И вот еще несколько примеров формул в которых используется функция ДВССЫЛ, и которые могут оказаться полезными:

  • ВПР и ДВССЫЛ — как динамически извлекать данные из разных таблиц (см. пример 2).
  • Excel ДВССЫЛ и СЧЁТЕСЛИ — как использовать функцию СЧЁТЕСЛИ в несмежном диапазоне или нескольких выбранных ячейках.

Использование ДВССЫЛ для создания выпадающих списков

Вы можете использовать функцию Excel ДВССЫЛ с инструментом проверки данных для создания каскадных выпадающих списков. Они показывают различные варианты выбора в зависимости от того, какое значение пользователь указал в предыдущем выпадающем списке.

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

В ячейке А1 вы создаете простой выпадающий список с названиями имеющихся именованных диапазонов. Для второго зависимого выпадающего списка в ячейке В2 вы используете простую формулу  =ДВССЫЛ(A1), где A1 — это ячейка, в которой выбрано имя нужного именованного диапазона.

К примеру, выбрав в первом списке второй квартал, во втором списке мы видим месяцы этого квартала.

Рис9

Чтобы сделать более сложные трехуровневые меню или раскрывающиеся списки с многоуровневыми записями, вам понадобится немного более сложная формула ДВССЫЛ в сочетании с вложенной функцией ПОДСТАВИТЬ.

Подробное пошаговое руководство по использованию ДВССЫЛ с проверкой данных Excel смотрите в этом руководстве: Как создать зависимый раскрывающийся список в Excel.

Функция ДВССЫЛ Excel — возможные ошибки и проблемы

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

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

Ошибка #ССЫЛКА! 

Чаще всего функция ДВССЫЛ возвращает ошибку #ССЫЛКА!  в следующих случаях:

  1. Аргумент ссылка_на_ячейку не является допустимой ссылкой Excel. Если вы пытаетесь передать функции текст, который не может обозначать ссылку на ячейку (например, «A1B0»), то формула приведет к ошибке #ССЫЛКА!. Во избежание возможных проблем проверьте аргументы функции ДВССЫЛ .
  2. Превышен предел размера диапазона. Если аргумент ссылка_на_ячейку вашей формулы ДВССЫЛ ссылается на диапазон ячеек за пределами строки  1 048 576 или столбца  16 384, вы также получите ошибку #ССЫЛКА в Excel 2007 и новее. Более ранние версии Excel игнорируют превышение этого лимита и действительно возвращают некоторое значение, хотя часто не то, что вы ожидаете.
  3. Используемый в формуле лист или рабочая книга закрыты.Если ваша формула с ДВССЫЛ адресуется на другую книгу или лист Excel, то эта другая книга или электронная таблица должны быть открыты, иначе ДВССЫЛ возвращает ошибку #ССЫЛКА! . Впрочем, это требование характерно для всех формул, которые ссылаются на другие рабочие книги Excel.

Ошибка #ИМЯ? 

Это самый очевидный случай, подразумевающий, что в названии функции есть какая-то ошибка.

Ошибка из-за несовпадения региональных настроек.

Также распространенная проблема заключается не в названии функции ДВССЫЛ, а в различных региональных настройках для разделителя списка

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

В стандартной конфигурации Windows для Северной Америки и некоторых других стран разделителем списка по умолчанию является запятая. 

В результате при копировании формулы между двумя разными языковыми стандартами Excel вы можете получить сообщение об ошибке « Мы обнаружили проблему с этой формулой… », поскольку разделитель списка, используемый в формуле, отличается от того, что установлен на вашем компьютере. Если вы столкнулись с этой ошибкой при копировании какой-либо НЕПРЯМОЙ формулы из этого руководства в Excel, просто замените все запятые (,) точками с запятой (;) (либо наоборот). В обычных формулах Excel эта проблема, естественно, не возникнет. Там Excel сам поменяет разделители исходя из ваших текущих региональных настроек.

Чтобы проверить, какие разделитель списка и десятичный знак установлены на вашем компьютере, откройте панель управления и перейдите в раздел «Регион и язык» > «Дополнительные настройки».

Надеемся, что это руководство пролило свет для вас на использование ДВССЫЛ в Excel. Теперь, когда вы знаете ее сильные стороны и ограничения, пришло время попробовать и посмотреть, как функция ДВССЫЛ может упростить ваши задачи в Excel. Спасибо за чтение!

Вот еще несколько статей по той же теме:

Как удалить сразу несколько гиперссылок В этой короткой статье я покажу вам, как можно быстро удалить сразу все нежелательные гиперссылки с рабочего листа Excel и предотвратить их появление в будущем. Решение работает во всех версиях Excel,…
Как использовать функцию ГИПЕРССЫЛКА В статье объясняются основы функции ГИПЕРССЫЛКА в Excel и приводятся несколько советов и примеров формул для ее наиболее эффективного использования. Существует множество способов создать гиперссылку в Excel. Чтобы сделать ссылку на…
Гиперссылка в Excel: как сделать, изменить, удалить В статье разъясняется, как сделать гиперссылку в Excel, используя 3 разных метода. Вы узнаете, как вставлять, изменять и удалять гиперссылки на рабочих листах, а также исправлять неработающие ссылки. Гиперссылки широко используются…
Как сделать зависимый выпадающий список в Excel? Одной из наиболее полезных функций проверки данных является возможность создания выпадающего списка, который позволяет выбирать значение из предварительно определенного перечня. Но как только вы начнете применять это в своих таблицах,…

Извлечение информации о ячейке функцией ЯЧЕЙКА (CELL)

Иногда бывает необходимо с помощью формул узнать о какой-либо ячейке подробную информацию и параметры, чтобы использовать это в расчетах. Например, выяснить число или текст в ячейке или какой числовой формат в ней установлен. Сделать это можно, используя функцию ЯЧЕЙКА (CELL) .

Синтаксис у функции следующий:

=ЯЧЕЙКА( Параметр ; Адрес )

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

Давайте рассмотрим пару трюков с применением этой функции на практике.

Например, можно получить имя текущего листа формулой, используя функцию ЯЧЕЙКА с параметром «имяфайла» и извлекающей все символы правее закрывающей квадратной скобки:

Также можно проверить тип данных в ячейке (параметр «тип») и выводить сообщение об ошибке вместо вычислений, если введен текст или ячейка пуста:

Или подсветить условным форматированием все незащищенные ячейки в заданном диапазоне:

Функция ЯЧЕЙКА() в MS EXCEL

Функция ЯЧЕЙКА( ) , английская версия CELL(), возвращает сведения о форматировании, адресе или содержимом ячейки. Функция может вернуть подробную информацию о формате ячейки, исключив тем самым в некоторых случаях необходимость использования VBA. Функция особенно полезна, если необходимо вывести в ячейки полный путь файла.

Синтаксис функции ЯЧЕЙКА()

ЯЧЕЙКА(тип_сведений, [ссылка])

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

ссылка — Необязательный аргумент. Ячейка, сведения о которой требуется получить. Если этот аргумент опущен, сведения, указанные в аргументе тип_сведений, возвращаются для последней измененной ячейки. Если аргумент ссылки указывает на диапазон ячеек, функция ЯЧЕЙКА() возвращает сведения только для левой верхней ячейки диапазона.

Использование функции

В файле примера приведены основные примеры использования функции:

Большинство сведений об ячейке касаются ее формата. Альтернативным источником информации такого рода может случить только VBA.

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

Обратите внимание, что если в одном экземпляре MS EXCEL (см. примечание ниже) открыто несколько книг, то функция ЯЧЕЙКА() с аргументами адрес и имяфайла, будет отображать имя того файла, с который Вы изменяли последним. Например, открыто 2 книги в одном окне MS EXCEL: Базаданных.xlsx и Отчет.xlsx. В книге Базаданных.xlsx имеется формула =ЯЧЕЙКА(«имяфайла») для отображения в ячейке имени текущего файла, т.е. Базаданных.xlsx (с полным путем и с указанием листа, на котором расположена эта формула). Если перейти в окно книги Отчет.xlsx и поменять, например, содержимое ячейки, то вернувшись в окно книги Базаданных.xlsx (CTRL+TAB) увидим, что в ячейке с формулой =ЯЧЕЙКА(«имяфайла») содержится имя Отчет.xlsx. Это может быть источником ошибки. Хорошая новость в том, что при открытии книги функция пересчитывает свое значение (также пересчитать книгу можно нажав клавишу F9). При открытии файлов в разных экземплярах MS EXCEL — подобного эффекта не возникает — формула =ЯЧЕЙКА(«имяфайла») будет возвращать имя файла, в ячейку которого эта формула введена.

Примечание: Открыть несколько книг EXCEL можно в одном окне MS EXCEL (в одном экземпляре MS EXCEL) или в нескольких. Обычно книги открываются в одном экземпляре MS EXCEL (когда Вы просто открываете их подряд из Проводника Windows или через Кнопку Офис в окне MS EXCEL). Второй экземпляр MS EXCEL можно открыть запустив файл EXCEL.EXE, например через меню Пуск. Чтобы убедиться, что файлы открыты в одном экземпляре MS EXCEL нажимайте последовательно сочетание клавиш CTRL+TAB — будут отображаться все окна Книг, которые открыты в данном окне MS EXCEL. Для книг, открытых в разных окнах MS EXCEL (экземплярах MS EXCEL) это сочетание клавиш не работает. Удобно открывать в разных экземплярах Книги, вычисления в которых занимают продолжительное время. При изменении формул MS EXCEL пересчитывает только книги открытые в текущем экземпляре.

Другие возможности функции ЯЧЕЙКА() : определение типа значения, номера столбца или строки, мало востребованы, т.к. дублируются стандартными функциями ЕТЕКСТ() , ЕЧИСЛО() , СТОЛБЕЦ() и др.

Excel. Получить значение ячейки по адресу без макроса 2

Итак, решая очередную головоломку с закупкой материалов, я встал перед следующей ситуацией:

Даны две таблицы Excel на разных листах:

В таблице №1 строка состоит из пустых полей: уникальный номер товара, наименование, количество и т.п.

В таблице №2 строки непосредственно с данными: номер товара, название товара, цена, комплектность и т.п.

Я хочу связать эти таблички таким образом, чтобы при заполнении уникального номера в колонке таблицы №1 цена и название подтягивались из таблицы №2

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

для этого мне нужно решить две задачи:

1) Найти в таблице строку, в которой находится информация о товаре

2) Используя знания об этой строке, вставить значение из нужного поля(столбца).

Решаем первую задачу:

= ПОИСКПОЗ(G11;Цены!A:A;0)

G11 — это та ячейка, куда мы вбиваем уникальный номер товара,

Цены!A:A — это колонка с уникальными номерами товаров

— формат вывода в абсолютных значениях, оставляем так, либо изучаем вопрос самостоятельно =)

Данная формула находит номер строки, в которой находится наш товар и информация о нём после того как в ячейку G11 мы вбили его уникальный номер.

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

Например за цену у нас ответственный второй столбец во второй таблице

= АДРЕС( ПОИСКПОЗ(G11;Цены!A:A;0); 2; 1;1; ‘Цены’ )

где тип ссылки абсолютный, то есть 1

и формат адреса ячеек не буквенно-числовые вида A11 B876 и т.д. , а R11C1, R876C2 и т.п

то-есть номера строк и столбцов сразу очевидны за этот формат у нас отвечает последняя 1

Сам адрес мы получаем для вкладки «Цены» , потому не забываем и её указать, иначе поиск значений будет идти на странице с таблицей 1

Мы уже у финиша

Следующая головоломка которую я не решил, зато мне подсказал мой приятель — гений Экселя.

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

Всё просто, это функция

таким образом полная формула получится вида:

=ДВССЫЛ(АДРЕС(ПОИСКПОЗ(G11;Цены!A:A;0); 2 ;1;1;’Цены’)),

где меняя двойку на номер столбца с нужным типом данных мы получим любое необходимое нам значение по фиксированной товарной позиции: Наименование, тип итд

Теперь не нужно ломать голову по поводу проверки вводимых данных, они берутся полностью из имеющейся таблицы, которую до меня уже проверили ГЫГЫГЫ =)

Функция ЯЧЕЙКА в Excel и примеры ее использования

Очень часто при работе в Excel необходимо использовать данные об адресации ячеек в электронной таблице. Для этого была предусмотрена функция ЯЧЕЙКА. Рассмотрим ее использование на конкретных примерах.

Функция значения и свойства ячейки в Excel

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

Функция ЯЧЕЙКА(), английская версия CELL(), возвращает сведения о форматировании, адресе или содержимом ячейки. Функция может вернуть подробную информацию о формате ячейки, исключив тем самым в некоторых случаях необходимость использования VBA. Функция особенно полезна, если необходимо вывести в ячейки полный путь файла.

Как работает функция ЯЧЕЙКА в Excel?

Функция ЯЧЕЙКА в своей работе использует синтаксис, который состоит из двух аргументов:

  1. Тип_сведений – текстовое значение, задающее требуемый тип сведений о ячейке. При вводе функции вручную высвечивается выпадающий список где указаны все возможные значения аргумента «тип сведений»:
  2. Ссылка – необязательный аргумент. Ячейка, сведения о которой требуется получить. Если этот аргумент опущен, сведения, указанные в аргументе тип_сведений, возвращаются для последней измененной ячейки. Если аргумент ссылки указывает на диапазон ячеек, функция ЯЧЕЙКА() возвращает сведения только для левой верхней ячейки диапазона.

Примеры использования функции ЯЧЕЙКА в Excel

Пример 1. Дана таблица учета работы сотрудников организации вида:

Необходимо с помощью функции ЯЧЕЙКА вычислить в какой строке и столбце находится зарплата размером 235000 руб.

Для этого введем формулу следующего вида:

  • – «строка» и «столбец» – параметр вывода;
  • – С8 – адрес данных с зарплатой.

В результате вычислений получим: строка №8 и столбец №3 (С).

Как узнать ширину таблицы Excel?

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

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

Введем в ячейку С14 формулу для вычисления суммы ширины каждого столбца таблицы:

  • – «ширина» – параметр функции;
  • – А1 – ширина определенного столбца.

Как получить значение первой ячейки в диапазоне

Пример 3. В условии примера 1 нужно вывести содержимое только из первой (верхней левой) ячейки из диапазона A5:C8.

Введем формулу для вычисления:

Описание формулы аналогичное предыдущим двум примерам.

Видимое значение ячейки в реальное

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

Чтобы не возникло недопонимания, что это такое на картинках выше. Например, если в ячейку записать число 1077 , то оно и отобразится так же. Однако его визуальное отображение в ячейках можно изменить: выделяем ячейку -правая кнопка мыши —Формат ячеек (Format Cells) -вкладка Число (Number) . Далее в списке слева выбрать Дополнительный (Special) и установить Почтовый индекс. Тогда в ячейке визуально будет отображаться 001077 , в то время как реально в ячейке будет оставаться все то же число 1077 . Тоже и с датами. Реально в ячейке число, а визуально дата в одном из форматов из категории Дата. Подробнее про то, почему так происходит можно прочесть в статье: Как Excel воспринимает данные?
И как это всегда бывает — порой просто необходимо работать не с тем значением, которое реально в ячейке, а именно с теми, которые отображаются в ячейках. Яркий пример такой необходимости — это сцепление данных двух ячеек, в одной из которых записана дата. Например, в A1 записана дата » 06.02.2016 «, а в B1 текст вроде » Отчет по магазину за » и необходимо сцепить текст из B1 с датой из A1 . Если применить просто функцию СЦЕПИТЬ (CONCATENATE) или по простому = B1 & A1 , то результатом будет такой текст: Отчет по магазину за 42406 .
Если формат лишь один — можно стандартно попробовать побороть при помощи функции ТЕКСТ(TEXT). Например, в ячейках столбца А записаны даты в формате 31 января 2016г. Тогда формулу можно записать так:
=ТЕКСТ( A2 ;»[$-F800]ДДДД, ММММ ДД, ГГГГ»)
=TEXT( A2 ,»[$-F800]dddd, MMMM yy, yyyy»)
На примере той же СЦЕПИТЬ (CONCATENATE) :
=СЦЕПИТЬ( B1 ;ТЕКСТ( A1 ;»[$-F800]ДДДД, ММММ ДД, ГГГГ»))
=CONCATENATE( B1 ,TEXT( A1 ,»[$-F800]dddd, MMMM yy, yyyy»))

Сами вид формата для использования в функции ТЕКСТ можно подсмотреть непосредственно в форматах ячеек: правая кнопка мыши на ячейке —Формат ячеек (Format Cells) -вкладка Число (Number) -(все форматы). Там в поле Тип будет как раз приведен применяемый код формата. Можно его просто скопировать оттуда и вставить в функцию ТЕКСТ .
Но если форматы в ячейках различаются и записаны в разнобой. Стандартно этого никак не сделать, кроме как каждую ячейку руками перебивать. Но если прибегнуть к помощи Visual Basic for Applications(VBA), то можно написать простую функцию пользователя(Что такое функция пользователя(UDF)) и применить её:

Function VisualVal_Text(rc As Range) VisualVal_Text = rc.Text End Function

Для применения надо внимательно прочитать про создание функций пользователя. После этого в ячейку останется записать:
=VisualVal_Text( A1 )
и раскопировать ячейку на весь столбец. После этого можно заменить результат функции значениями(Как удалить в ячейке формулу, оставив значения) и все готово. Но и в этой функции есть недостаток. Если в ячейке отображается значение, которое не помещается в границы ячейки, то оно может быть обрезано или вместо значения будут решетки. Например, если дата в указанном формате не помещается в ячейку — вместо значений будут решетки #######:

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

Function VisualVal(rc As Range) VisualVal = Application.Text(rc.Value, rc.NumberFormat) End Function

Используется и записывается в ячейку так же, как и предыдущая:
=VisualVal( A1 )
Эта функция без всяких танцев с бубном вернет отображаемое форматом ячейки значение.

И вариант применения функции вместе с функцией СЦЕПИТЬ:
=СЦЕПИТЬ( B1 ;VisualVal_Text( A1 ))
=CONCATENATE( B1 ,VisualVal_Text( A1 ))
=СЦЕПИТЬ( B1 ;VisualVal( A1 ))
=CONCATENATE( B1 ,VisualVal( A1 ))
Как видно не надо задумываться о том какой применить формат — будет записано так же, как оно отображается в ячейке.

Все варианты решений можно посмотреть в примере :

Tips_Macro_CellValToVisual.xls (48,5 KiB, 679 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум

0 / 0 / 0

Регистрация: 14.06.2011

Сообщений: 4

1

14.06.2011, 18:21. Показов 5824. Ответов 7


Студворк — интернет-сервис помощи студентам

Доброго дня всем. Тут такое дело — в ячейке, к примеру А1 лежит номер столбца, а в ячейке А2 — номер строки. Как получить значение из ячейки, адрес которой получается при слиянии данных из А1 и А2?
Заранее благодарен!



0



8 / 8 / 0

Регистрация: 07.06.2010

Сообщений: 322

14.06.2011, 18:58

2

как вариант:
? cells(cells(1,1),cells(1,2))



0



0 / 0 / 0

Регистрация: 14.06.2011

Сообщений: 4

14.06.2011, 19:31

 [ТС]

3

нет, не совсем то…. мне это нужно сделать в Ехеле, не используя макросов! Просто — формула в ячейке… )) Как с использованием макросов — я знаю, уже написал….



0



And_110

8 / 8 / 0

Регистрация: 07.06.2010

Сообщений: 322

14.06.2011, 20:25

4

могу только предложить функцию:

Visual Basic
1
2
3
Public Function getCell(c1 As Object, c2 As Object)
  getCell = Cells(c1, c2)
End Function

в ячейке пишите:
=getCell(A1, B1)



0



14 / 14 / 2

Регистрация: 23.03.2010

Сообщений: 635

14.06.2011, 20:54

5

=АДРЕС(A2;A1)



0



0 / 0 / 0

Регистрация: 14.06.2011

Сообщений: 4

15.06.2011, 13:24

 [ТС]

6

Неа, снова не то! С макросом я уже написал — все работает. А вот без макроса….
=АДРЕС(A2;A1)
Допустим в А1 — В, а в А2 — 5. Тогда Адрес даст В5, но не значение из ячейки В5. Пробывал. Функцию Типа =ЗНАЧЕНИЕ(АДРЕС(А2;А1)) не нашел…



0



14 / 14 / 2

Регистрация: 23.03.2010

Сообщений: 635

15.06.2011, 14:07

7

=ДВССЫЛ(АДРЕС(A2;A1))



0



0 / 0 / 0

Регистрация: 14.06.2011

Сообщений: 4

15.06.2011, 14:42

 [ТС]

8

О! Оно! Спасибо всем! Родина в моем лице выражает благодарность участникам обсуждения! Тему можно считать закрытой….



0



На чтение 3 мин. Просмотров 60 Опубликовано 21.05.2021

Как правило, вы получаете значение ячейки, когда используете формулу для поиска значения в Excel. Но здесь я представлю несколько формул для поиска значения и возврата относительного адреса ячейки.

Найдите значение и верните адрес ячейки с формулой


Содержание

  1. Найти значение и вернуть адрес ячейки с формулой
  2. Пакетное преобразование ссылки формулы в абсолютное, относительное, абсолютное значение столбца или абсолютное значение строки
  3. Относительные статьи

Найти значение и вернуть адрес ячейки с формулой

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

Формула 1 Чтобы вернуть ячейку абсолютная ссылка

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

1. Выберите ячейку и введите в нее AA, здесь я ввожу AA в ячейку A26. См. Снимок экрана:

2. Затем введите эту формулу = ЯЧЕЙКА (“адрес”, ИНДЕКС ($ A $ 18: $ A $ 24, ПОИСКПОЗ (A26, $ A $ 18: $ A $ 24,1))) в ячейке рядом с ячейкой A26 (ячейка, которую вы ввели AA ), затем нажмите клавиши Shift + Ctrl + Enter , и вы получите относительную ссылку на ячейку. См. Снимок экрана:

Совет:

1. В приведенной выше формуле A18: A24 – это диапазон столбцов, в котором находится ваше значение поиска, A26 – значение поиска.

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

Формула 2 Чтобы вернуть номер строки значения ячейки в таблице

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

1. Введите BB в ячейку, здесь я ввожу BB в ячейку A10. См. Снимок экрана:

2. В ячейке, смежной с ячейкой A10 (ячейка, в которую вы ввели BB), введите эту формулу = МАЛЕНЬКИЙ (ЕСЛИ ($ A $ 10 = $ A $ 2: $ A $ 8, ROW ($ A $ 2: $ A $ 8) -ROW ($ A $ 2) +1), ROW (1: 1)) и нажмите клавиши Shift + Ctrl + Enter , затем перетащите дескриптор автозаполнения вниз, чтобы применить эту формулу, пока не появится # ЧИСЛО! . см. снимок экрана:

3. Затем вы можете удалить # ЧИСЛО !. См. Снимок экрана:

Советы:

1. В этой формуле A10 указывает значение поиска, а A2: A8 – это диапазон столбцов, в котором находится ваше значение поиска.

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

Пакетное преобразование ссылки формулы в абсолютное, относительное, абсолютное значение столбца или абсолютное значение строки

Иногда вам может потребоваться преобразовать ссылку на формулу в абсолютную, но в Excel можно использовать только горячие клавиши. преобразовывать ссылки одну за другой, что может напрасно тратить время при наличии сотен формул. Преобразование ссылки Kutools for Excel может пакетно преобразовывать ссылки в выбранных ячейках в относительные, абсолютные по мере необходимости. Нажмите, чтобы получить полнофункциональную 30-дневную бесплатную пробную версию!
Kutools для Excel: с более чем 300 удобными надстройками Excel, попробуйте бесплатно, без ограничений в течение 30 дней.

Относительные статьи

  • ВПР и возврат нескольких значений по горизонтали
  • ВПР и возврат наименьшего значения
  • ВПР и вернуть ноль вместо # Н/Д

На чтение 7 мин. Просмотров 29.8k.

Содержание

  1. Получить первое не пустое значение в списке
  2. Получить первое текстовое значение в списке
  3. Получить первое текстовое значение с ГПР
  4. Получить позицию последнего совпадения
  5. Получить последнее совпадение содержимого ячейки
  6. Получить n-е совпадение
  7. Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
  8. Получить n-ое совпадение с ВПР
  9. Если ячейка содержит одну из многих вещей
  10. Поиск первой ошибки
  11. Поиск следующего наибольшего значения
  12. Несколько совпадений в списке, разделенных запятой
  13. Частичное совпадение чисел с шаблоном
  14. Частичное совпадение с ВПР
  15. Положение первого частичного совпадения

Получить первое не пустое значение в списке

{ = ИНДЕКС( диапазон ; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( диапазон ); 0 )) }

Получить первое не пустое значение в списке

Если вам нужно получить первое не пустое значение (текст или число) в диапазоне в одной колонке вы можете использовать формулу массива на основе функций ИНДЕКС, ПОИСКПОЗ и ЕПУСТО.

В данном примере мы используем эту формулу:

{ = ИНДЕКС( B3: B11; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( B3: B11 ); 0 )) }

Таким образом, суть проблемы заключается в следующем: мы хотим получить первую не пустую ячейку, но для этого нет конкретной формулы в Excel. Мы могли бы использовать ВПР с шаблоном *, но это будет работать только для текста, а не для чисел.

Таким образом, нам нужно строить функциональные возможности для нужных нам формул. Способ сделать это состоит в использовании функции массива, которая «тестирует» ячейки и возвращает массив истина/ложь значения, которые мы можем сопрягать с ПОИСКПОЗ.

Работая изнутри, ЕПУСТО оценивает ячейки в диапазоне В3: В11 и возвращает результат и массив, который выглядит следующим образом:

{ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА}

Каждая ЛОЖЬ представляет собой ячейку в диапазоне, который не является пустой.

Далее, ПОИСКПОЗ ищет ЛОЖЬ внутри массива и возвращает позицию первого наденного совпадения, в этом случае 2. На данный момент, формула в примере теперь выглядит следующим образом:

{ = ИНДЕКС( B3: B11; 2; 0 )) }

И, наконец, функция ИНДЕКС выводит значение в положении 2 в массиве, в этом случае число 10.

Получить первое текстовое значение в списке

= ВПР ( «*»; диапазон; 1; ЛОЖЬ)

Если вам нужно получить первое текстовое значение в списке (диапазон один столбец), вы можете использовать функцию ВПР, чтобы установить точное соответствие, с шаблонным символом для поиска.

Получить первое текстовое значение в списке

В данном примере формула в D7 является:

= ВПР ( «*» ; B5: B11 ; 1 ; ЛОЖЬ)

Групповой символ звездочка (*) соответствует любому текстовому значению.

Получить первое текстовое значение с ГПР

= ГПР ( «*»; диапазон; 1; ЛОЖЬ)

Получить первое текстовое значение с ГПР

Для поиска и получения первого текстового значения во всем диапазоне столбцов, вы можете использовать функцию ГПР с групповым символом. В примере формула в F5 является:

= ГПР ( «*»; С5: Е5; 1; 0 )

Значение поиска является «*», групповым символом, который соответствует одному или более текстовому значению.

Получить позицию последнего совпадения

{ = МАКС( ЕСЛИ ( Величины = знач ; СТРОКА(величина) — СТРОКА(ИНДЕКС( Величины; 1 ; 1 )) + 1 )) }

Для того, чтобы получить позицию последнего совпадения (т.е. последнего вхождения) от значения поиска, вы можете использовать формулу, основанную на ЕСЛИ, СТРОКА, ИНДЕКС, ПОИСКПОЗ и MAКС функций.

Получить позицию последнего совпадения

В примере формула в G6:

=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))

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

Получить последнее совпадение содержимого ячейки

= ПРОСМОТР( 2 ; 1 / ПОИСК ( вещи ; А1 ); вещи )

Чтобы проверить ячейку для одной из нескольких вещей, и вернуть последнее совпадение, найденное в списке, вы можете использовать формулу, основанную на ПРОСМОТР и ПОИСК функций. В случае нескольких найденных совпадений, формула вернет последнее совпадение из списка «вещей».

Получить последнее совпадение содержимого ячейки

В примере формула в С5:

=ПРОСМОТР(2;1/ПОИСК($E$4:$E$7;B4);$E$4:$E$7)

Получить n-е совпадение

= НАИМЕНЬШИЙ( ЕСЛИ( логический тест; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); n )

Для того, чтобы получить позицию n-го совпадения (например, второе значение соответствия заданному, третье значение соответствия и т.д.), вы можете использовать формулу, основанную на функции НАИМЕНЬШИЙ.

= НАИМЕНЬШИЙ( ЕСЛИ( список = E5 ; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); F5 )

Эта формула возвращает позицию второго появления «красных» в списке.

Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.

Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ

{ = ИНДЕКС( массив; НАИМЕНЬШИЙ( ЕСЛИ( величины = знач ; СТРОКА ( величины ) — СТРОКА ( ИНДЕКС( величины; 1 ; 1 )) + 1 ); n-й )) }

Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ

Чтобы получить n-ое совпадение, используя ИНДЕКС и ПОИСКПОЗ, вы можете использовать формулу массива с функциями ЕСЛИ и НАИМЕНЬШИЙ, чтобы выяснить номер строки совпадения.

Получить n-ое совпадение с ВПР

= ВПР( id_формулы; стол; 4; 0 )

Чтобы получить n-ое совпадение с ВПР, вам необходимо добавить вспомогательный столбец в таблицу , которая строит уникальный идентификатор , который включает счетчик.

Получить n-ое совпадение с ВПР

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

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

=ВПР(J3&»-«&I6;B4:G11;4;0)

Если ячейка содержит одну из многих вещей

{ = ИНДЕКС( результаты ;ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК( вещи ; A1 )); 0 )) }

Чтобы проверить ячейку для одной из нескольких вещей, и вернуть пользовательский результат для первого найденного совпадения, вы можете использовать формулу ИНДЕКС/ПОИСКПОЗ, основанную на функции поиска.

{ = ИНДЕКС( результаты ; ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК ( вещи ; B5 )); 0 )) }

Эта формула использует два названных диапазона: E5: E8 называется «вещи» и F5: F8 называется «Результаты». Убедитесь, что вы используете диапазоны имен с одинаковыми именами (на основе ваших данных). Если вы не хотите использовать именованные диапазоны, используйте абсолютные ссылки вместо этого.

Поиск первой ошибки

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА(диап ); 0 ) }

Если вам нужно найти первую ошибку в диапазоне ячеек, вы можете использовать формулу массива, основанную на ПОИСКПОЗ и ЕОШИБКА функциях.

Поиск первой ошибки

В приведенном примере формула:

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА( B4: B11 ); 0 ) }

Работая изнутри, функция ЕОШИБКА возвращает значение ИСТИНА, если значение является признанной ошибкой, и ЛОЖЬ, если нет.

Когда дается диапазон ячеек (массив ячеек) функция ЕОШИБКА будет возвращать массив истина/ложь значений. В примере, это результирующий массив выглядит следующим образом:

{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ}

Обратите внимание, что 6-е значение (что соответствует 6-й ячейке в диапазоне) истинно, так как ячейка В9 содержит #Н/A.

Поиск следующего наибольшего значения

=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )

Поиск следующего наибольшего значения

Для того, чтобы найти «следующее наибольшее» значение в справочной таблице, можно использовать формулу, основанную на ИНДЕКС и ПОИСКПОЗ. В примере формула в F6 является:

=ИНДЕКС(C5:C9;ПОИСКПОЗ(F4;B5:B9)+1)

Несколько совпадений в списке, разделенных запятой

{ = ОБЪЕДИНИТЬ ( «;» ; ИСТИНА ; ЕСЛИ( диапазон1 = E5 ; диапазон2 ; «» )) }

Для поиска и извлечения нескольких совпадений, разделенных запятыми (в одной ячейке), вы можете использовать функцию ЕСЛИ с функцией ОБЪЕДИНИТЬ.

{ = ОБЪЕДИНИТЬ( «;» ; ИСТИНА ; ЕСЛИ( группа = E5 ; имя ; «» )) }

Эта формула использует «имя» — именованный диапазон (B5: B11) и «группа» — (C5: C11).

Частичное совпадение чисел с шаблоном

{ = ПОИСКПОЗ( «*» & номер & «*» ; ТЕКСТ( диапазон ; «0» ); 0 ) }

Для того, чтобы выполнить частичное совпадение (подстроки) против чисел, вы можете использовать формулу массива, основанную на ПОИСКПОЗ и ТЕКСТ.

Частичное совпадение чисел с шаблоном

Excel поддерживает символы подстановки «*» и «?». Тем не менее, если вы используете специальные символы с номером, вы будете преобразовывать числовое значение в текстовое значение. Другими словами, «*» & 99 & «*» = «* 99 *» (текстовая строка).

Если попытаться найти текстовое значение в диапазоне чисел, совпадение завершится неудачно.

Решение

Одно из решений заключается в преобразовании чисел в диапазоне поиска для текстовых значений, а затем сделать нормальный поиск с ПОИСКПОЗ, ВПР и т.д.

Другой вариант

Другой способ, чтобы преобразовать числа в текст, чтобы сцепить пустую строку. Эта формула работает так же, как выше формуле:

= ПОИСКПОЗ ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )

Частичное совпадение с ВПР

Если вы хотите получить информацию из таблицы на основе частичного совпадения, вы можете сделать это с помощью ВПР в режиме точного соответствия, и групповые символы.

Частичное совпадение с ВПР

В примере формула ВПР выглядит следующим образом:

=ВПР($H$2&»*»;$B$3:$E$12;2;0)

В этой формуле, значение представляет собой именованный диапазон, который относится к Н2, а также данные , представляет собой именованный диапазон , который относится к B3: E102. Без названных диапазонов, формула может быть записана следующим образом:

Положение первого частичного совпадения

= ПОИСКПОЗ ( «* текст *» ; диапазон; 0 )

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

Положение первого частичного совпадения

В примере формула в Е7:

=ПОИСКПОЗ(«*»&E6&»*»;B5:B10;0)

Функция ПОИСКПОЗ возвращает позицию или «индекс» в первом совпадении на основании значения поиска в диапазоне.

ПОИСКПОЗ поддерживает подстановочное согласование со звездочкой «*» (один или несколько символов) или знаком вопроса «?» (один символ), но только тогда, когда третий аргумент, тип_сопоставления, установлен в ЛОЖЬ или ноль.

Понравилась статья? Поделить с друзьями:
  • Excel по значению выбирать строку
  • Excel по двойному щелчку на ячейку
  • Excel по высшей математике
  • Excel по возрастным группам
  • Excel по возрастанию сортировка формулой