Мастер функций в программе Microsoft Excel. Находим сумму столбцов или ячеек

Функции – это формулы (встроенные подпрограммы для выполнения тех или иных операций), определенные заранее и зависящие от величин, называемых аргументами. Функции позволяют выполнять как простые, так и сложные вычисления. Функция начинается со знака «=» равенства, за которым следует ее имя, открывающая скобка, список аргументов, разделенных запятыми, закрывающая скобка.

Любую функцию можно вызвать тремя способами:

§ написав в строку ввода после знака «=» имя функции и список аргументов (список аргументов заключается в круглые скобки);

§ с помощью кнопки мастера функций в начале строки ввода;

§ командой Формулы /Библиотека функций/ , которая также вызывает мастер функций.

Математические функции Excel условно можно подразделить на: простейшие, функции округления, специфические, функции для операций с матрицами.

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

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

Задача 1.

Рассчитайте выручку от проката машин на 4 часа, 1 день, одну неделю.

1. Составьте таблицу следующего вида. Введите в таблицу заголовок и сохраните в папке Мои документы под именем Функции.xlsx.


2. Выделите ячейки B5:G5.

3. Выполните щелчок на кнопке Автосумма на вкладке Главная/
Редактирование/
.

4. Скопируйте формулу из ячейки G5 в ячейки G6:G7.

5. Рассчитайте выручку от проката машин за май.

6. Скопируйте формулу из ячейки B8 в ячейки C8:G8.

7. Рассчитайте выручку от проката машин в процентах. Для этого выполните:

· установите курсор на ячейку H5;

· наберите формулу =G5/G8 и, не нажимая клавишу Enter, нажмите клавишу F4. Формула примет вид =G5/$G$8, то есть относительная ссылка на ячейку G8 заменится на абсолютную $G$8 (не меняющуюся при копировании формулы в другие ячейки);

· нажмите клавишу Enter;

· с копируйте эту формулу до ячейки H8.

Внимание! Формулы можно копировать в другие ячейки. При этом в зависимости от типа ссылок, входящих в копируемую формулу, осуществляется их настройка: автоматическая (для относительных ссылок) или полуавтоматическая (для частично абсолютных ссылок). Различают следующие типы ссылок:

· Относительные ссылки, например А2 или С2З, которые всегда изменяются при копировании или перемещении формулы в соответствии с её новым местоположением (при копировании в строку в ссылке на ячейку изменяется имя колонки, при копировании в столбец - номер строки, при копировании по диагонали – и имя колонки и номер строки). При копировании формулы в новую книгу и лист перед ссылкой, входящей в скопированную формулу, появляется имя книги и лист, откуда производилось копирование (STAR! лист 5!А4).

· Абсолютные ссылки, которые перед именем столбца и номером строки содержат символ $. Назначение абсолютной ссылки производится следующим образом: в строке ввода перед ссылкой устанавливается курсор и нажимается клавиша , например $А$4. Можно сделать то же самое, вводя символ $ с клавиатуры. При копировании абсолютные ссылки остаются неизменными.

· Частично абсолютные (смешанные) ссылки, которые при копировании корректируются частично. Символ $ стоит или перед именем столбца, или перед номером строки ($R2, F$5).Например, при копировании формулы, содержащей частично абсолютную ссылку $F5, сохраняется имя столбца F, а номер строки 5 будет изменён.

8. Графу Процент представьте в процентах, используя диалогГлавная/Число/ , числовой формат Процентный .

9. Рабочему листу, на котором находится таблица, присвойте имя
Задача1 с помощью команды Главная /Ячейки/ / Переименовать лист или найдите команду Переименовать в контекстном меню ярлычка листа. Когда имя ярлычка окажется выделенным цветом, можно будет ввести поверх старого новое имя.

Задача 2.

Определите выручку от продажи товаров на лотках и тенденцию роста доходов.

1. Составьте таблицу следующей формы на новом листе файла Функции.xlsx.

