Куда бы вы ни перетаскивали ячейку с формулой, относительный адрес ячейки радиуса будет меняться и указывать именно на ячейку 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].