Опубликован: 24.04.2015 | Доступ: свободный | Студентов: 146 / 0 | Длительность: 04:57:00
Лекция 2:

Основы работы в Gnumeric

2.6 Функции.

2.6.1 Селектор функций и помощник по формулам.

Для проведения математических, тригонометрических, экономических или инженерных вычислений четырех действий арифметики явно недостаточно. Поэтому все электронные таблицы имеют большое число встроенных функций, которые могут включаться в состав формул. Каждая функция имеет имя и список аргументов, которые помещаются в скобки сразу за именем функции. Могут быть функции с пустым множеством аргументов, такие как pi() или today(), а могут быть функции с неограниченным количеством аргументов (такие как sum(...) или average(...)), однако для большинства функций количество аргументов фиксировано.

Диалог выбора функции (селектор функций)

Рис. 2.52. Диалог выбора функции (селектор функций)

В зависимости от назначения и синтаксиса функции, аргументом функции может быть число, текст, дата или логическое (булево) выражение . Чаще всего в качестве аргумента (или в составе аргумента) используются адреса ячеек. В случае нескольких аргументов разделителем аргументов является точка с запятой (символ ";"). Если в качестве аргумента используется текст, то он должен быть заключен в кавычки (символ "''"). Кроме того, в аргументах функций могут использоваться другие функции и арифметические выражения (например, возможны формулы типа "=2*sin(3*A3*pi()/4)").

Для вызова селектора встроенных функций используется либо главное меню ("Вставка/Функция"), либо кнопка f(x) в панели инструментов. После этого появляется диалог выбора функции. На рис. 2.52 показан пример для логической функции if(), которая подробнее будет рассмотрена ниже.

При выборе функции сначала выбирается категория функций (в верхней части диалога), а затем – конкретная функция (в средней части диалога). В нижней части диалога приводится объяснение назначения и структуры функции. После нажатия на кнопку "OK" появляется диалог определения аргументов выбранной функции (помощник по формулам, рис. 2.53). Для приведенной в примере функции if() нужно определить три аргумента.

Составление формулы

Рис. 2.53. Составление формулы

Для определения аргументов нужно щелкнуть мышкой в поле ввода (в столбце "Функция/Аргумент", указать ячейку со значением аргумента (можно щелкнуть мышкой по нужной ячейке) и при необходимости дописать остальное. Завершается определение аргумента нажатием на <ENTER>, после чего с помощью щелчка мышкой переходим к определению следующего аргумента. По мере определения аргументов функция дописывается.

Окончательный результат построения функции if() показан на рис. 2.54. В данном случае проверяется ячейка C3. Если в ней содержится ненулевое значение, должно быть выведено сообщение "Не ноль!", в противном случай – сообщение "Ноль"

Кнопка f(x) в этом диалоге позволяет вставить функцию в качестве аргумента формируемой функции. При необходимости можно редактировать ссылки типа "Лист1!B4", превращая их в ссылки типа "B4".

После окончательного определения всех аргументов и нажатия на кнопку "ОК" можно наблюдать результат работы функции. При необходимости можно редактировать функцию либо в строке ввода по нажатию клавиши <F2>, либо снова вызвать диалог определения аргументов функции, использовав кнопку f(x), когда ячейка с результатом функции является активной.

Далее кратко рассмотрим несколько основных групп функций, а потом перейдем к конкретными примерам.

Функция if() саргументами

Рис. 2.54. Функция if() саргументами

2.6.2 Математические функции.

Gnumeric содержит около 80 встроенных математических функций. Описывать все нет необходимости (использование и особенности функций типа abs(), sin(), tan() или pi() достаточно очевидны). Приведем здесь краткое описание некоторых более редких математических функций.

Таблица 2.2. Некоторые неочевидные математические функции
Название, аргументы Назначение
atan2(b1;b2) Вычисляет арктангенс отношения b2/b1 без учета знаков аргументов.
beta(a;b) Вычисляет бета-функцию (интеграл Эйлера I рода) для положительных целых аргументов.
betaln(a;b) Вычисляет натуральный логарифм бета-функции для положительных целых аргументов.
combin(n;k) Вычисляет количество уникальных комбинаций из n по k.
expm1(x) Вычисляет exp(x)-1 с высокой точностью.
factdouble(m) Вычисляет двойной факториал положительного числа m, т.е. m!!. Если m не целое, дробная часть обрезается.
hypot(a;b;...) Вычисляет квадратный корень из суммы квадратов аргументов.
multinomial(x1;x2;...) Вычисляет отношение факториала суммы аргументов к произведению их факториалов.
quotient(a;b) Вычисляет целую часть результата деления a на b.
roman(m;тип) Преобразует натуральное число в "римскую" форму записи. Необязательный аргумент "тип" определяет вариант нотации (классический или краткий).
seriessum(X;n;m;коэффициенты) Вычисляет сумму степенного ряда вида a*X^n+b*X^{n+m}+c*X^{n+2_m}+d*X^{n+3_m...}, т.е. X – основание степени, n – начальное значение показателя степени, m- инкремент показателя степени, а коэффициенты a,b,c... - коэффициенты при каждом члене ряда, записанные в блоке ячеек таблицы.
sqrtpi(m) Вычисляет квадратный корень из m*pi() (sqrt(m*pi()).
sumsq(x1;x2;...) Вычисляет сумму квадратов аргументов.
sumx2my2(вектор1;вектор2) Вычисляет сумму разностей квадратов соответствующих элементов векторов. Вектор1 и вектор2 – блоки ячеек одинаковой длины.
sumx2py2(вектор1;вектор2) Вычисляет сумму сумм квадратов соответствующих элементов векторов.
sumxmy2( вектор1;вектор2) Вычисляет сумму квадратов разностей соответствующих элементов векторов.

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

Таблица 2.3. Логические функции в Gnumeric
Название, аргументы Назначение
false() Аргументов не имеет. Всегда выдает логическое значение "ЛОЖЬ" (FALSE).
true() Аргументов не имеет. Всегда выдает логическое значение "ИСТИНА" (TRUE).
and(условие1;условие2;...) Имеет неограниченное количество аргументов (более одного). Выдает логическое значение "ИСТИНА" (TRUE), если выполняются все условия, приведенные в аргументах. Пример синтаксиса: and(c1>0,b4=3,d2<b4), где c1, b4 и d2 – адреса ячеек.
or(условие1;условие2;...) Имеет неограниченное количество аргументов (более одного). Выдает логическое значение "ИСТИНА" (TRUE), если выполняются хотя бы одно из условий, приведенных в аргументах. Синтаксис аналогичен функции and().
not(условие) Аргументом является условие или результат работы логической функции (логическое TRUE или FALSE). Выдает логическое значение "ИСТИНА" (TRUE), если условие не выполняется или аргумент установлен в FALSE.
xor(условие1;условие2;...) Имеет неограниченное количество аргументов (более одного). Выдает логическое значение "ИСТИНА" (TRUE), если выполняется нечетное количество условий (исключающее ИЛИ).
if(условие;действие1;действие2) Проверяет условие, и если оно выполняется, производится действие1 (возможна проверка еще какого-то условия, выполнение арифметических операций или вычисление по формуле с функциями, а также вывод текста). В противном случае выполняется действие2 (с теми же особенностями).

Важным свойством функции if() является возможность использования результата работы одной функции if() в качестве аргумента другой функции if(). Однако количество таких вложений ограничивается максимально допустимой длиной текста в ячейке, а также здравым смыслом (формулы с количеством проверок условий более 7-8 крайне трудно анализировать в случае ошибок). Также в качестве условий в if() могут использоваться любые синтаксически допустимые комбинации логических функций.