
\chapter{Электронные таблицы}
\section{Компьютер это~--- вычислительная машина!}
На заре развития вычислительной техники все были уверены,
что основное занятие компьютеров~--- считать. Отголоски этого
до сих пор можно найти в фантастических рассказах тех времен и
в этимологии самого слова ``компьютер'' (англ. {\it computer} от
{\it compute}~--- вычислять).

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

Когда автор впервые столкнулся с персональными компьютерами (это было
в конце 80-х годов) электронные таблицы описывались в книгах как
такие ``волшебные таблицы''~--- вводишь туда число или текст, и они
показываются на экране, вводишь формулу, и она ``автомагически''
заменяется на результат ее вычисления. За прошедшие десять лет 
магии в электронных таблицах поубавилось, но своей способности вычислять
они не потеряли.

Поэтому электронную таблицу нужно рассматривать в первую очередь не
как инструмент для оформления, а как ``мельницу для чисел''.

Для каких задач применимы электронные таблицы? Практически для любых,
где надо иметь дело с табличными данными среднего размера. 
Если вам надо посчитать некую формулу три раза, то, возможно это
действительно быстрее сделать на калькуляторе. Если ее надо посчитать
100000 раз, то нужно что-то посложнее таблицы, база данных, или даже
специально написанная программа. А если надо посчитать формулу для 
10--1000 разных исходных данных, то это задача как раз для электронных
таблиц.

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

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

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

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

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

В некоторых случаях нужно использовать в качестве данных не одну ячейку,
а сразу много, например для того, чтобы посчитать среднее значение по
колонке таблицы. С точки зрения электронной таблицы, вычисление среднего
это такая же математическая функция как квадратный корень или синус.
Только ее аргументом является не число, а {\it блок} таблицы. 

Записывается это как ``A1:A10'' или ``A1..A10''. Для того чтобы указать
блок курсором нужно указать первую ячейку, потом нажать специальную
клавишу (обычно ``.'' или {\bf Tab}) и ``расширить'' курсор с помощью
клавиш со стрелками.

\section{Копирование формул}
Электронные таблицы были бы практически бессмысленны, если бы для
таблицы из ста строк каждую формулу приходилось бы вводить сто раз.
Формулы можно копировать. При этом ссылки на соседние ячейки будут
соответствующим образом модифицированы. Если у вас в ячейке B1 записана
формула +A1+1, то это означает ``прибавить единицу к значению ячейки
слева от данной'', и после копирования в ячейку B10 формула будет
выглядеть как +A10+1.

\subsection{копирование это перемещение или размножение?}
При работе с текстом вы привыкли, что копирование выглядит так: вырезаем
(или копируем) кусок текста в буфер (clipboard), ставим курсор на место,
куда мы хотим скопировать, и говорим <<вставить>>. Некоторые электронные
таблицы, например Excel или StarCalc, используют эту же модель
копирования.

Но в электронных таблицах это не всегда удобно. Из-за наличия в формулах
ссылок на другие ячейки появляются две разновидности вырезания и
вклейки~--- либо мы просто хотим подвинуть блок ячеек, чтобы освободить
место для других целей, либо мы хотим размножить формулу. В старых
таблицах, например Quattro Pro для DOS для этой цели использовались
разные команды~--- Copy (размножить) и Move (переместить). В таблицах,
использующих метафору вырезания и вклейки обычно для расчистки места
приходится использовать явную команду вставки блока ячеек.

\subsection{Ссылки в формулах - абсолютные и относительные}
Далеко не всегда удобно рассматривать ссылки на другие ячейки как "на
столько-то вправо и на столько-то вверх". В формулах зачастую приходится
использовать коэффициенты, единые для всего столбца, или для всей
таблицы. Допустим, мы хотим пересчитать результаты химического анализа
нескольких элементов из мг/л в моль/л. Естественным решением является
вписать молярную массу элемента в первую строку соответсвтующей колонки
и сказать: <<раздели число в этой ячейке на первое число в том же
столбце>>. Для этого применяются абсолютные ссылки. Если перед буквой
колонки или номером строки указать знак доллара, то эта координата не
будет меняться при копировании. 

Например, допустим что в ячейке C1 у нас
находится текущий курс доллара, а в ячейках от B2 до B100 цены различных
товаров. Вписав в ячейку C2 формулу B2*C\$1 и скопировав ее на весь
столбец от C3 до C100 мы получим столбец рублевых цен. Если завтра курс
доллара изменится, достаточно поменять одно число в ячейке C1 и цены
опять правильные. 

На этом магия не закончилась. Вписываем в ячейку D1 курс украинской
гривны к рублю и скопировав формулу из C2 в D2..D100 получаем
прайс-лист для киевского отделения фирмы.
Ссылка на колонку у нас была относительная, поэтому при копировании она
изменилась. Единственное, что не нравится в этой ситуации, это то, что
для цен в гривнах пересчет выполняется два раза. Ведь ячейка D2 у нас
содержит формулу C2*D\$1. 

Избежать этого можно было бы, использовав в ячейке C2 формулу
\$B2/C\$1. Тогда сколько бы разных валют мы не использовали, курсы в
первой строке должны быть относительно одной-единственной, той, цены в
которой приведены в столбце B.


\section{Поиск в таблице}

\section{Табличные функции}
\section{Advanced Math}
\section{Число и график}
\section{Таблицы в вашей статье}