2. Рассчитайте сумму дохода за 2006, 2005 и 2004гг. Для этого:

· щелкните на ячейке E6, и в строку формул введите формулу для расчета суммы дохода за 2006г. =СУММ(D4:D6);

Сумму дохода за 2005г. найдите с помощью мастера функций. Для этого:

· установите курсор на ячейку E9;

· введите формулу используя Мастер функций : щелкните на кнопке в начале строки ввода (или командой Формулы /Библиотека функций/ ), в поле Функция щелкните на имени функции СУММ (категория Математические), нажмите кнопку , в появившемся диалогом окне в поле Число1 введите диапазон суммируемых чисел D7:D9, щелкните по кнопке ;

· сумму дохода за 2004г. самостоятельно подсчитайте в ячейке E12 любым способом.

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

3. Рассчитайте среднегодовой доход, максимальные и минимальные доходы. Можно ввести в поле ячейки формулу с описанием операции, которую требуется выполнить (СРЗНАЧ(E6;E9;E12); МАКС(D4:D12); МИН(D4:D12)), или использовать окно мастера функций, выбрав соответствующую функцию в меню Формулы /Библиотека функций/ ,.

4. Определите ранг (номер) элемента в общей совокупности. Для этого в ячейку C4 введите формулу =РАНГ($D4;$D$4:$D$12), где D4 – содержит число, для которого определяется ранг, а D4:D12 – массив чисел, среди которых определяется ранг.

5. Скопируйте формулу в ячейки C5:C12. Сохраните таблицу.

6. Рабочему листу на котором находится таблица, присвойте имя
Задача2 .

Задача 3.

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

1. Составьте таблицу следующей формы.

2. В ячейку B9 введите формулу =ОКРУГЛ(СРЗНАЧ(B5:B7);0).

3. В ячейку C5 введите формулу =ABS(B5-$B$9). Скопируйте формулу из ячейки C5 в ячейки C6:C7.

4. В ячейку D5 введите формулу =СТЕПЕНЬ(С5;2). Скопируйте формулу из ячейки D5 в ячейки D6:D7.

5. В ячейку D10 введите формулу =ОКРУГЛ(СРЗНАЧ(D5:D7);0).

6. В ячейку D11 введите формулу =ОКРУГЛ(КОРЕНЬ(D10);0).

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

8. В ячейку D10 введите формулу =ДИСПР(B5:B7).

9. В ячейку D11 введите формулу =СТАНДОТКЛОНП(B5:B7).

10. Сохраните таблицу. Рабочему листу, на котором находится таблица, присвойте имя Задача3 .

Задача 4. (Простая функция ЕСЛИ)

Найдите в списке сотрудников тех, у кого имеется задолженность по потребительскому кредиту, и удержите с них в счет погашения кредита 10% от начисленной им суммы.

1.
Разработайте таблицу Задолженность по кредиту на новом листе рабочей книги Функции.xlsx в соответствие с рисунком (при необходимости добавьте в книгу новый лист командой Главная/ Ячейки/ /Вставить лист ).

2. В ячейку E3 введите логическую функцию, которая будет иметь следующий вид:

ЕСЛИ (С3 > 0; В3 * 0,1;" - ")

Если задолженность по потребительскому кредиту больше нуля, то необходимо удержать 10% (0,1) с начисленной суммы, в противном случае в ячейке вывести прочерк.

3. Скопируйте формулу на ячейки E4:E8.

4. Проанализируйте результаты в диапазоне E3:E8.

5. Сохраните лист с таблицей под именем Задача4 .

Задача 5. (Логическая функция И )

Найдите в списке сотрудников, имеющих задолженности по потребительскому кредиту и кредиту на жилищное строительство и удержите от начисленной им суммы 20%. Используйте для расчета логическую функциюИ , которая входит в состав функции ЕСЛИ .

1. Скопируйте таблицу Задолженность по кредиту с листа Задача4 на новый лист текущей книги.

ЕСЛИ (И (С3 > 0; D3 >0); В3 * 0,2; " - ")

Удержано .

Задача5 .

Задача 6 . (Логическая функция ИЛИ )

Найдите в списке сотрудников, имеющих задолженности либо по потребительскому кредиту, либо по кредиту на жилищное строительство, либо по обоим видам кредита сразу, и удержите с них в счет погашения кредита 10% от начисленной им суммы. Используйте для расчета логическую функцию ИЛИ , в сочетании с функцией ЕСЛИ .

1. Скопируйте таблицу Задолженность по кредиту с листа Задача4 или с листа Задача5 на новый лист текущей книги.

2. Очистите диапазон ячеек Е3:Е8.

3. В ячейке Е3 рассчитайте удержания по кредитам по формуле:

ЕСЛИ (ИЛИ (С3 > 0; D3 >0); В3 * 0,1; " - ")

Если одновременно задолженности по потребительскому кредиту и кредиту на жилищное строительство больше нуля, то необходимо удержать 20% (0,2) с начисленной суммы, в противном случае вывести прочерки.

4. Скопируйте формулу на ячейки E4:E8.

5. Проанализируйте результаты в колонке Удержано .

6. Сохраните лист с таблицей под именем Задача6 .

Задача 7 . (Вложенные логические функции ЕСЛИ )

Найдите в списке сотрудников, у которых имеются одновременно задолженности по обоим видам кредита, и удержите от начисленной суммы 20% в счет погашения кредитов. С остальных работников, имеющих задолженность по какому-либо одному виду кредита, удержать 10% от начисленной суммы. Работникам, не имеющим задолженности по кредиту, в графе Удержано проставьте «нет».

1. Скопируйте таблицу Задолженность по кредиту с листа Задача4 , Задача5 или Задача6 на новый лист текущей книги.

2. Очистите диапазон ячеек Е3:Е8.

3. В ячейке Е3 рассчитайте удержания по кредитам по формуле:

ЕСЛИ (И (С3 > 0; D3 >0); В3 * 0,2; ЕСЛИ (И (С3 = 0; D3 =0); "нет"; В3 * 0,1))

Если одновременно задолженности по потребительскому кредиту и кредиту на жилищное строительство больше нуля, то необходимо удержать 20% от начисленной суммы, если обе задолженности одновременно равны нулю, то необходимо вывести «нет», в противном случае удержать 10% от начисленной суммы.

4. Скопируйте формулу на ячейки E4:E8.

5. Проанализируйте результаты в колонке Удержано .

6. Сохраните лист с таблицей под именем Задача7 .

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

Задача 8 .

В приведенной ниже таблицерассчитайте возраст сотрудников организации и начислите премию юбилярам.

1. Добавьте в файл Функции.xlsx новый лист.

2.
Составьте таблицу следующего вида.

3. Столбец Порядковый номер заполните числами с 1 по 14, используя автозаполнение.

4. В ячейках D5:D18 создайте формулу для вычисления возраста студентов, используя функцию СЕГОДНЯ и математическую функцию ЦЕЛОЕ.

Функция Excel - это заранее определенная формула, которая работает с одним или несколькими значениями и возвращает результат.

Наиболее распространенные функции Excel являются краткой записью часто используемых формул.

Например функция =СУММ(А1:А4) аналогична записи =А1+А2+А3+А4.


А некоторые функции выполняют очень сложные вычисления.


Каждая функция состоит из имени и аргумента .


В предыдущем случае СУММ - это имя функции , а А1:А4 - аргумент . Аргумент заключается в круглые скобки.

Т.к. функция суммы используется наиболее часто, то на панель инструментов "Стандартная" вынесена кнопка "Автосумма".

Введите в ячейки А1, А2, А3 произвольные числа. Активизируйте ячейку А4 и нажмите кнопку автосуммы. Результат показан ниже.



Нажмите клавишу ввода. В ячейку А4 будет вставлена формула суммы ячеек А1..А3. Кнопка автосуммы снабжена выпадающим списком, из которого можно выбрать другую формулу для ячейки.



Для выбора функции служит кнопка "Вставка функции" в строке формул. При ее нажатии появляется следующее окно.



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

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

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



По умолчанию Microsoft Excel не распознает заголовки в формулах. Чтобы использовать заголовки в формулах, выберите команду Параметры в меню Сервис. На вкладке Вычисления в группе Параметры книги установите флажок Допускать названия диапазонов.


При обычной записи формула в ячейке В6 выглядела бы так: =СУММ(В2:В4).


При использовании заголовков формула будет выглядеть так: =СУММ(Кв 1).


Необходимо знать следующее:

  • Если формула содержит заголовок столбца/строки, в котором она находится, то Excel считает, что вы хотите использовать диапазон ячеек, расположенных ниже заголовка столбца таблицы (или справа от заголовка строки);
  • Если формула содержит заголовок столбца/строки, отличного от того, в котором она находится, Excel считает, что вы хотите использовать ячейку на пересечении столбца/строки с таким заголовком и строки/столбца, где расположена формула.
  • При использовании заголовков можно указать любую ячейку таблицы с помощью пересечения диапазонов. Например, для ссылки на ячейку С3 в нашем примере можно использовать формулу =Строка2 Кв 2 . Обратите внимание на пробел между заголовками строки и столбца.
  • Формулы, содержащие заголовки, можно копировать и вставлять, при этом Excel автоматически настраивает их на нужные столбцы и строки. Если будет произведена попытка скопировать формулу в неподходящее место, то Excel сообщит об этом, а в ячейке выведет значение ИМЯ? . При смене названий заголовков, аналогичные изменения происходят и в формулах.

Для чего нужны функции в C?

Функции в Си применяются для выполнения определённых действий в рамках общей программы. Программист сам решает какие именно действия вывести в функции. Особенно удобно применять функции для многократно повторяющихся действий.

Простой пример функции в Cи

Пример функции в Cи:

#include #include int main(void) { puts("Functions in C"); return EXIT_SUCCESS; }

Это очень простая программа на Си. Она просто выводит строку «Functions in C». В программе имеется единственная функция под названием main. Рассмотрим эту функцию подробно. В заголовке функции, т.е. в строке

int – это тип возвращаемого функцией значения;

main - это имя функции;

(void) - это перечень аргументов функции. Слово void указывает, что у данной функции нет аргументов;

return – это оператор, который завершает выполнение функции и возвращает результат работы функции в точку вызова этой функции;

EXIT_SUCCESS - это значение, равное нулю. Оно определено в файле stdlib.h;

часть функции после заголовка, заключенная в фигурные скобки

{
puts("Functions in C");
return EXIT_SUCCESS;
}

называют телом функции.

Итак, когда мы работаем с функцией надо указать имя функции, у нас это main, тип возвращаемого функцией значения, у нас это int, дать перечень аргументов в круглых скобках после имени функции, у нас нет аргументов, поэтому пишем void, в теле функции выполнить какие-то действия (ради них и создавалась функция) и вернуть результат работы функции оператором return. Вот основное, что нужно знать про функции в C.

Как из одной функции в Cи вызвать другую функцию?

Рассмотрим пример вызова функций в Си:

/* Author: @author Subbotin B.P..h> #include int main(void) { puts("Functions in C"); int d = 1; int e = 2; int f = sum(d, e); printf("1 + 2 = %d", f); return EXIT_SUCCESS; }

Запускаем на выполнение и получаем:

В этом примере создана функция sum, которая складывает два целых числа и возвращает результат. Разберём подробно устройство этой функции.

Заголовок функции sum:

int sum(int a, int b)

здесь int - это тип возвращаемого функцией значения;

sum - это имя функции;

(int a, int b) - в круглых скобках после имени функции дан перечень её аргументов: первый аргумент int a, второй аргумент int b. Имена аргументов являются формальными, т.е. при вызове функции мы не обязаны отправлять в эту функцию в качестве аргументов значения перемнных с именами a и b. В функции main мы вызываем функцию sum так: sum(d, e);. Но важно, чтоб переданные в функцию аргументы совпадали по типу с объявленными в функции.

В теле функции sum, т.е. внутри фигурных скобок после заголовка функции, мы создаем локальную переменную int c, присваиваем ей значение суммы a плюс b и возвращаем её в качестве результата работы функции опрератором return.

Теперь посмотрим как функция sum вызывается из функции main.

Вот функция main:

Int main(void) { puts("Functions in C"); int d = 1; int e = 2; int f = sum(d, e); printf("1 + 2 = %d", f); return EXIT_SUCCESS; }

Сначала мы создаём две переменных типа int

Int d = 1; int e = 2;

их мы передадим в функцию sum в качестве значений аргументов.

int f = sum(d, e);

её значением будет результат работы функции sum, т.е. мы вызываем функцию sum, которая возвратит значение типа int, его-то мы и присваиваем переменной f. В качестве аргументов передаём d и f. Но в заголовке функции sum

int sum(int a, int b)

аргументы называются a и b, почему тогда мы передаем d и f? Потому что в заголовке функций пишут формальные аргументы, т.е. НЕ важны названия аргументов, а важны их типы. У функции sum оба аргумента имеют тип int, значит при вызове этой функции надо передать два аргумента типа int с любыми названиями.

Ещё одна тонкость. Функция должна быть объявлена до места её первого вызова. В нашем примере так и было: сначала объявлена функция sum, а уж после мы вызываем её из функции main. Если функция объявляется после места её вызова, то следует использовать прототип функции.

Прототип функции в Си

Рассмотрим пример функциив Си:

/* Author: @author Subbotin B.P..h> #include int sum(int a, int b); int main(void) { puts("Functions in C"); int d = 1; int e = 2; int f = sum(d, e); printf("1 + 2 = %d", f); return EXIT_SUCCESS; } int sum(int a, int b) { int c = 0; c = a + b; return c; }

В этом примере функция sum определена ниже места её вызова в функции main. В таком случае надо использовать прототип функции sum. Прототип у нас объявлен выше функции main:

int sum(int a, int b);

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

int f = sum(d, e);

а ниже функции main определяем функцию sum, которая предварительно была объявлена в прототипе:

Int sum(int a, int b) { int c = 0; c = a + b; return c; }

Чем объявление функции в Си отличается от определения функции в Си?

Когда мы пишем прототип функции, например так:

int sum(int a, int b);

то мы объявляем функцию.

А когда мы реализуем функцию, т.е. записываем не только заголовок, но и тело функции, например:

Int sum(int a, int b) { int c = 0; c = a + b; return c; }

то мы определяем функцию.

Оператор return

Оператор return завершает работу функции в C и возвращает результат её работы в точку вызова. Пример:

Int sum(int a, int b) { int c = 0; c = a + b; return c; }

Эту функцию можно упростить:

Int sum(int a, int b) { return a + b; }

здесь оператор return вернёт значение суммы a + b.

Операторов return в одной функции может быть несколько. Пример:

Int sum(int a, int b) { if(a > 2) { return 0;// Первый случай; } if(b < 0) { return 0;// Второй случай; } return a + b; }

Если в примере значение аргумента a окажется больше двух, то функция вернет ноль (первый случай) и всё, что ниже комментария «// Первый случай;» выполнятся не будет. Если a будет меньше двух, но b будет меньше нуля, то функция завершит свою работу и всё, что ниже комментария «// Второй случай;» выполнятся не будет.

И только если оба предыдущих условия не выполняются, то выполнение программы дойдёт до последнего оператора return и будет возвращена сумма a + b.

Передача аргументов функции по значению

Аргументы можно передавать в функцию C по значению. Пример:

/* Author: @author Subbotin B.P..h> #include int sum(int a) { return a += 5; } int main(void) { puts("Functions in C"); int d = 10; printf("sum = %d\n", sum(d)); printf("d = %d", d); return EXIT_SUCCESS; }

В примере, в функции main, создаём переменную int d = 10. Передаём по значению эту переменную в функцию sum(d). Внутри функции sum значение переменной увеличивается на 5. Но в функции main значение d не изменится, ведь она была передана по значению. Это означает, что было передано значение переменной, а не сама переменная. Об этом говорит и результат работы программы:

т.е. после возврата из функции sum значеие d не изменилось, тогда как внутри функции sum оно менялось.

Передача указателей функции Си

Если в качестве аргумента функции передавать вместо значения переменной указатель на эту переменную, то значение этой переменной может меняться. Для примера берём программу из предыдущего раздела, несколько изменив её:

/* Author: @author Subbotin B.P..h> #include int sum(int *a) { return *a += 5; } int main(void) { puts("Functions in C"); int d = 10; printf("sum = %d\n", sum(&d)); printf("d = %d", d); return EXIT_SUCCESS; }

В этом варианте программы я перешел от передачи аргумента по значению к передаче указателя на переменную. Рассмотрим подробнее этот момент.

printf("sum = %d\n", sum(&d));

в функцию sum передается не значение переменной d, равное 10-ти, а адрес этой переменной, вот так:

Теперь посмотрим на функцию sum:

Int sum(int *a) { return *a += 5; }

Аргументом её является указатель на int. Мы знаем, что указатель - это переменная, значением которой является адрес какого-то объекта. Адрес переменной d отправляем в функцию sum:

Внутри sum указатель int *a разыменовывается. Это позволяет от указателя перейти к самой переменной, на которую и указывает наш указатель. А в нашем случае это переменная d, т.е. выражение

равносильно выражению

Результат: функция sum изменяет значение переменной d:

На этот раз изменяется значение d после возврата из sum, чего не наблюдалось в предыдущм пункте, когда мы передавали аргумент по значению.

C/C++ в Eclipse

Все примеры для этой статьи я сделал в Eclipse. Как работать с C/C++ в Eclipse можно посмотреть . Если вы работаете в другой среде, то примеры и там будут работать.

В этом уроке мы познакомимся с функцией ПРОСМОТР , которая позволяет извлекать нужную информацию из электронных таблиц Excel. На самом деле, Excel располагает несколькими функциями по поиску информации в книге, и каждая из них имеет свои преимущества и недостатки. Далее Вы узнаете в каких случаях следует применять именно функцию ПРОСМОТР , рассмотрите несколько примеров, а также познакомитесь с ее вариантами записи.

Варианты записи функции ПРОСМОТР

Начнем с того, что функция ПРОСМОТР имеет две формы записи: векторная и массив. Вводя функцию на рабочий лист, Excel напоминает Вам об этом следующим образом:

Форма массива

Форма массива очень похожа на функции ВПР и ГПР . Основная разница в том, что ГПР ищет значение в первой строке диапазона, ВПР в первом столбце, а функция ПРОСМОТР либо в первом столбце, либо в первой строке, в зависимости от размерности массива. Есть и другие отличия, но они менее существенны.

Данную форму записи мы подробно разбирать не будем, поскольку она давно устарела и оставлена в Excel только для совместимости с ранними версиями программы. Вместо нее рекомендуется использовать функции ВПР или ГПР .

Векторная форма

Функция ПРОСМОТР (в векторной форме) просматривает диапазон, который состоит из одной строки или одного столбца. Находит в нем заданное значение и возвращает результат из соответствующей ячейки второго диапазона, который также состоит из одной строки или столбца.

Вот это да! Это ж надо такое понаписать… Чтобы стало понятней, рассмотрим небольшой пример.

Пример 1

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

В данном примере функцию ВПР не применить, поскольку просматриваемый столбец не является крайним левым. Именно в таких случаях можно использовать функцию ПРОСМОТР . Формула будет выглядеть следующим образом:

Первым аргументом функции ПРОСМОТР является ячейка C1, где мы указываем искомое значение, т.е. фамилию. Диапазон B1:B7 является просматриваемым, его еще называют просматриваемый вектор. Из соответствующей ячейки диапазона A1:A7 функция ПРОСМОТР возвращает результат, такой диапазон также называют вектором результатов. Нажав Enter , убеждаемся, что все верно.

Пример 2

Функцию ПРОСМОТР в Excel удобно использовать, когда векторы просмотра и результатов относятся к разным таблицам, располагаются в отдаленных частях листа или же вовсе на разных листах. Самое главное, чтобы оба вектора имели одинаковую размерность.

На рисунке ниже Вы можете увидеть один из таких примеров:

Как видите, диапазоны смещены друг относительно друга, как по вертикали, так и по горизонтали, но формула все равно вернет правильный результат. Главное, чтобы размерность векторов совпадала. Нажав Enter , мы получим требуемый результат:

При использовании функции ПРОСМОТР в Excel значения в просматриваемом векторе должны быть отсортированы в порядке возрастания, иначе она может вернуть неверный результат.

Так вот коротко и на примерах мы познакомились с функцией ПРОСМОТР и научились использовать ее в рабочих книгах Excel. Надеюсь, что данная информация оказалась для Вас полезной, и Вы обязательно найдете ей применение. Всего Вам доброго и успехов в изучении Excel.

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

Для чего нужны функции в R?

При анализе данных код R записывают в виде скрипта для того, чтобы в последующем можно было легко продолжить работу с ним, либо предоставить возможность воспроизвести Ваш анализ данных другому человеку. Таким образом, скриптовой программой (или скриптом) называется последовательность команд, записанная в текстовом формате. В идеале скрипт должен быть компактным и понятным для другого человека. Для того, чтобы уменьшить количество строк кода, сделать код более читабельным и удобным для редактирования используют функции.

Зачастую во время анализа приходится выполнять одни и те же действия несколько раз, то есть, писать один и тот же код, где лишь незначительная его часть изменена. Однако гораздо практичнее будет оформить подобные массивы кода в функцию. В этом случае блок кода, копируемый из раза в раз, будет телом функции, а места кода, которые Вы изменяете в этом блоке станут аргументами (параметрами) функции. Также у функции должно быть имя, чтобы ее можно было вызвать в . Схема построения функции в R выглядит следующим образом:

Сначала следует написать имя функции, затем знак присвоения и слово function , которое создает объект класса функция. В скобках мы указываем аргументы, а тело функции находится внутри фигурных скобок. Важно отметить, что для использования функции требуется ввести только имя функции и ее аргументы:

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

Использование существующих функций в R

К счастью существует множество готовых функций в R. Так например, mean() , summary() , read.table() , lm() являются базовыми функциями, которыми можно пользоваться без применения сторонних пакетов. Чтобы узнать какие именно аргументы требуется ввести для использования функции введите в консоль знак вопроса и имя функции, например: ?read.table . На открывшейся странице в разделах Usage и Arguments будет перечень аргументов для использования данной функции. Как правило, критически важные аргументы для работы функции находятся в начале списка. Аргументы, которые не будут заполнены примут значения по умолчанию:

read.table("D:/Folder/mytable.txt", sep = "\t", header = T)

Так как официальный архив R пакетов (CRAN) насчитывает более 11 тысяч , то количество доступных функций для анализа данных стремительно приближается к 1 млн!!! Как же нам проводить поиск нужной функции во всех этих пакетах? Для этого существует сайт rdocumentation.org : удобный сервис поиска функций и пакетов по искомому слову или сочетанию слов.

Базовая версия R, которая была загружена на Ваш компьютер, состоит из 30 встроенных пакетов. Остальные следует загружать и подключать самостоятельно. Следовательно, сначала мы ищем к какому пакету принадлежит функция, устанавливаем этот пакет в библиотеку пакетов на компьютере, загружаем его в R и лишь после этого используем функции загруженного пакета. Не забывайте загружать пакет при повторном запуске R, если снова собираетесь использовать функции этого пакета.

Создание функций: три наглядных примера!

Сколько бы функций не существовало в CRAN, рано или поздно придется написать свои собственные. Причин на это может быть несколько: такой функции еще не написано; проще написать свою, чем искать ее в других R пакетах: и т.д. Так или иначе, создать функции совсем не сложно. Для того, чтобы это доказать, я приведу три простых примера, которые помогут понять логику построения функций.

Пример 1: сколько будет 2+2×2?

Создадим простейшую функцию, основанную исключительно на арифметических действиях. Например, вычислим знакомый нам с начальной школы пример: сколько будет 2+2*2? Усложним немного: 12+12*12? Ну и в завершении арифметических упражнений 42+42*42? Как Вы могли заметить, все эти примеры основаны на одной и той же формуле: a+a*a . Создание функции в R будет идеальным решением для подобного рода задач.

school <- function(a){ b = a+a*a print(b) } school(2) school(12) school(22)

Результат вычислений функции отобразится на экране консоли, т.к. для вывода информации мы использовали базовую функцию print() внутри нашей функции . Когда же нам требуется сохранить результат в виде отдельного объекта (переменной), следует воспользоваться функцией return() , что мы сделаем в следующем примере.

Пример 2: от горшка два вершка

В детстве мы все читали русские народные сказки. Меня, например, всегда интересовало что значит фраза "от горшка два вершка", а точнее сколько это в сантиметрах. Думаю, пришло время получить ответ: создадим конвертер вершков в R при помощи новой функции convershok().

Один вершок равен 4.445 см. Пусть программа выводит на экран предложение от том, что столько вершков равняется столько-то сантиметров, используя базовую функцию для объединения текстовых и числовых объектов paste() . Также мы хотим, чтобы полученное значение сохранялись как отдельный объект, для чего в конце функции добавим return(vershok) .

convershok <- function(n){ vershok <- n * 4.445 print(paste(n, "vershok", "=", vershok, "cm")) return(vershok) } x <- convershok(2)

Отлично, мы получили заветное сообщение и сохранили 8.89 (см), как объект x. Вот только о каком именно горшке идет речь в поговорке не сказано, поэтому измерьте высоту первого попавшегося горшка, добавьте это значение к переменной x и напишите в комментариях, сколько у Вас получилось;-)

Пример 3: ноутбук в кредит, сколько придется переплатить?

Допустим, у студента сломался ноутбук. На данный момент у него нет свободных денег на покупку нового, и он решил взять его в кредит. В банке ему предложили кредит на сумму 30.000 рублей с процентной ставкой 35% годовых и возможностью преждевременного погашения. Рассчитаем сколько денег нужно выплатить за ноутбук при погашении кредита через месяц, три месяца и год.

Для расчетов я использую формулу для вычисления суммы процентов, начисленных за пользование кредитом в течение n месяцев.

sp = p * (t + 1) / 24 , где:

sp - сумма процента
p - годовая процентная ставка
t - срок кредита (месяцев).

Реализуем эту формулу в R, после чего добавим к цене ноутбука (n ) высчитанный суммарный процент (sp ), помноженный на цену ноутбука товара (n ):

result <- function(n, p, t){ sp <- p*(t + 1)/24 total <- n + n*sp/100 print(paste("sp =", round(sp, 2), "%; ", "total price =", total, "rubles")) } result(30000, 35, 1) result(30000, 35, 3) result(30000, 35, 12)

Как Вы видите, 35% годовых отнють не означает, что студент будет платить за кредит 35% от текущей стоимости ноутбука: в реальности за год он переплатит на 19%. Другой интересный вывод в том, что кредитный процент на один месяц гораздо выше, чем усредненный месячный процент на три месяца и тем более на год. То есть брать кредиты на долгий срок "выгодно" :-)

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

Заключение

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: