Эксель двссыл как работает
Перейти к содержимому

Эксель двссыл как работает

  • автор:

Функция ДВССЫЛ

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще. Меньше

В этой статье описаны синтаксис формулы и использование функции ДВССЫЛ в Microsoft Excel.

Описание

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

Синтаксис

Аргументы функции ДВССЫЛ описаны ниже.

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

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

    Пример

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

    Эксель двссыл как работает

    Argument ‘Topic id’ is null or empty

    Сейчас на форуме

    © Николай Павлов, Planetaexcel, 2006-2023
    info@planetaexcel.ru

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

    ООО «Планета Эксел»
    ИНН 7735603520
    ОГРН 1147746834949
    ИП Павлов Николай Владимирович
    ИНН 633015842586
    ОГРНИП 310633031600071

    Функция ДВССЫЛ() в EXCEL

    Функция ДВССЫЛ() , английский вариант INDIRECT(), возвращает ссылку на ячейку(и), заданную текстовой строкой . Например, формула = ДВССЫЛ(«Лист1!B3») эквивалентна формуле = Лист1!B3 . Мощь этой функции состоит в том, что саму ссылку ( Лист1!B3 ) также можно изменять формулами, ведь для ДВССЫЛ() это просто текстовая строка! С помощью этой функции можно транспонировать таблицы, выводить значения только из четных/ нечетных строк, складывать цифры числа и многое другое.

    Функция ДВССЫЛ() имеет простой синтаксис.

    Синтаксис функции

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

    Ссылка_на_ячейку — это текстовая строка в формате ссылки (т.е. указаны столбец и строка): = ДВССЫЛ(«B3») или = ДВССЫЛ(«Лист1!B3») или =ДВССЫЛ(«[Книга1.xlsx]Лист1!B3») . Первая формула эквивалентна формуле = B3 , вторая — = Лист1!B3 , третья = [Книга1.xlsx] Лист1!B3 Если какая-либо ячейка (например, А1 ) содержит текстовую строку в формате ссылки (например, Лист1!B3 ), то в ДВССЫЛ() можно указать ссылку на эту ячейку = ДВССЫЛ(А1) Эта запись будет эквивалентна = ДВССЫЛ(«Лист1!B3») , которая в свою очередь будет эквивалентна = Лист1!B3 . Зачем все это нужно — читайте ниже (см. раздел решение задач).

    Второй аргумент а1 — это логическое значение (ИСТИНА или ЛОЖЬ), указывающее, какого типа ссылка содержится в аргументе Ссылка_на_ячейку .

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

    Примечание : Формат ссылки = Лист1!B3 называется ссылкой в стиле А1, когда явно указывается адрес ячейки. Формат ссылки в стиле R1C1 — это относительная ссылка на ячейку (относительная относительно ячейки с формулой). Например, если в ячейке С5 имеется формула =R[-1]C, то это ссылка на ячейку С4 . Чтобы записывать ссылки в стиле R1C1 необходимо переключить EXCEL в режим работы со ссылками в стиле R1C1 ( Кнопка Офис/ Параметры Excel/ Формулы/ Работа с формулами ).

    Если ссылка_на_ячейку не является допустимой ссылкой, то функция ДВССЫЛ() возвращает значение ошибки #ССЫЛКА!

    Рассмотрим несколько задач

    Задача1 — Формируем ссылки на листы

    Пусть на листах Лист1 , Лист2 , Лист3 и Лист4 в одних и тех же ячейках находятся однотипные данные (Продажи товаров за квартал) См. файл примера .

    Сформируем итоговую таблицу Продажи за год на другом листе. В этой таблице будут присутствовать данные с 4-х листов.

    Для удобства в строке 9 на листе, где будет итоговая таблица, пронумеруем столбцы С, D, E, F как 1, 2, 3, 4 в соответствии с номером квартала и пронумеруем строки таблицы (см. столбец А).

    Чтобы вывести данные с других листов используем формулу =ДВССЫЛ(«Лист»&C$9&»!B»&$A10+3)

    Такая запись возможна, т.к. все листы имеют однотипные названия: Лист1 , Лист2 , Лист3 и Лист4 , и все таблицы на этих листах имеют одинаковую структуру (одинаковое количество строк и столбцов, наименования товаров, также должны совпадать).

    Вышеуказанная формула в ячейке С12 эквивалентна формуле =ДВССЫЛ(«Лист1!B4») , формула в ячейке D12 эквивалентна =ДВССЫЛ(«Лист2!B4») , т.е. ссылается на другой лист! Весь смысл использования функции ДВССЫЛ() состоит в том, чтобы написать формулу в ячейке С12 и затем ее скопировать в другие ячейки (вправо и вниз), например с помощью Маркера заполнения . Теперь данные с 4-х различных листов сведены в 1 таблицу!

    Примечание : Обратите внимание на использование в формуле смешанных ссылок ( C$9 и $A12).

    Задача2 — ссылки на четные/ нечетные строки

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

    Записав формулу =ДВССЫЛ(СИМВОЛ(65+H$26)&$A12*2+11) и скопировав ее в нужное количество ячеек, получим только четные записи из исходной таблицы. Формула в ячейке H 12 эквивалентна =ДВССЫЛ(«B13»)

    Примечание : С помощью функции СИМВОЛ() можно вывести любой символ, зная его код. =СИМВОЛ(65) выведет букву А (английскую), =СИМВОЛ(66) выведет В , =СИМВОЛ(68) выведет D .

    C помощью формулы =ДВССЫЛ(СИМВОЛ(65+N$26)&$A12*2+10) можно вывести только нечетные строки, а с помощью формулы =ДВССЫЛ(СИМВОЛ(65+B$26)&$A28+11) вообще произвольные строки, номера которых заданы в столбце А .

    Задача3 — транспонирование таблиц/ векторов

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

    О транспонировании таблиц можно прочитать в этом разделе .

    Примечание : О других применениях функции ДВССЫЛ() можно прочитать в статьях, список которых расположен ниже.

    Задача 4 — использование с именами

    Имена Имя1 и Имя4 — это именованные диапазоны , т.е. эти имена возвращают ссылки.

    Имя И мя2 — это константа массива , т.е. массив чисел, а не ссылка.

    Также массив значений будет возвращать функция СМЕЩ() . см. Имя5 .

    Имя Имя3 — это именованная формула , которая возвращает число, а не ссылку.

    Создадим табличку, в которой укажем эти имена. Постараемся найти сумму значений, которые вернут эти имена, использовав формулу =СУММ(ДВССЫЛ(A2)) .

    Как видим, работают только те формулы, которые ссылаются на ячейки содержащие Имя1 и Имя4 . Только эти имена ссылаются на диапазоны ячеек. Если вспомним синтаксис функции ДВССЫЛ() , то в качестве первого аргумента можно использовать » текстовую строку в формате ссылки», а не числовые массивы.

    Формула =СУММ(ДВССЫЛ(A2)) эквивалентна =СУММ(ДВССЫЛ(«имя1»)) Вместо «имя1» подставляется ссылка =Имена!$A$14:$A$17 ( текстовая строка в формате ссылки ), которая успешно разрешается функцией ДВССЫЛ() . В итоге функция ДВССЫЛ() возвращает массив из диапазона $A$14:$A$17 , который затем суммируется.

    В случае с Имя2 все по-другому. Формула =СУММ(ДВССЫЛ(A3)) эквивалентна =СУММ(ДВССЫЛ(«имя2»)) Вместо «имя2» подставляется массив , который не является текстовой строкой и не может быть обработан функцией ДВССЫЛ() . Поэтому она возвращает ошибку. Аналогичный результат получим для имен: Имя3 и Имя5 .

    В чем разница между =СУММ(ДВССЫЛ(имя5)) и =СУММ(ДВССЫЛ(«имя5»)) ? Когда мы записываем =СУММ(ДВССЫЛ(«имя5»)) мы говорим функции ДВССЫЛ() работать с имя5 как с адресом. Это сработает, если имя5 содержит » Имена!$A$14:$A$17″ или что-то в этом роде. Но, имя5 указывает на формулу, которая возвращает значения из диапазона Имена!$A$14:$A$17. Т.к. это не ссылка, то функция вернет ошибку.

    Разбор функции ДВССЫЛ (INDIRECT) на примерах

    Простой пример на ДВССЫЛ

    На первый взгляд (особенно при чтении справки) функция ДВССЫЛ (INDIRECT) выглядит простой и даже ненужной. Ее суть в том, чтобы превращать текст похожий на ссылку — в полноценную ссылку. Т.е. если нам нужно сослаться на ячейку А1, то мы можем либо привычно сделать прямую ссылку (ввести знак равно в D1, щелкнуть мышью по А1 и нажать Enter), а можем использовать ДВССЫЛ для той же цели:
    Обратите внимание, что аргумент функции — ссылка на А1 — введен в кавычках, поэтому что, по сути, является здесь текстом. «Ну ОК», — скажете вы. «И что тут полезного?». Но не судите по первому впечатлению — оно обманчиво. Эта функция может выручить вас в большом количестве ситуаций.

    Пример 1. Транспонирование

    Классика жанра: нужно превратить вертикальный диа пазон в горизонтальный (транспонировать). Само-собой, можно использовать специальную вставку или функцию ТРАНСП (TRANSPOSE) в формуле массива, но можно обойтись и нашей ДВССЫЛ: Транспонирование столбца в строку
    Логика проста: чтобы получить адрес очередной ячейки, мы склеиваем спецсимволом «&» букву «А» и номер столбца текущей ячейки, который выдает нам функция СТОЛБЕЦ (COLUMN) . Обратную процедуру лучше проделать немного по-другому. Поскольку на этот раз нам нужно формировать ссылку на ячейки B2, C2, D2 и т.д., то удобнее использовать режим ссылок R1C1 вместо классического «морского боя». В этом режиме наши ячейки будут отличаться только номером столбца: B2=R1C 2 , C2=R1C 3 , D2=R1C 4 и т.д. Тут на помощь приходит второй необязательный аргумент функции ДВССЫЛ. Если он равен ЛОЖЬ (FALSE) , то можно задавать адрес ссылки в режиме R1C1. Таким образом, мы можем легко транспонировать горизонтальный диапазон обратно в вертикальный: ДВССЫЛ в режиме R1C1

    Пример 2. Суммирование по интервалу

    Сумма по интервалу

    Мы уже разбирали один способ суммирования по окну (диапазону) заданного размера на листе с помощью функции СМЕЩ (OFFSET) . Подобную задачу можно решить и с помощью ДВССЫЛ. Если нам нужно суммировать данные только из определенного диапазона-периода, то можно склеить его из кусочков и превратить затем в полноценную ссылку, которую и вставить внутрь функции СУММ (SUM) :

    Пример 3. Выпадающий список по умной таблице

    Иногда Microsoft Excel не воспринимает имена и столбцы умных таблиц как полноценные ссылки. Так, например, при попытке создать выпадающий список (вкладка Данные — Проверка данных) на основе столбца Сотрудники из умной таблицы Люди мы получим ошибку: Ошибка при создании вып.списка
    Если же «обернуть» ссылку нашей функцией ДВССЫЛ, то Excel преспокойно ее примет и наш выпадающий список будет динамически обновляться при дописывании новых сотрудников в конец умной таблицы: ДВССЫЛ для создания динамического выпадающего списка

    Пример 4. Несбиваемые ссылки

    Несбиваемые ссылки

    Как известно, Excel автоматически корректирует адреса ссылок в формулах при вставке или удалении строк-столбцов на лист. В большинстве случаев это правильно и удобно, но не всегда. Допустим, что нам нужно перенести имена из справочника по сотрудникам в отчет:
    Если ставить обычные ссылки (в первую зеленую ячейку ввести =B2 и скопировать вниз), то потом при удалении, например, Даши мы получим в соответствующей ей зеленой ячейке ошибку #ССЫЛКА! (#REF!). В случае применения для создания ссылок функции ДВССЫЛ такой проблемы не будет.

    Пример 5. Сбор данных с нескольких листов

    Предположим, что у нас есть 5 листов с однотипными отчетами от разных сотрудников (Михаил, Елена, Иван, Сергей, Дмитрий): Отчеты для сборки
    Допустим, что форма, размеры, положение и последовательность товаров и месяцев во всех таблицах одинаковые — различаются только числа. Собрать данные со всех листов (не просуммировать, а положить друг под друга «стопочкой») можно всего одной формулой: Сборка данных функцией ДВССЫЛ
    Как видите, идея та же: мы склеиваем ссылку на нужную ячейку заданного листа, а ДВССЫЛ превращает ее в «живую». Для удобства, над таблицей я добавил буквы столбцов (B,C,D), а справа — номера строк, которые нужно взять с каждого листа.

    Подводные камни

    • Если вы делаете ссылку в другой файл (склеивая имя файла в квадратных скобках, имя листа и адрес ячейки), то она работает только пока исходный файл открыт. Если его закрыть, то получим ошибку #ССЫЛКА!
    • С помощью ДВССЫЛ нельзя сделать ссылку на динамический именованный диапазон. На статический — без проблем.
    • ДВССЫЛ является волатильной (volatile) или «летучей» функцией, т.е. она пересчитывается при любом изменении любой ячейки листа, а не только влияющих ячеек, как у обычных функций. Это плохо отражается на быстродействии и на больших таблицах ДВССЫЛ лучше не увлекаться.

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

    • Как создать динамический диапазон с автоподстройкой размеров
    • Суммирование по диапазону-окну на листе функцией СМЕЩ (OFFSET)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *