Косвенная ссылка на ячейку excel

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? Одной из наиболее полезных функций проверки данных является возможность создания выпадающего списка, который позволяет выбирать значение из предварительно определенного перечня. Но как только вы начнете применять это в своих таблицах,…

Excel INDIRECT Функция

Microsoft Excel КОСВЕННЫЕ функция преобразует текстовую строку в действительную ссылку.


Синтаксис

=INDIRECT (ref_text, [a1])


аргументы

Ref_text (обязательный аргумент): это ссылка на ячейку, содержащую одно из следующих значений:

  • Ссылка в стиле A1.
  • Ссылка в стиле R1C1.
  • Именованный диапазон, определенный как ссылка.
  • Ссылка на ячейку в виде текстовой строки.

[а1] (необязательный аргумент): это логическое значение для присвоения стиля ref_text.

  • Если a1 равно или опущено, ref_text интерпретируется как ссылка в стиле A1.
  • Если a1 имеет значение FALSE, ref_text интерпретируется как ссылка в стиле R1C1.

Возвращаемое значение

Наблюдения и советы этой статьи мы подготовили на основании опыта команды КОСВЕННАЯ функция вернет действительную ссылку, указанную в текстовой строке.


Примечания к функциям:

Функция КОСВЕННО вернет # ССЫЛКА! значение ошибки, когда:

  • Ref_text относится к другой рабочей книге, которая не открыта;
  • Ref_text относится к диапазону ячеек, выходящему за пределы 1,048,576 строк или 16,384 столбцов (XED).

Примеры

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

Пример 1: КОСВЕННАЯ ссылка на ячейку

Как показано на скриншоте ниже, функция КОСВЕННО =INDIRECT(B2) преобразовал текстовую строку в B2 в действительную ссылку на ячейку, а затем верните значение этой ссылки на ячейку (D2) в качестве окончательного результата.

Заметки:

  • Если ref_text заключен в двойные кавычки, например =INDIRECT(«B2»), он получит значение в B2 напрямую.
  • Вы также можете объединить текстовую строку и ссылку на ячейку в функции ДВССЫЛ, как показано на скриншоте ниже.

Здесь функция ДВССЫЛ объединяет ref_text (говорит D) и значение в B2 (говорит 2) как действительную ссылку на ячейку D2 и возвращает значение в D2 в качестве результата.

Пример 2: КОСВЕННЫЙ с именованным диапазоном

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

1. Введите имя диапазона в ячейку, здесь я ввожу Mon в ячейку C12. Выберите пустую ячейку, скопируйте в нее формулу ниже и нажмите клавишу Enter.
=SUM(INDIRECT(C12))

Теперь вы просуммировали все значения в указанном именованном диапазоне (Mon).


Больше примеров

Как извлечь уникальные значения из нескольких столбцов в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel — Помогает вам выделиться из толпы

Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.

  • Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
  • Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
  • Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
  • 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.

Лента Excel (с Kutools for Excel установлены)


Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)

  • Одна секунда для переключения между десятками открытых документов!
  • Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
  • Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
  • Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.

Снимок экрана Excel (с установленной вкладкой Office)

Комментарии (0)


Оценок пока нет. Оцените первым!

Returns a reference to a range

What is the Excel INDIRECT Function?

The Excel INDIRECT Function[1] returns a reference to a range. The INDIRECT function does not evaluate logical tests or conditions. Also, it will not perform calculations. Basically, this function helps lock the specified cell in a formula. Due to this, we can change a cell reference within a formula without changing the formula itself.

One advantage of this function is that the indirect references won’t change even when new rows or columns are inserted in the worksheet. Similarly, references won’t change when we delete existing ones.

Formula

=INDIRECT(ref_text, [a1])

Where:

ref_text is the reference supplied as text

a1 is the logical value

The type of reference, contained in the ref_text argument, is specified by a1.

When a1 is TRUE or is omitted, then ref_text is interpreted as an A1-style cell reference.

When a1 is FALSE, then ref_text is treated as an R1C1 reference.

A1 style is the usual reference type in Excel. It is preferable to use A1 references. In this style, a column is followed by a row number.

R1C1 style is completely opposite of A1 style. Here, rows are followed by columns. For example, R2C1 refers to cell A2 which is in row 2, column 1 in a sheet. If there is no number after the letter, then it means we are referring to the same row or column.

To learn more, launch our free Excel crash course now!

Example of Excel INDIRECT in action

Let’s understand the formula through an example. Suppose A1 = 32 and using the INDIRECT function, we give reference A1 as shown below:

INDIRECT Function in Excel

In the above example, the INDIRECT function converted a text string into a cell reference. The INDIRECT function helps us put the address of one cell (A1 in our example) into another as a usual text string, and then get the value of the first cell by acknowledging the second.

How is the INDIRECT function useful to Excel users?

Yes, it is indeed a useful function. Let’s take a few examples to understand the merits of the INDIRECT function.

For an array of numbers:

Indirect Function - Excel Users (1)

When I give the formula Indirect(“D”&4), I will get 8. This is so as it will refer to D4.

Indirect Function - Excel Users (2)

When I use the formula INDIRECT(“E” & ROW() ), I used the EXCEL ROW function to return the reference to the current row number (i.e., 3), and used this to form part of the cell reference. Therefore, the Indirect formula returns the value from cell E3.

Indirect Function - Excel Users (3)

When I use the formula SUM( INDIRECT( “C4:E4” ) ), the Indirect function returns a reference to the range C4:E4, and then passes this to Excel’s SUM function. The SUM function, therefore, returns the sum of cells C4, D4, and E4, that is (4 + 8 + 9).

Excel Indirect Function - (4)

Similarly, when I use the formula AVERAGE ( INDIRECT( “C5:E5” ) ), the INDIRECT function returns a reference to the range C5:E5, and then passes this to Excel’s AVERAGE function.

Indirect Function - Excel Users (5)

The usefulness of Excel’s INDIRECT function is not just limited to building “dynamic” cell references. In addition, it can also be used to refer to cells in other worksheets.

To learn more, launch our free Excel crash course now!

How to lock a cell reference using INDIRECT function

Generally, when we add or delete rows or columns in Excel, the cell references change automatically. If you wish to prevent this from happening, the INDIRECT function is quite useful.

In the screenshot below, I used the INDIRECT function for A2 and gave a plain reference for A3.

Excel Indirect Function - Lock Cell (1)

Indirect Function - Lock Cell (2)

When I insert a new column, what will happen? The cell equal to the logical operator still returns 20, as its formula was automatically changed to =B3.

However, the cell with the INDIRECT formula now returns 0, because the formula was not changed when a new row was inserted and it still refers to cell A1, which is currently empty:

Indirect Function - Lock Cell (3)

Indirect Function - Lock Cell (4)

So the Excel INDIRECT function would be useful in a scenario when we don’t want the formula to get changed automatically.

Free Excel Course

To keep learning about Excel functions and developing your skills, check out our Free Excel Crash Course!  Learn how to create more sophisticated financial analysis and modeling to become a successful financial analyst.

Excel INDIRECT function in a free course

Additional Resources

Thanks for reading CFI’s guide to the important Excel INDIRECT function! By taking the time to learn and master these functions, you’ll significantly speed up your financial analysis. To learn more, check out these additional CFI resources:

  • Excel Functions for Finance
  • Advanced Excel Formulas Course
  • Advanced Excel Formulas You Must Know
  • Excel Shortcuts for PC and Mac
  • See all Excel resources

Содержание

  • Функция КОСВЕННО в Excel — Обзор
  • НЕПРЯМАЯ ФУНКЦИЯ Синтаксис
  • Примеры использования косвенной функции в Excel

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

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

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

Но прежде чем я перейду к примерам, давайте сначала посмотрим на его синтаксис.

НЕПРЯМАЯ ФУНКЦИЯ Синтаксис

= ДВССЫЛ (ref_text; [a1])

Входные аргументы

  • ref_text — Текстовая строка, содержащая ссылку на ячейку или именованный диапазон. Это должна быть действительная ссылка на ячейку, иначе функция вернет # ССЫЛКУ! ошибка
  • [a1] — Логическое значение, указывающее, какой тип ссылки использовать для текст ссылки. Это может быть ИСТИНА (указывает на ссылку стиля A1) или ЛОЖЬ (указывает ссылку в стиле R1C1). Если опущено, по умолчанию это ИСТИНА.

Дополнительные замечания

  • КОСВЕННЫЙ — непостоянная функция. Это означает, что он пересчитывается всякий раз, когда открыта книга Excel или когда на листе запускается вычисление. Это увеличивает время обработки и замедляет вашу книгу. Хотя вы можете использовать косвенную формулу с небольшими наборами данных с незначительным влиянием или без влияния на скорость, вы можете увидеть, что это замедляет работу вашей книги при использовании ее с большими наборами данных.
  • Справочный текст (ref_text) может быть:
    • Ссылка на ячейку, которая, в свою очередь, содержит ссылку в формате ссылок в стиле A1 или R1C1.
    • Ссылка на ячейку в двойных кавычках.
    • Именованный диапазон, возвращающий ссылку

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

Теперь давайте углубимся и рассмотрим несколько примеров использования функции КОСВЕННО в Excel.

Пример 1. Использование ссылки на ячейку для получения значения

Он принимает ссылку на ячейку в виде текстовой строки в качестве входных и возвращает значение в этой ссылке (как показано в примере ниже):

Формула в ячейке C1:

= КОСВЕННО ("A1")

Приведенная выше формула принимает ссылку на ячейку A1 в качестве входного аргумента (в двойных кавычках как текстовую строку) и возвращает значение в этой ячейке, равное 123.

Теперь, если вы думаете, почему бы мне просто не использовать = A1 вместо функции КОСВЕННО, у вас есть правильный вопрос.

Вот почему …

Когда вы используете = A1 или = $ A $ 1, это дает тот же результат. Но когда вы вставляете строку над первой строкой, вы заметите, что ссылки на ячейки автоматически изменятся, чтобы учесть новую строку.

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

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

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

В приведенном выше примере ячейка A1 имеет значение 123.

Ячейка C1 имеет ссылку на ячейку A1 (в виде текстовой строки).

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

Это, в свою очередь, означает, что функция будет обращаться к ячейке A1 и возвращать значение в ней.

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

Кроме того, если текстовая строка в ячейке C1 не является действительной ссылкой на ячейку, функция Indirect вернет #REF! ошибка.

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

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

Например, если ячейка C1 содержит число 2, и вы используете формулу = КОСВЕННО («A» и C1) тогда он будет относиться к ячейке A2.

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

Если текстовая строка, которую вы используете в формуле, дает ссылку, которую Excel не понимает, она вернет ошибку ссылки (#REF!).

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

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

Например, = КОСВЕННО («A1: A5») будет относиться к диапазону A1: A5.

Затем вы можете использовать функцию СУММ, чтобы найти сумму, или функцию НАИБОЛЬШИЙ / МАЛЫЙ / МИН / МАКС, чтобы выполнить другие вычисления.

Как и функция СУММ, вы также можете использовать такие функции, как НАИБОЛЬШИЙ, МАКС / МИН, СЧЁТ и т. Д.

Пример 5: Создание ссылки на лист с помощью функции КОСВЕННО

В приведенных выше примерах показано, как указать ячейку на том же листе. Вы также можете использовать формулу КОСВЕННО для ссылки на ячейку на другом листе или в другой книге.

Вот что вам нужно знать о ссылках на другие листы:

  • Допустим, у вас есть рабочий лист с именем Sheet1, а внутри листа в ячейке A1 у вас есть значение 123. Если вы перейдете на другой лист (скажем, Sheet2) и обратитесь к ячейке A1 в Sheet1, формула будет выглядеть так: = Лист1! A1

Но…

  • Если у вас есть рабочий лист, содержащий два или более двух слов (с пробелом между ними), и вы ссылаетесь на ячейку A1 на этом листе с другого листа, формула будет выглядеть следующим образом: = ’Data Set’! A1

В случае нескольких слов Excel автоматически вставляет одинарные кавычки в начало и конец имени листа.

Теперь давайте посмотрим, как создать КОСВЕННУЮ функцию для ссылки на ячейку на другом листе.

Предположим, у вас есть лист с именем Dataset и ячейка A1 в нем имеет значение 123.

Теперь, чтобы сослаться на эту ячейку с другого листа, используйте следующую формулу:

= КОСВЕННО ("'Набор данных'! A1")

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

Если у вас есть имя рабочего листа в ячейке (скажем, A1), вы можете использовать следующую формулу:

= КОСВЕННО ("'" & A1 & "'! A1")

Если у вас есть имя рабочего листа в ячейке A1 и адрес ячейки в ячейке A2, то формула будет выглядеть следующим образом:

= КОСВЕННО ("'" & A1 & "'!" & A2)

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

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

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

Пример 6: Обращение к именованному диапазону с использованием косвенной формулы

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

Например, предположим, что у вас есть оценки для 5 студентов по трем предметам, как показано ниже:

В этом примере назовем ячейки:

  • B2: B6: Математика
  • C2: C6: Физика
  • D2: D6: Химия

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

Теперь вы можете ссылаться на эти именованные диапазоны, используя формулу:

= КОСВЕННЫЙ («Именованный диапазон»)

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

= СРЕДНИЙ (КОСВЕННЫЙ («Математический»))

Если у вас есть имя именованного диапазона в ячейке (F2 в приведенном ниже примере имеет имя Math), вы можете использовать его непосредственно в формуле.

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

Пример 7: Создание зависимого раскрывающегося списка с помощью функции НЕПРЯМОЙ Excel

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

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

Теперь, чтобы создать зависимый раскрывающийся список, вам нужно создать два именованных диапазона: A2: A5 с именем US и B2: B5 с именем India.

Теперь выберите ячейку D2 и создайте раскрывающийся список для Индии и США. Это будет первый раскрывающийся список, в котором пользователь может выбрать страну.

Теперь, чтобы создать зависимый выпадающий список:

  • Выберите ячейку E2 (ячейку, в которой вы хотите получить зависимый раскрывающийся список).
  • Перейдите на вкладку «Данные».
  • Щелкните Проверка данных.
  • Выберите Список в качестве критерия проверки и используйте следующую формулу в исходном поле: = КОСВЕННО ($ D $ 2)
  • Щелкните ОК.

Теперь, когда вы вводите США в ячейку D2, раскрывающийся список в ячейке E2 покажет штаты в США.

И когда вы вводите Индию в ячейку D2, раскрывающийся список в ячейке E2 покажет штаты Индии.

Итак, это несколько примеров использования функции ДВССЫЛ в Excel. Эти примеры будут работать во всех версиях Excel (Office 365, Excel2021-2022 / 2016/2013/2013).

Надеюсь, вы нашли этот урок полезным.

  • Функция ВПР в Excel.
  • Функция Excel HLOOKUP.
  • Функция ИНДЕКС Excel.
  • Функция ПОИСКПОЗ в Excel.
  • Функция смещения Excel.

Indirect isn’t well known, but it’s one of Excel’s best functions

Once you know how to use the indirect function in Excel, you can grab information from other sheets, reference named ranges, and combine it with other functions to create a truly versatile tool. It can take a little practice to get to grips with, but with the indirect function, you can do more than you might think.

Instructions in this article apply to Excel for Microsoft 365, Excel 2019, and Excel 2016.

What Is the Indirect Function?

The indirect function is a way to convert a text string into a reference. That is, it draws information from a reference to another cell or range. It creates a reference from text, and doesn’t change when cells, rows, or columns are altered, added, or removed from a cited range. The references it creates are evaluated in real-time, so the reference is always accurate to the data it’s drawing from.

If that feels a little confusing, don’t fret. The indirect formula can be easier to understand with valid examples and in practice. If in doubt, have a go following the steps below, and you’ll soon get the hang of it.

Using the Indirect Function With Named Ranges

Named ranges in Excel are a great way to collect data under a single reference, and the indirect function makes grabbing that information from them that bit easier. Here’s how to do it:

  1. Open an Excel document with named ranges already applied. In our example, we have sales information from various foods and drinks, with the money earned over each day of the week collected under named ranges titled after the products.

  2. Choose a cell for your named range, and input one of them into it. In our example, we used Burgers. Add other designator titles and coloring if you wish.

  3. Select another cell where you want the indirect output to go. Since we’re looking to add up all the sales volume from the week for a specific food, in this case Burgers, we’ll type the following into the cell:

    =SUM(INDIRECT(G5)

  4. This designates a SUM function, that will use the indirect function to draw the information from the named range in cell G5, in this case Burgers. The output is 3781, the total of sales for the week for Burgers.

    In our example, we can replace Burgers in cell G5 with Lemonade or Desserts, the other two named ranges, and the output will change to their SUM total instead.

Using the Indirect Function on Multiple Sheets

The indirect formula is even more powerful when you use it to pull information from other sheets. You don’t need to use named ranges to do it, either.

How to Move Around and Between Worksheet Tabs in Excel

  1. Open your Excel document with multiple sheets, or create them with all the necessary information.

  2. In the sheet where you want the indirect output to go, create a cell with the name of the sheet you want to draw information from. In our example, it’s FoodSales.

  3. Since we want to pull information from our FoodSales sheet to total the number of Burgers sold, we typed the following (replace the cell range and sheet name(s) with your own):

    =SUM(INDIRECT(B4&»!B4:B10″))

  4. This designates it as a SUM function, since we are trying to find a total. It then designates cell B4 as the reference text for the indirect function. The & brings together the elements of this function, followed by a quote and exclamation point, and then the range of cells that we want to draw the data from. B4 through B10.

  5. The output is the total of Burger sales for that week. When we create a new FoodSales2 sheet for a new week with different numbers, we only need to adjust cell B4 to say FoodSales2 to get the data on Burger sales for that week.

Using the Indirect Function With R1C1 Style Reference

For sheets that are continuously expanding, where the reference you want to use won’t always be in the same cell, R1C1 Style references can be used with the indirect formula to give you the information you need. We’ll continue to use our food sales examples here, but imagine it’s for a higher level worksheet that looks at weekly sales totals overall.

  1. Open the Excel document with all of the data you want to draw from and select a cell for your indirect function output. In our example, we’re looking at monthly food sales totals and we want to know the most recent sales total for the month.

  2. In our example, the formula looks like this:

    =INDIRECT(«R12C»&COUNTA(12:12),FALSE)

  3. The indirect function is using R12 (row 12) followed by a C to denote a column, enclosed within quotes. The & joins the two parts of the function together. We’re using the COUNTA function to count all non blank cells in row 12 (selecting the row or typing 12:12), followed by a comma. FALSE designates this as an R1C1 reference.

  4. The output is then the last entry in our table, in this case 8102, or $8,102. When we eventually add April’s sales data, the latest sales number will update automatically in real time.

Thanks for letting us know!

Get the Latest Tech News Delivered Every Day

Subscribe

Резюме

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

Цель

Создать ссылку из текста

Возвращаемое значение

Действительная ссылка на рабочий лист.

Синтаксис

= ДВССЫЛ (ref_text; (a1))

Аргументы

  • ref_text — ссылка в виде текста.
  • a1 — (необязательно) логическое значение для обозначения ссылки в стиле A1 или R1C1. По умолчанию TRUE = стиль A1.

Версия

Excel 2003

Примечания по использованию

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

=INDIRECT("A1") // returns reference to A1

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

  • Формула, которой требуется переменное имя листа
  • Фиксированная ссылка, которая не изменится даже при удалении строк или столбцов.
  • Создание числовых массивов с помощью функции СТРОКА в сложных формулах

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

Имя переменной таблицы

В показанном выше примере INDIRECT настроен на использование такого имени таблицы переменных:

=INDIRECT(B6&"!A1") // sheet name in B6 is variable

Скопированная формула в B6 возвращает значение в ячейке A1 на первых 5 листах с использованием имен листов, введенных в столбце B. Другими словами, когда в столбце B вводится другое имя листа, возвращается новый результат. Используя тот же подход, вы можете позволить пользователю выбрать имя листа с помощью раскрывающегося списка, а затем создать ссылку на выбранный лист с помощью КОСВЕННО.

Примечание: имена листов, содержащие знаки препинания или пробелы, должны быть заключены в одинарные кавычки (‘), как объяснено в этом примере. Это не относится к функции КОСВЕННО; то же самое верно для всех формул.

Фиксированная ссылка

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

=INDIRECT("A1:A100") // will not change

Создать числовой массив

Более продвинутое использование INDIRECT — создание числового массива с функцией ROW, например:

ROW(INDIRECT("1:10")) // create (1;2;3;4;5;6;7;8;9;10)

В этой формуле объясняется один вариант использования, который суммирует нижние n значений в диапазоне.

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

Заметки

  • Ссылки, созданные INDIRECT, оцениваются в реальном времени, и отображается их содержание.
  • Если ref_text является внешней ссылкой на другую книгу, она должна быть открыта.
  • a1 не является обязательным. Если не указано, a1 имеет значение ИСТИНА = ссылка на стиль A1.
  • Когда a1 установлен в FALSE, INDIRECT создаст ссылку в стиле R1C1.
  • INDIRECT — это непостоянная функция, которая может вызвать проблемы с производительностью.

Похожие видео

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

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки


    1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
    2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость — сестра таланта.
    3. Не забывайте использовать теги [сode=vba] …текст программы… [/code] для выделения текста программы подсветкой!
    4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.

    >
    косвенная адресация ячеек Excel
    , в ячейке сидит адрес

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему

      


    Сообщ.
    #1

    ,
    16.11.05, 07:16

      Member

      **

      Рейтинг (т): 3

      Всем привет!

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

      Т.е. в ячейке $A$1 программа формирует запись вида $C$3 мне нужна формула, у которой аргумент — ячека A1, а результат вычислений — содержимое ячейки $C$3.

      Весь help перерыл, ничего не нашел :wall: неужели такое простое дело в Excel не реализовано? :unsure:


      Dmitrii



      Сообщ.
      #2

      ,
      16.11.05, 08:59

        Не знаю, верно ли я понял Вашу задачу, но вот мой пример:

        ExpandedWrap disabled

          Sub Test()

          Dim xAddr As String, fmText As String

          xAddr = Columns(3).SpecialCells(xlCellTypeFormulas).Address

          fmText = Range(xAddr).FormulaLocal

          If fmText Like «=*A*1» Then

              MsgBox Range(xAddr).DirectPrecedents.Value

          End If

          End Sub

        В ячейке А1 — исходное значение, например, число. В ячейке С3 — формула =А1.


        pashulka



        Сообщ.
        #3

        ,
        16.11.05, 09:29

          =ДВССЫЛ($A$1)

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • VB for Application
          • Следующая тема

          Рейтинг@Mail.ru

          [ Script execution time: 0,0714 ]   [ 16 queries used ]   [ Generated: 16.04.23, 06:56 GMT ]  

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

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

          Обратите внимание, что аргумент функции — ссылка на А1 — введен в кавычках, поэтому что, по сути, является здесь текстом.

          «Ну ОК», — скажете вы. «И что тут полезного?». 

          Но не судите по первому впечатлению — оно обманчиво. Эта функция может выручить вас в большом количестве ситуаций.

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

          Классика жанра: нужно превратить вертикальный диа

          пазон в горизонтальный (транспонировать). Само-собой, можно использовать специальную вставку или функцию ТРАНСП (TRANSPOSE) в формуле массива, но можно обойтись и нашей ДВССЫЛ:

          Транспонирование столбца в строку

          Логика проста: чтобы получить адрес очередной ячейки, мы склеиваем спецсимволом «&» букву «А» и номер столбца текущей ячейки, который выдает нам функция СТОЛБЕЦ (COLUMN).

          Обратную процедуру лучше проделать немного по-другому. Поскольку на этот раз нам нужно формировать ссылку на ячейки B2, C2, D2 и т.д., то удобнее использовать режим ссылок R1C1 вместо классического «морского боя». В этом режиме наши ячейки будут отличаться только номером столбца: B2=R1C2, C2=R1C3, D2=R1C4 и т.д.

          Тут на помощь приходит второй необязательный аргумент функции ДВССЫЛ. Если он равен ЛОЖЬ (FALSE), то можно задавать адрес ссылки в режиме R1C1. Таким образом, мы можем легко транспонировать горизонтальный диапазон обратно в вертикальный:

          ДВССЫЛ в режиме R1C1

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

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

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

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

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

          Ошибка при создании вып.списка

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

          ДВССЫЛ для создания динамического выпадающего списка

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

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

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

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

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

          Предположим, что у нас есть 5 листов с однотипными отчетами от разных сотрудников (Михаил, Елена, Иван, Сергей, Дмитрий):

          Отчеты для сборки

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

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

          Сборка данных функцией ДВССЫЛ

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

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

          При использовании ДВССЫЛ (INDIRECT) нужно помнить про ее слабые места:

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

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

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

           

          Понравилась статья? Поделить с друзьями:

          А вот еще интересные статьи:

        • Косая черта ячейке excel
        • Косая черта в таблице word
        • Косая линия в ячейке excel
        • Косая линейка для word
        • Корявый шрифт для word

        • 0 0 голоса
          Рейтинг статьи
          Подписаться
          Уведомить о
          guest

          0 комментариев
          Старые
          Новые Популярные
          Межтекстовые Отзывы
          Посмотреть все комментарии