Куда бы вы ни перетаскивали ячейку с формулой, относительный адрес ячейки радиуса будет меняться и указывать именно на ячейку R2C1
. Точно такой же результат вы получите, изменив положение ячейки R2C1 (ячейки со значением радиуса). Куда бы вы ни переместили эту ячейку, формулы по-прежнему будут возвращать верный результат вычислений, но относительный адрес ячейки со значением радиуса в них будет меняться. Относительный адрес в формуле как бы «цепляется» к ячейке, на которую он ссылается, и не позволяет разорвать эту связь при любом перемещении ячейки формулы или ячеек данных.Приведу пример, который наглядно покажет преимущества относительного адреса перед абсолютным. Мы создадим таблицу вычислений площади круга в зависимости от радиуса, чтобы увидеть несколько значений площади при разных радиусах.
1. Верните данные с радиусом и формулой на свои места (соответственно в ячейки R2C1
и R2C2).2. Выделите ячейку R2C2
.3. Скопируйте ее содержимое в буфер обмена. Для этого нажмите кнопку Копировать
на вкладке Главная или сочетание клавиш Ctrl+Insert.4. Выделите ячейку R3C2
.5. Нажав и удерживая клавишу Shift
, нажимайте клавишу Стрелка вниз, пока не выделите диапазон до ячейки R10C2.6. Вставьте содержимое буфера обмена в выделенный диапазон – нажмите кнопку Вставить
на вкладке Главная или сочетание клавиш Shift+Insert. В ячейках R3C2−R10C2 появятся нули.7. Если вы щелкнете кнопкой мыши на любой из ячеек диапазона R3C2
−R10C2 и посмотрите на строку формул, то увидите одну и ту же формулу =3,14*RC[-1]^2.8. В ячейки R2C1
−R10C1 введите различные числа, например от 1 до 9 (можете использовать инструмент автозаполнения).В ячейках R2C2
−R10C2 появились разные значения площади круга (рис. 6.3).Рис. 6.3.
В ячейках R2C2−R10C2 содержится одна и та же формулаКаждая формула возвращает результат вычисления в зависимости от радиуса, указанного в ячейке слева. Почему? Ответ прост: в формуле используется относительный адрес, который ссылается не на ячейку R2C1
, а на ячейку RC[-1], то есть ячейку, расположенную в той же строке столбцом левее. Если бы в формулах диапазона R2C2−R10C2 использовался абсолютный адрес ячейки R2C1, мы бы получили одинаковые результаты во всех ячейках, поскольку значение радиуса для всех формул бралось бы из одной и той же ячейки. В то же время, если бы понадобилось «размножить» такие же формулы с прямым адресом на целый диапазон, вам пришлось бы в каждой формуле править абсолютный адрес, чтобы указать на ячейку слева.СОВЕТ
Порядок вычисления в формулах
Чтобы формула выдавала верный результат, необходимо учитывать порядок вычисления в ней. В этом нет ничего сложного, главное – проявлять внимательность при расстановке знаков в формуле.
Для следующего примера создайте таблицу, изображенную на рис. 6.4.
Рис. 6.4.
Таблица для примера порядка вычисленияДопустим, нам нужно сумму содержимого ячеек R1C1
и R1C2 умножить на содержимое ячейки R1C3 и вывести результат в ячейку R2C4.Для этого в ячейке R2C4
необходимо создать формулу.1. Выделите ячейку R2C4
.2. Введите знак =.
3. Щелкните кнопкой мыши на ячейке R1C1
, введите знак + и щелкните кнопкой мыши на ячейке R1C2.4. Введите знак умножения (*) и щелкните кнопкой мыши на ячейке R1C3
.5. Нажмите клавишу Enter
. Ячейка R2C4 выдаст вам результат 310. Это неверный результат.Попробуем разобраться, почему так получилось. Тот, кто хорошо помнит математику со школы, поймет сразу. Дело в том, что программа Excel при совершении арифметических операций использует элементарные математические правила. В математике сначала производятся операции умножения и деления, а затем – сложения и вычитания. Наша формула сначала умножила содержимое ячейки R1C2
на значение ячейки R1C3, а затем сложила этот результат с содержимым ячейки R1C1, что и привело к неверному результату.Чтобы наша формула считала правильно, необходимо сумму ячеек R1C1
и R1C2 заключить в скобки. Операции в скобках в математике имеют приоритет, то есть сначала выполняются вычисления в скобках, а потом – за их пределами.1. Внесите коррективы в строку формул. Исправленная формула должна выглядеть следующим образом: =(R[-1]C[-3]+R[-1]C[-2])*R[-1]C[-1]
.