Excel переменные в ссылке на ячейку

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

Прошу подсказать, как задать ссылку на переменный номер ячейки.
Задача такая:
На Лист1 — исходные данные.
На Лист2 — формируется бланк отчета.
Каждая строка содержит данные для одного отчета.
На Лист1 всегда в одной и той же ячейке E2 вручную задается № отчета.
Отчет № 1 — формируется из 6-й строки, Отчет № 2 — из 7-й строки, Отчет № 3 — из 8-й и т.д.
В отчет просто вставляются данные ячеек одной строки.

PS Нельзя ли также автоматически сразу после задания номера в ячейке Е2 посылать Лист2 на печать?

Прикрепленные файлы

  • пример.xlsx (10.74 КБ)

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#2

12.04.2017 15:30:53

Цитата
На Лист2 — формируется бланк отчета.

А где пример бланка?

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

Ок, Пример бланка такой
=Лист1!A6
=Лист1!A7
=Лист1!A8
и т.д.
Только вместо A6, A7, A8… должно стоять А(Е2+5)

В этом и заключается мой вопрос: «Как задать переменный номер ячейки?»

 

Bema

Пользователь

Сообщений: 6750
Регистрация: 15.02.2016

Так нужно?

Прикрепленные файлы

  • СВАТ.xlsx (11.97 КБ)

Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

2 Bema
Нет, Вы даете ссылку на постоянную ячейку.
А нужна ссылка на переменную ячейку, где вместо «6»- переменная функция =Е2+5

Чтобы когда Е2=1 ссылка вела на A6
при е2=2 та же ссылка вела на А7
при е2=3 — на А8 и т.д.

Изменено: СВАТ12.04.2017 15:52:30

 

Wiss

Пользователь

Сообщений: 1028
Регистрация: 08.11.2016

Не очень понравилась идея с печатью листа 2 при изменении заданной ячейки, добавил отдельную кнопку «Напечатать Лист 2».

Или Вы хотели узнать, как а втором листе вывести нужную строку из первого? (тоже сделано)

Изменено: Wiss12.04.2017 15:53:21

Я не волшебник, я только учусь.

 

Bema

Пользователь

Сообщений: 6750
Регистрация: 15.02.2016

А Вы на Листе1 в ячейке Е2 значения меняли? Что-то происходит?

Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#8

12.04.2017 16:07:04

Цитата
вопрос: «Как задать переменный номер ячейки?»

Пишите макрос на изменение ячейки Е2 .
Копируете нужную строку и переносите ее на лист2,
затем печать

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

Bema, Прошу прощения, теперь заметил. Спасибо.
Надеюсь, смогу по аналогии состряпать остальное

Wiss, согласен, идея с печатью была лишняя. Это я погорячился.
Пример ваш открываю, инет лагает… Заранее спасибо.

Kuzmich, копипаста не подходит. даже в виде макроса.
На Лист2 данные иначе должны быть раскиданы по ячейкам, не в одну строку.
Если бы мне была нужна только строка, я бы смог печатать их и с первого листа.

 

Bema

Пользователь

Сообщений: 6750
Регистрация: 15.02.2016

#10

12.04.2017 16:26:34

СВАТ, еще такой вариант проверьте.
=ЕСЛИОШИБКА(ДВССЫЛ(«Лист1!A»&Лист1!$E$2+5&»:E»&Лист1!$E$2+5);»»)
В формуле как раз есть то, что Вы хотели

Цитата
СВАТ написал:
переменная функция =Е2+5

Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#11

12.04.2017 16:35:51

Цитата
Чтобы когда Е2=1 ссылка вела на A6
при е2=2 та же ссылка вела на А7
при е2=3 — на А8 и т.д.
Код
=Индекс(Лист1!A:A;E2+5)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

Bema, Wiss
Оба ваших способа работают. (С учетом исправления Wiss +5)

Просто поразительно, респект! Буду выбирать более короткую формулу )

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Неправильно. Нужно выбирать ЛУЧШЕ работающую )
А это не всегда самая короткая

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

Wiss, формула =ДВССЫЛ(«Лист1!D»&Лист1!E2+5;ИСТИНА) — уже работает.
Зачем еще оператор ЕСЛИОШИБКА?

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

#15

12.04.2017 17:03:38

Цитата
vikttur написал: Неправильно. Нужно выбирать ЛУЧШЕ работающую )

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

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#16

12.04.2017 17:11:13

Цитата
СВАТ написал: безоценочный способ общения — самый бесконфликтный.
Цитата
СВАТ написал: Захотелось пофлудить?

Это ли не оценка? :)

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

 

VideoAlex

Пользователь

Сообщений: 656
Регистрация: 01.01.1970

Не производите оценку необходимости данной вам подсказки а просто примите во внимание и никаких конфликтов не будет.

 

Wiss

Пользователь

Сообщений: 1028
Регистрация: 08.11.2016

СВАТ, у меня там нет ЕСЛИОШИБКА. Не стал писать так как там ошибка может быть в 2=х случаях:
1. Кривой диапазон;
2. Ошибка в ячейке из которой берутся данные.
В обоих случаях я хотел бы видеть, что у меня вылезла ошибка, а не заменять её каким — то значением.

Я не волшебник, я только учусь.

 

Bema

Пользователь

Сообщений: 6750
Регистрация: 15.02.2016

#19

13.04.2017 08:39:52

Цитата
vikttur написал: ДВССЫЛ лучше не применять

Виктор, если не трудно, не могли бы Вы привести пример, где без ДВССЫЛ не обойтись.

Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

#20

13.04.2017 08:47:00

Цитата
Ігор Гончаренко написал: =Индекс(Лист1!A:A;E2+5)

Не смог добиться, чтобы эта формула у меня заработала как надо :(

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

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

Цитата
Wiss написал:  СВАТ , у меня там нет ЕСЛИОШИБКА.

Понятно, значит, это только для отладки. Ок. Отдельное спасибо за кнопку печати.
Правда, я тут слегка передумал — лучше я буду задавать ячейку с «№ Отчета» не на Лист1, а сразу в бланке на Лист2, соответственно сразу видеть и возможные ошибки и печатать в один клик.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#21

13.04.2017 09:49:34

Цитата
Bema написал: пример, где без ДВССЫЛ не обойтись.

В ячейках — имена листов. Протягивнием сделать ссылки на ячейки разных листов.
Но и здесь можно заменить ДВССЫЛ макросом :)

 

Bema

Пользователь

Сообщений: 6750
Регистрация: 15.02.2016

Точно. Приходилось такое делать.

Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

 

СВАТ

Пользователь

Сообщений: 9
Регистрация: 12.04.2017

#23

13.04.2017 10:10:53

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

Еще раз Спасибо! Всем!

указать «переменный» адрес обращения

0mega

Дата: Воскресенье, 31.10.2010, 11:08 |
Сообщение № 1

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


доброго времени суток
есть так: А1=D12
хочу так:А1=D(5+7)
реально ли это ?

 

Ответить

Serge_007

Дата: Воскресенье, 31.10.2010, 11:26 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (0mega)

реально ли это ?

Вопрос не понял.
Поясните подробнее.


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

kim

Дата: Воскресенье, 31.10.2010, 11:58 |
Сообщение № 3

Может быть имелось ввиду:
A1 =ИНДЕКС(D:D;5+7)

 

Ответить

0mega

Дата: Воскресенье, 31.10.2010, 11:58 |
Сообщение № 4

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


Serge_007, здравствуйте
адрес D12 — это столбец D и строка №12
можно ли значение строки задать формулой
т.е. строка12 = строка 9+3 или 14-2
во всех случаях будет 12

 

Ответить

Serge_007

Дата: Воскресенье, 31.10.2010, 12:01 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (0mega)

во всех случаях будет 12

Можно, kim уже ответил smile
Только зачем, если она всё-равно всегда будет 12?


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

0mega

Дата: Воскресенье, 31.10.2010, 12:18 |
Сообщение № 6

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


kim, здравствуйте

Quote (kim)

A1 =ИНДЕКС(D:D;5+7)

В десятку

for Serge_007,

Quote (Serge_007)

Только зачем, если она всё-равно всегда будет 12?

Это дает возможность обращаться к нужной ячейке по результатам вычислений
(формула ЕСЛИ имеет лимит 7 . При использовании ИНДЕКС(D:D;х+у) здесь снимаются любые ограничения )

Сообщение отредактировал 0megaВоскресенье, 31.10.2010, 12:27

 

Ответить

kim

Дата: Воскресенье, 31.10.2010, 15:37 |
Сообщение № 7

