Проектирование таблицы
Проектировщик должен думать об удобстве использования электронной таблицы, о возможности ее дальнейшего развития, модификации, о защите таблицы от непреднамеренного разрушения. Для этого нужно позаботиться об удобном расположении исходных данных и результатов, о выдаче понятных сообщений в случае возникновения при расчетах "нештатных ситуаций".
Постараемся на примере проиллюстрировать эти положения. Задачу будем решать поэтапно, исправляя некоторые неудачные решения, как это обычно и происходит на практике.
Пример. Вычисление элементов треугольника.
Решение.
Проект таблицы
Отведем ячейки для сторон треугольника, полупериметра, площади треугольника. В ячейках, расположенных слева от ячеек с числами и формулами, разместим обозначения величин.
Дайте листу имя "Треугольник". Введите данные, как на рисунке (Вы можете просто скопировать таблицу на рабочий лист). В ячейку В6 введите формулу
=(В2+ВЗ+В4)/2.
|
А |
B |
С |
1 |
Стороны треугольника |
||
2 |
a |
3 |
|
3 |
b |
4 |
|
4 |
c |
5 |
|
5 |
|
|
|
6 |
p |
6 |
|
7 |
|
|
|
8 |
S |
|
|
Использование имен.
Чтобы упростить ввод и восприятие формул, дадим имена ячейкам В2, ВЗ, В4, В6. Выделите блок А2:В6, дайте команду Формулы/ Имена/Создать из выделенного фрагмента. Программа предложит вариант "в столбце слева", т.е. взять в качестве имен для ячеек В2, ВЗ, В4, В6 текстовые строки (в нашем случае однобуквенные), хранящиеся в ячейках А2, A3, А4, А6. Нажмите "ОК". Теперь, выделяя ячейку В2, в окошке слева от строки формул Вы увидите не адрес В2, а имя а. Для ячейки В4 имя не с, как можно было ожидать, а c_. Это связано с тем, что имена с и г в Excel зарезервированы (с — column - столбец, г — row - строка). Поэтому Excel ввел в имя символ подчеркивания.
Введите в В8 формулу Герона =корень(р*(р-а)*(р-b)*(р-с_)).
После нажатия Enter название функции будет отображено прописными буквами. Это означает, что мы правильно набрали имя функции. Если бы не созданные имена ячеек, нам пришлось бы набрать формулу =КОРЕНЬ(В6*(В6-В2)*(В6-ВЗ)*(В6-В4)), что намного труднее для восприятия.
Форматирование ячеек.
Хотелось бы придать таблице более "читабельный" вид.
Выровняем названия величин по правому краю. Выделите блок А2:А8 и нажмите кнопку "По правому краю".
Введите длину стороны а, равную 2. Тогда S = 3,799671. Предположим, нам нужна точность три знака после запятой. Для этого выделите В8 и несколько раз нажмите кнопку "Уменьшить разрядность", пока число не приобретет нужный формат 3.800. Важно понимать, что "внутренние" вычисления выполняются с прежней точностью, но число, отображаемое в ячейке, округлено до трех десятичных знаков.
«Развитие "таблицы".
Дополним таблицу вычислением радиусов вписанной и описанной окружностей.
Создайте для ячейки В8 имя, взятое из соседней ячейки А8 (т.е. ячейка В8 должна получить имя S).
В ячейки D10 и F10 введите г и R, а в Е10 и G10 — соответствующие формулы. Наложите на эти ячейки такие же форматы, как и ранее. Для этого воспользуйтесь кнопкой Формат по образцу (на ней изображена кисть). Например, выделите B8, нажмите кнопку и "покрасьте" кистью E10.
У Вас должен получиться следующий результат.
|
А |
В |
С |
D |
Е |
F |
G |
1 |
Стороны треугольника |
|
|
|
|
||
2 |
а |
2 |
|
|
|
|
|
3 |
b |
4 |
|
|
|
|
|
4 |
с |
5 |
|
|
|
|
|
5 |
|
|
|
|
|
|
|
6 |
p |
55 |
|
|
|
|
|
7 |
|
|
|
|
|
|
|
8 |
S |
3,800 |
|
|
|
|
|
9 |
|
|
|
|
|
|
|
10 |
|
|
|
r |
0,691 |
R |
2,632 |
Исследование зависимостей.
Выделите G10 и дайте команду Формулы/Влияющие ячейки. На экране протянутся синие стрелки от ячеек, содержащих длины сторон и площадь треугольника, к ячейке G10. Исследуйте зависимости и для других ячеек. Уберите стрелки командой Убрать стрелки.
Выделите ячейку G10, а затем несколько раз нажмите кнопку Зависимые ячейки.
Задайте длину стороны а, равную 10. В ячейках с результатами появится сообщение об ошибке #ЧИСЛО!. Дело в том, что стороны 10, 4, 5 не образуют треугольника. При вычислении площади под корнем получается отрицательное число. Выделите ячейку G10 и выберите Зависимые ячейки/Источник ошибки. Вы наглядно увидите, за счет каких ячеек получен неверный результат. Уберите с экрана стрелки.
Сообщение об ошибочных данных.
Нужно переделать таблицу. Пользователь должен получать сообщение, почему не могут быть вычислены S, R и г, а в ячейках с результатами вычислений R и r ничего не должно выводиться.
Будем вычислять отдельно подкоренное выражение р*(р-а)*(р-b)*(р-с_) и определять его знак. Если оно положительно, вычисляем S, R и г. Если же нет, то в ячейке В8 выведем текстовую строку "Это не треугольник!", а в ячейках Е10 и G10 выведем пустые строки.
Перетащите мышью содержимое В8 в В7. Отредактируйте В7, убрав КОРЕНЬ. В ячейке останется формула =р*(р-а)*(р-b)*(р-c_). Теперь имя S имеет ячейка В7. Вновь дайте В8 имя S и измените ссылку для S на $В$8).
В В8 разместим формулу
=ЕСЛИ(В7>0;КОРЕНЬ(В7);"Это не треугольник!").
В Е10 разместим формулу
=ЕСЛИ(B7>0;S/p;""). Аналогично измените формулу в G10.
Скрытие строк.
В 6-й и 7-й строках расположены результаты промежуточных вычислений, видеть которые пользователю таблицы ни к чему. Выделите на левой адресной полосе строки 6 и 7 и в контекстном меню выберите "Скрыть". Если Вы захотите вернуть эти строки на экран, выделите 5-ю и 8-ю строки и в контекстном меню выберите "Отобразить".
Аналогично можно скрывать и показывать столбцы. Поэкспериментируйте.
Защита листа.
Чтобы предохранить таблицу от непреднамеренной порчи неопытным пользователем (вдруг он уничтожит формулу), нужно защитить рабочий лист. Но сначала нужно "объявить беззащитными" ячейки с исходными данными.
Выделите ячейки, содержащие длины сторон (В2.В4), нажмите Главная/Формат ячеек/, выберите вкладку Защита и снимите флажок Защищаемая ячейка. Дайте команду Защитить лист". Попробуйте теперь ввести данные вне диапазона В2:В4 и посмотрите реакцию Excel. Снимите защиту: Снять защиту листа.
Ограничение ввода
Разрешите пользователю вводить только положительные длины сторон треугольника (Данные/ Проверка).