Можно и СМЕЩ() и АДРЕС() заточить, но зачем?
ДВССЫЛ() летуча и медленна
СМЕЩ() летуча (хоть и быстра)
АДРЕС() медленнее ИНДЕКС()

 

Ответить

Serge_007

Дата: Воскресенье, 31.10.2010, 15:38 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Ну и до кучи добавлю что INDIRECT не работает с закрытыми книгами smile
В отличии от INDEX.


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

kim

Дата: Воскресенье, 31.10.2010, 15:40 |
Сообщение № 9

АДРЕС() я имел ввиду в связке с ДВССЫЛ()…

 

Ответить

0mega

Дата: Четверг, 28.04.2011, 00:13 |
Сообщение № 10

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


Quote (kim)

A1 =ИНДЕКС(D:D;5+7)

отличная формула, прекрасно работает
аналогичную по функции формулу подсмотрел у Serge_007,

В обоих случаях столбец «D» — постоянно прописывается в формуле и не меняется.
Возникла необходимость букве «D» задать переменное значение .
т.е. если значение ячейке «А1″=4, тогда обращение должно быть к «D12»
если «А1″=7 тогда обращение к ячейке G12
Другими словами: адрес столбца должен зависеть от вычислений в ячейке «А1»

 

Ответить

_Boroda_

Дата: Четверг, 28.04.2011, 00:31 |
Сообщение № 11

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

немножко вариантов:
=ИНДЕКС(12:12;A1)
=СМЕЩ(A12;;A1-1)
=ДВССЫЛ(«R12C»&A1;0)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

0mega

Дата: Четверг, 28.04.2011, 05:49 |
Сообщение № 12

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


_Boroda_,
Александр,
если я правильно понял, то для формулы =ДВССЫЛ() надо использовать стиль R1C1 ?

 

Ответить

_Boroda_

Дата: Четверг, 28.04.2011, 09:16 |
Сообщение № 13

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Quote

_Boroda_,
Александр,
если я правильно понял, то для формулы =ДВССЫЛ() надо использовать стиль R1C1 ?

Да. На это указывает 0 на второй позиции
=ДВССЫЛ(«R12C»&A1;0)

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


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

0mega

Дата: Четверг, 28.04.2011, 12:06 |
Сообщение № 14

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


благодарю за консультацию.
мы , уж, лучше с ИНДЕКСом и в обычном стиле

 

Ответить

0mega

Дата: Четверг, 28.04.2011, 14:52 |
Сообщение № 15

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


я понял как раз наоборот. спасибо за подсказку.
Есть пара вопросов
=ИНДЕКС(12:12;A1)
Почему надо указывать всю строку? Разве адрес 12;А1 — это не одно и тоже ?
Пытаюсь формулу «заточить» под себя. Вместо 12-ой строки — указываю строку с формулой.
т.е. мне надо вытащить значение из столбца А1, а строчка совпадает с той где находится формула
=ИНДЕКС(строка();A1) — машина на меня ругается
=ИНДЕКС(строка():Строка();A1) — а на такую формулу ругается еще больше

Сообщение отредактировал 0megaЧетверг, 28.04.2011, 14:53

 

Ответить

Serge_007

Дата: Четверг, 28.04.2011, 15:18 |
Сообщение № 16

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (0mega)

=ИНДЕКС(строка();A1) — машина на меня ругается

Из массива в одну строку Вы пытаетесь получить строку 4.


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Serge_007

Дата: Четверг, 28.04.2011, 16:41 |
Сообщение № 17

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (_Boroda_)

Это не важно, если нет строки — ищет по столбцу
=ИНДЕКС(12:12;A1) работает нормально

Саш, поставь в А1 (при =ИНДЕКС(СТРОКА();A1)) что-либо кроме пусто или 1.
А =ИНДЕКС(12:12;A1) действительно работает нормально.


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

0mega

Дата: Четверг, 28.04.2011, 17:40 |
Сообщение № 18

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


Quote (_Boroda_)

…потом копируйте в нужную. 12:12 изменится на ту строку, в которой формула.

Нет, нет нет …
так я не хочу .
я лентяй от рождения. две строки — эт я еще могу себе позволить. Все что больше 2-х должна делать машина.
В файле я подробно расписал свои желания

Сообщение отредактировал 0megaЧетверг, 28.04.2011, 17:41

 

Ответить

Serge_007

Дата: Четверг, 28.04.2011, 17:44 |
Сообщение № 19

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Code

=ИНДЕКС($A$1:$I$15;СТРОКА();$C$5)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

0mega

Дата: Четверг, 28.04.2011, 19:24 |
Сообщение № 20

Группа: Проверенные

Ранг: Ветеран

Сообщений: 627


Репутация:

34

±

Замечаний:
0% ±


Сергей, благодарю.

К сообщению приложен файл:

1113964.png
(91.0 Kb)

Сообщение отредактировал 0megaЧетверг, 28.04.2011, 19:25

 

Ответить

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

Содержание

  1. Свойство Range.Address (Excel)
  2. Синтаксис
  3. Параметры
  4. Примечания
  5. Пример
  6. Поддержка и обратная связь
  7. Ссылки на ячейки и диапазоны с помощью нотации A1
  8. Поддержка и обратная связь
  9. VBA Excel. Ячейки (обращение, запись, чтение, очистка)
  10. Обращение к ячейке по адресу
  11. Обращение к ячейке по индексу
  12. Обращение к ячейке по имени
  13. Запись информации в ячейку
  14. excel-vba Диапазоны и ячейки
  15. Синтаксис
  16. замечания
  17. Создание диапазона
  18. Способы обращения к одной ячейке
  19. Сохранение ссылки на ячейку переменной
  20. Смещение недвижимости
  21. Как перемещать диапазоны (по горизонтали по вертикали и наоборот)
  22. Главные свойства Range и Cells
  23. Краткое руководство по диапазонам и клеткам
  24. Введение
  25. Важное замечание
  26. Свойство Range
  27. Свойство Cells рабочего листа
  28. Использование Cells и Range вместе
  29. Свойство Offset диапазона
  30. Использование диапазона CurrentRegion
  31. Использование Rows и Columns в качестве Ranges
  32. Использование Range вместо Worksheet
  33. Чтение значений из одной ячейки в другую
  34. Использование метода Range.Resize
  35. Чтение Value в переменные
  36. Как копировать и вставлять ячейки
  37. Чтение диапазона ячеек в массив
  38. Пройти через все клетки в диапазоне
  39. Форматирование ячеек
  40. Основные моменты

Свойство Range.Address (Excel)

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

Синтаксис

выражение.Адрес (RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

выражение: переменная, представляющая объект Range.

Параметры

Имя Обязательный или необязательный Тип данных Описание
RowAbsolute Необязательный Variant Значение True, чтобы возвратить часть строки ссылки в качестве абсолютной ссылки. Значение по умолчанию — True.
ColumnAbsolute Необязательный Variant Значение True, чтобы возвратить часть столбца ссылки в качестве абсолютной ссылки. Значение по умолчанию — True.
ReferenceStyle Необязательный XlReferenceStyle Стиль ссылки. Значение по умолчанию — xlA1.
External Необязательный Variant Значение True, чтобы вернуть внешнюю ссылку. Значение False, чтобы вернуть локальную ссылку. Значение по умолчанию — False.
RelativeTo Необязательный Variant Если RowAbsolute и ColumnAbsolute имеют значение False, а ReferenceStylexlR1C1, необходимо включить начальную точку для относительной ссылки. Этот аргумент является объектом Range, определяющим начальную точку.

ПРИМЕЧАНИЕ. Тестирование с помощью Excel VBA 7.1 показывает, что явная начальная точка необязательна. По умолчанию отображается ссылка на $A$1.

Примечания

Если ссылка содержит более одной ячейки, аргументы RowAbsolute и ColumnAbsolute применяются ко всем строкам и столбцам.

Пример

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Ссылки на ячейки и диапазоны с помощью нотации A1

Ссылаться на ячейку или диапазон ячеек в стиле ссылки A1 с помощью свойства Range . Следующая подпрограмма изменяет формат ячеек A1:D5 на полужирный.

В следующей таблице показаны некоторые ссылки в стиле A1 с помощью свойства Range .

Reference Смысл
Range(«A1») Ячейка A1
Range(«A1:B5») Ячейки от A1 до B5
Range(«C5:D9,G9:H16») Выбор нескольких областей
Range(«A:A») Столбец A
Range(«1:1») Строка 1
Range(«A:C») Столбцы от A до C
Range(«1:5») Строки с 1 по 5
Range(«1:1,3:3,8:8») Строки 1, 3 и 8
Range(«A:A,C:C,F:F») Столбцы A, C и F

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

VBA Excel. Ячейки (обращение, запись, чтение, очистка)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

excel-vba
Диапазоны и ячейки

Синтаксис

  • Set — оператор, используемый для установки ссылки на объект, например, на диапазон
  • Для каждого — оператор, используемый для прокрутки каждого элемента в коллекции

замечания

Обратите внимание, что имена переменных r , cell и другие могут быть названы, как вам нравится, но должны быть названы соответствующим образом, чтобы код был более понятным для вас и других.

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

Диапазон нельзя создать или заполнить так же, как строка:

Считается лучшей практикой, чтобы квалифицировать ваши ссылки , поэтому в дальнейшем мы будем использовать один и тот же подход.
Подробнее о создании объектных переменных (например, Range) в MSDN . Подробнее о Set Statement на MSDN .

Существуют разные способы создания одного и того же диапазона:

Обратите внимание на пример, что ячейки (2, 1) эквивалентны диапазону («A2»). Это происходит потому, что Cells возвращает объект Range.
Некоторые источники: Chip Pearson-Cells Within Ranges ; Объект диапазона MSDN ; John Walkenback — ссылка на диапазоны в коде VBA .

Также обратите внимание, что в любом случае, когда число используется в объявлении диапазона, а сам номер находится вне кавычек, например Range («A» & 2), вы можете поменять это число на переменную, содержащую целое число / долго. Например:

Если вы используете двойные циклы, ячейки лучше:

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

Самый простой способ ссылаться на одну ячейку на текущем листе Excel — это просто вставить форму А1 в ссылку в квадратных скобках:

Обратите внимание, что квадратные скобки — это просто удобный синтаксический сахар для метода Evaluate объекта Application , так что технически это идентично следующему коду:

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

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

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

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

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

Сохранение ссылки на ячейку переменной

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

Почему требуется ключевое слово Set ? Set указывает Visual Basic, что значение в правой части = означает объект.

Смещение недвижимости

  • Смещение (строки, столбцы) — оператор, используемый для статической ссылки на другую точку из текущей ячейки. Часто используется в циклах. Следует понимать, что положительные числа в разделе строк перемещаются вправо, поскольку негативы перемещаются влево. С положительными позициями столбцов вниз и негативы двигаются вверх.

Этот код выбирает B2, помещает туда новую строку, затем перемещает эту строку обратно в A1 после очистки B2.

Как перемещать диапазоны (по горизонтали по вертикали и наоборот)

Примечание. Copy / PasteSpecial также имеет параметр «Вставить транспонирование», который также обновляет формулы транспонированных ячеек.

Источник

Главные свойства Range и Cells

Это большая ошибка — теоретизировать, прежде чем кто-то получит данные

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

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

Краткое руководство по диапазонам и клеткам

Функция Принимает Возвращает Пример Вид
Range адреса
ячеек
диапазон
ячеек
.Range(«A1:A4») $A$1:$A$4
Cells строка,
столбец
одна
ячейка
.Cells(1,5) $E$1
Offset строка,
столбец
диапазон .Range(«A1:A2»)
.Offset(1,2)
$C$2:$C$3
Rows строка (-и) одна или
несколько
строк
.Rows(4)
.Rows(«2:4»)
$4:$4
$2:$4
Columns столбец
(-цы)
один или
несколько
столбцов
.Columns(4)
.Columns(«B:D»)
$D:$D
$B:$D

Введение

Это третья статья, посвященная трем основным элементам VBA. Этими тремя элементами являются Workbooks, Worksheets и Ranges/Cells. Cells, безусловно, самая важная часть Excel. Почти все, что вы делаете в Excel, начинается и заканчивается ячейками.

Вы делаете три основных вещи с помощью ячеек:

  1. Читаете из ячейки.
  2. Пишите в ячейку.
  3. Изменяете формат ячейки.

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

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

Давайте начнем с самого простого метода доступа к ячейкам — с помощью свойства Range рабочего листа.

Важное замечание

Я недавно обновил эту статью, сейчас использую Value2.

Вам может быть интересно, в чем разница между Value, Value2 и значением по умолчанию:

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

Лучше использовать Value2, поскольку он всегда будет возвращать фактическое значение ячейки.

Свойство Range

Рабочий лист имеет свойство Range, которое можно использовать для доступа к ячейкам в VBA. Свойство Range принимает тот же аргумент, что и большинство функций Excel Worksheet, например: «А1», «А3: С6» и т.д.

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

Как видно из кода, Range является членом Worksheets, которая, в свою очередь, является членом Workbook. Иерархия такая же, как и в Excel, поэтому должно быть легко понять. Чтобы сделать что-то с Range, вы должны сначала указать рабочую книгу и рабочий лист, которому она принадлежит.

В оставшейся части этой статьи я буду использовать кодовое имя для ссылки на лист.

Следующий код показывает приведенный выше пример с использованием кодового имени рабочего листа, т.е. Лист1 вместо ThisWorkbook.Worksheets («Лист1»).

Вы также можете писать в несколько ячеек, используя свойство Range

Свойство Cells рабочего листа

У Объекта листа есть другое свойство, называемое Cells, которое очень похоже на Range . Есть два отличия:

  1. Cells возвращают диапазон только одной ячейки.
  2. Cells принимает строку и столбец в качестве аргументов.

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

Вам должно быть интересно, когда использовать Cells, а когда Range. Использование Range полезно для доступа к одним и тем же ячейкам при каждом запуске макроса.

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

Использование свойства Cells полезно, если вы обращаетесь к ячейке по номеру, который может отличаться. Проще объяснить это на примере.

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

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

Чтобы использовать Range здесь, потребуется преобразовать эти значения в ссылку на буквенно-цифровую ячейку, например, «С1». Использование свойства Cells позволяет нам предоставить строку и номер столбца для доступа к ячейке.

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

Использование Cells и Range вместе

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

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

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

В примере я использовал Debug.Print для печати в Immediate Window. Для просмотра этого окна выберите «View» -> «в Immediate Window» (Ctrl + G).

Свойство Offset диапазона

У диапазона есть свойство, которое называется Offset. Термин «Offset» относится к отсчету от исходной позиции. Он часто используется в определенных областях программирования. С помощью свойства «Offset» вы можете получить диапазон ячеек того же размера и на определенном расстоянии от текущего диапазона. Это полезно, потому что иногда вы можете выбрать диапазон на основе определенного условия. Например, на скриншоте ниже есть столбец для каждого дня недели. Учитывая номер дня (т.е. понедельник = 1, вторник = 2 и т.д.). Нам нужно записать значение в правильный столбец.

Сначала мы попытаемся сделать это без использования Offset.

Как видно из примера, нам нужно добавить строку для каждого возможного варианта. Это не идеальная ситуация. Использование свойства Offset обеспечивает более чистое решение.

Как видите, это решение намного лучше. Если количество дней увеличилось, нам больше не нужно добавлять код. Чтобы Offset был полезен, должна быть какая-то связь между позициями ячеек. Если столбцы Day в приведенном выше примере были случайными, мы не могли бы использовать Offset. Мы должны были бы использовать первое решение.

Следует иметь в виду, что Offset сохраняет размер диапазона. Итак .Range («A1:A3»).Offset (1,1) возвращает диапазон B2:B4. Ниже приведены еще несколько примеров использования Offset.

Использование диапазона CurrentRegion

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

Строка или столбец пустых ячеек означает конец CurrentRegion.

Вы можете вручную проверить CurrentRegion в Excel, выбрав диапазон и нажав Ctrl + Shift + *.

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

Range («B3»). CurrentRegion вернет диапазон B3:D14

Range («D14»). CurrentRegion вернет диапазон B3:D14

Range («C8:C9»). CurrentRegion вернет диапазон B3:D14 и так далее

Как пользоваться

Мы получаем CurrentRegion следующим образом

Только чтение строк данных

Прочитать диапазон из второй строки, т.е. пропустить строку заголовка.

Удалить заголовок

Удалить строку заголовка (т.е. первую строку) из диапазона. Например, если диапазон — A1:D4, это возвратит A2:D4

Использование Rows и Columns в качестве Ranges

Если вы хотите что-то сделать со всей строкой или столбцом, вы можете использовать свойство «Rows и Columns» на рабочем листе. Они оба принимают один параметр — номер строки или столбца, к которому вы хотите получить доступ.

Использование Range вместо Worksheet

Вы также можете использовать Cella, Rows и Columns, как часть Range, а не как часть Worksheet. У вас может быть особая необходимость в этом, но в противном случае я бы избегал практики. Это делает код более сложным. Простой код — твой друг. Это уменьшает вероятность ошибок.

Код ниже выделит второй столбец диапазона полужирным. Поскольку диапазон имеет только две строки, весь столбец считается B1:B2

Чтение значений из одной ячейки в другую

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

В следующем примере показано, как это сделать:

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

Функция Copy копирует все, включая формат ячеек. Это тот же результат, что и ручное копирование и вставка выделения. Подробнее об этом вы можете узнать в разделе «Копирование и вставка ячеек»

Использование метода Range.Resize

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

Использование функции Resize позволяет изменить размер диапазона до заданного количества строк и столбцов.

Когда мы хотим изменить наш целевой диапазон, мы можем просто использовать исходный размер диапазона.

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

Мы можем сделать изменение размера в одну строку, если нужно:

Чтение Value в переменные

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

Для чтения текста в переменную вы используете переменную типа String.

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

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

Как копировать и вставлять ячейки

Если вы хотите скопировать и вставить диапазон ячеек, вам не нужно выбирать их. Это распространенная ошибка, допущенная новыми пользователями VBA.

Вы можете просто скопировать ряд ячеек, как здесь:

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

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

Виды вставок
xlPasteAll
xlPasteAllExceptBorders
xlPasteAllMergingConditionalFormats
xlPasteAllUsingSourceTheme
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats

Чтение диапазона ячеек в массив

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

Значение диапазона в этом примере считается вариантом массива. Это означает, что вы можете легко читать из диапазона ячеек в массив. Вы также можете писать из массива в диапазон ячеек. Если вы не знакомы с массивами, вы можете проверить их в этой статье.

В следующем коде показан пример использования массива с диапазоном.

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

Пройти через все клетки в диапазоне

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

Вы можете сделать это, используя цикл For Each, показанный в следующем коде.

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

Стандартный цикл более гибок в отношении используемого вами порядка, но он медленнее, чем цикл For Each.

Форматирование ячеек

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

Основные моменты

Ниже приводится краткое изложение основных моментов

  1. Range возвращает диапазон ячеек
  2. Cells возвращают только одну клетку
  3. Вы можете читать из одной ячейки в другую
  4. Вы можете читать из диапазона ячеек в другой диапазон ячеек.
  5. Вы можете читать значения из ячеек в переменные и наоборот.
  6. Вы можете читать значения из диапазонов в массивы и наоборот
  7. Вы можете использовать цикл For Each или For, чтобы проходить через каждую ячейку в диапазоне.
  8. Свойства Rows и Columns позволяют вам получить доступ к диапазону ячеек этих типов

Источник

excel

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

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

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

Как же Excel отличает формулы от других данных? Очень просто, по знаку равенства. Представьте, что ячейка, это некая переменная, отображающая результат вычисления. Следовательно, если приравнять ее к какому-то выражению (например, записать в ней =3+2), то результат в виде числа 5 отобразится в ячейке. А если знак равенства убрать, то в ячейке будет видно надпись 3+2. Попробуйте.

Содержание

  • 1
    Адрес ячейки Excel
  • 2
    Заставляем Excel считать
  • 3
    Относительные ссылки Excel
  • 4
    Абсолютные ссылки Excel
  • 5
    Ссылки на другие листы книги Excel


Адрес ячейки Excel

Как я уже отметил, ячейку удобно представлять как переменную (как X или Y в математике). Стало быть, записывая в ячейку данные, мы присваиваем их значение ячейке-переменной. Каждая ячейка имеет в таблице свой определенный адрес, который определяется как в шахматах по пересечению столбца и строки. Так, ячейка, расположенная на пересечении столбца В и пятой строки имеет адрес (он же ее имя) В5. Фактически это как бы переменная В5.

Это наиболее привычный нам формат адреса ячеек Excel. Но можно встретить и RC-формат, который устанавливается в настройках табличного редактора. RC расшифровывается как Row (строка) и Column (столбец). Ниже на рисунке показано, где в параметрах устанавливается (или отключается) переключение форматов ссылок. Таким образом, для той же ячейки В5 адрес в этом формате будет выглядеть как R5C2 (5-я строка и 2-й столбец). Так, с адресацией, надеюсь, разобрались.

Переключение на RC-формат


Заставляем Excel считать

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

Например, поместим в ячейки A1 и В1 числа 5 и 12 соответственно, а в ячейку С1 запишем формулу суммирования =A1+В1. Как только формула будет введена, в ячейке С1 отобразится результат — число 17. Все просто! Если поменять в ячейках A1 и В1 числа на другие, то сумма в ячейке С1 будет автоматически пересчитана.

Нужно отметить, что в формулах Excel могут использоваться различные арифметические операторы: умножения (*), деления (/), сложения (+) и вычитания (-). Если отсутствуют скобки, то их приоритет стандартный, как в математике. Тут они перечислены в порядке убывания приоритета: умножение и деление имеют более высокий приоритет, чем сложение и вычитание. Операторы с одинаковым приоритетом выполняются слева направо. Но, чтобы работая в Excel не ошибиться, можно использовать скобки, тем более, что скобки облегчают чтение и анализ формул.

Внимание! Если в формуле Excel количество закрывающих и открывающих скобок не совпадает, то Excel выдаст сообщение об ошибке и предложит вариант ее исправления.


Относительные ссылки Excel

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

Например, если взять ячейку С1, содержащую формулу =A1+В1, и скопировать в ячейку С2, то формула в последней будет =A2+В2. Если копировать по строкам дальше, то формула будет соответственно изменяться, указывая на ячейки той строки, куда выполняется копирование. Это очень удобно для расчета данных таблицы построчно.

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

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


Абсолютные ссылки Excel

Абсолютные ссылки нужны, если мы хотим указать на ячейку, местоположение которой не должно изменяться при копировании формулы. Абсолютные ссылки ячеек записываются как $A$1, A$1 или $A1. При этом знак доллара ($) указывает на то, какая часть ссылки зафиксирована. Доллар перед именем столбца фиксирует столбец (при копировании по горизонтали имя столбца меняться не будет), а доллар перед номером строки фиксирует строку (при копировании по столбцу номер строки меняться не будет). Если же знак доллара указан и перед столбцом, и перед строкой, то ссылка останется неизменной при любом копировании.

Для быстрого изменения абсолютной ссылки на относительную используется клавиша F4. Для смена типа достаточно установить текстовый курсор на какую-нибудь ссылку в созданной формуле и нажать несколько раз клавишу F4. После каждого нажатия этой клавиши тип ссылки будет циклично меняться. Например, если установить курсор на ссылку A2 в формуле =A2+В2 и нажимать F4, то она поочередно примет вид: $A$2, A$2, $A2 и опять A2. Достаточно удобно и лучше, чем вручную забивать туда знак доллара.

Чтобы лучше разобраться в различиях ссылок, давайте рассмотрим такой пример: допустим, надо получить в столбце С сумму чисел, указанных в столбцах А и В, умноженную на некоторый коэффициент, размещенный в ячейке D1 и равный 0,5.

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

Итак, вводим

=(A1+B1)*D1

После этого устанавливаем текстовый курсор на адрес ячейки D1 и нажимая на клавишу F4 делаем ссылку абсолютной — $D$1. После этого формула примет такой вид:

=(A1+B1)*$D$1

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

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


Ссылки на другие листы книги Excel

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

Например, чтобы записать в ячейку А1 (Лист 1) ссылку на ячейку А15 листа 2, надо проделать следующие действия:

  • установить курсор на ячейку А1 и ввести знак равенства;
  • выполнить щелчок на ярлыке листа «Лист 2» (выполнится переход на этот лист);
  • щелкнуть на ячейке А15 и нажать клавишу Enter;

после этого опять будет выполнен переход на Лист 1 в ячейку А15, где появится формула Excel. =Лист2!А15.

При работе в Excel редактирование формулы выполняется так же, как и редактирование текстовой строки, записанной в ячейку. Т.е. надо курсор Excel (белый крестик) установить на ячейку с формулой и выполнить двойной щелчок мышью или нажать клавишу F2. При этом в формуле появится текстовый курсор и выполняется редактирование.

Понравилась статья? Поделить с друзьями:
  • Excel переменная ссылка на файл
  • Excel переменная ссылка на лист
  • Excel переменная название листа
  • Excel переключить адресацию ячеек
  • Excel переключение между ячейками стрелками