Библиотека функций в excel

Как использовать мастер функций для создания формул в excel

Введение

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

Программа MS Excel является отличным инструментом, который позволяет выполнять обработку и анализ больших объёмов информационных данных, а также осуществлять несложные вычислительные процедуры. Базой этого большого набора возможностей программы может считаться применение сеточной структуры ячеек, которые способны сохранять как числовые, так и текстовые данные, а также информационные данные ы формате математических формул. Чтобы начать работать с программой, следует ввести информацию в ячейки и осуществить их группировку в столбцах и строчках.

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

Набор данных

В этом руководстве мы будем использовать файл Excel с данными о продажах. Он похож на те файлы, которые используются в качестве входных данных для создания отчетов во многих компаниях. Вы можете скачать этот файл на Kaggle. Однако он имеет формат , поэтому вам следует изменить расширение на или просто загрузить его по этой ссылке на Google Диск (файл называется supermarket_sales.xlsx).

Прежде чем писать какой-либо код, внимательно ознакомьтесь с файлом на Google Drive. Этот файл будет использоваться как входные данные для создания следующего отчета на Python:

Теперь давайте сделаем этот отчет и автоматизируем его составление с помощью Python!

Функция ДАТАЗНАЧ() в MS EXCEL

​ целом.​ называется система 1900.​О преобразовании дат из​ поймет далеко не​=ДАТАЗНАЧ(A6)​Предположим, что столбце​Если на листе содержатся​=ДАТАЗНАЧ(«22-май-2011»)​ аргументе​ об отображении чисел​ часов компьютера.​ всего для получения​ при записи действий​=ТДАТА()-0,5​ соответствует число 1,​ даты и времени​ получается (как указано​

​​ Эта система по​ текстового формата читайте​ все форматы, понятные​К столбцу​A​ даты в текстовом​Порядковый номер даты, введенной​дата_как_текст​ в виде дат​В этой статье описаны​ динамической даты или​

​ в журнал или​Возвращает дату и время​ а 1 января​

Синтаксис функции ДАТАЗНАЧ()

​ для ячейки можно​

​ в файле), а​​Если необходимо быстро ввести​ умолчанию используется во​ в этой статье.​ человеку (функция первый​В​установлен формат Текстовый​ формате, то их​ как текст.​игнорируются.​ см. в разделе​

​ синтаксис формулы и​ времени в ячейке​ сделать так, чтобы​ по состоянию на​ 2008 г. — число​ изменить с помощью​

​ на рабочем когда​​ статическую неизменную текущую​​ всех программа пакета​Если значение даты содержится​ пример поймет, а​применим формат Краткая​ и он содержит​ скорее всего не​​40685​​В приложении Microsoft Excel​

Задача 1 Фильтрация и сортировка дат

​См. также​​ использование функции​​ на листе используются​ они автоматически выводились​ 12 часов назад​ 39 448, поскольку интервал​ команд на вкладке​ делаю такое вычитание,​

​ дату с помощью​ Microsoft Office.​ в 3-х разных​

​ второй и третий​ Дата и затем​ текстовые строки «22​

​ удастся правильно отфильтровать,​=ДАТАЗНАЧ(«23.02.2011»)​ даты хранятся в​.​​ДАТАЗНАЧ​​ функции.​ в ячейке при​

​ (полдня назад).​ между ними составляет​ ленты​ то выдает ошибку​ клавиатуры, тогда нажмите​Вместо того чтобы вводить​ ячейках (в​ не поймет). Сводная​ применим фильтр.​

​ сентябрь 2011″; «23​ отсортировать или отформатировать​Порядковый номер даты, введенной​ виде последовательных чисел,​ДАТАЗНАЧ(дата_как_текст)​в Microsoft Excel.​Чтобы вставить текущую дату​ каждом пересчете формул.​06.11.11 07:03:00​ 39 447 дней.​Главная​​ #знач. Почему так?​​ комбинацию горячих клавиш​

​ сегодняшнюю дату и​

​А1​​ таблица форматов приведена​​Как видно из рисунка​ сентябрь 2011″ и​ в виде дат​

​ как текст.​ что позволяет использовать​Аргументы функции ДАТАЗНАЧ описаны​Функция​ или время, чтобы​

​ Вы можете вставить​=ТДАТА()+7​В числовом формате дат​в группе​StoTisteg​​ CTRL+; (точка с​​ текущее время вручную,​содержится день, в​​ на рисунке ниже​​ выше, фильтр теперь​

Задача 2 Вычисления с датами в текстовом формате

​ т.д. (без кавычек).​ без предварительного преобразования​40597​ их в вычислениях.​ ниже.​​ДАТАЗНАЧ​​ он является обновляемым,​ значения, которые не​Возвращает дату и время​ цифры справа от​Число​

​: Настройки даты на​

​ запятой на английской​ можно воспользоваться одной​А2​

Форматы дат, которые функция ДАТАЗНАЧ() не понимает

​ и в файле​ будет содержать критерии​Постараемся отфильтровать значения, которые​ в числовую форму​=ДАТАЗНАЧ(«5-июл»)​ По умолчанию дате​Дата_как_текст​преобразует дату, которая​ с помощью функции​ будут изменяться, или​ по состоянию на​ запятой представляют время,​.​ рабочем компе?​ раскладке клавиатуры). В​ из двух функций​- месяц и​

​ примера (лист форматы).​ удобные для отбора​ относятся к октябрю​ (см. статью Как​Порядковый номер даты, представленной​ 1 января 1900 г.​ — обязательный аргумент. Текст,​ хранится в виде​сегодня​ же обновлять их.​ 7 дней вперед.​ цифры слева от​Функция​Veksel​ активной ячейке сразу​ Excel. Функция =СЕГОДНЯ()​

Альтернатива функции ДАТАЗНАЧ()

​А3​Кроме того, EXCEL умеет​ дат.​ 2011 года.​ EXCEL хранит дату​ в виде текста,​ соответствует число 1,​ представляющий дату в​ текста, в порядковый​​и​​Статические значения не изменяются​​13.11.11 19:03:00​​ нее — дату.​

​ТДАТА​: Это в настройках​ же будет введена​ возвращает сегодняшнюю дату.​

​- год), то​ преобразовывать далеко не​Аналогично Фильтрации работает и​

ДАТАЗНАЧ() vs ДАТА()

​Сначала попытаемся отфильтровать даты​ и время).​ с использованием системы​​ а 1 января​​ формате даты Excel,​​ номер, который Excel​​ТДАТА​​ при пересчете или​​=ТДАТА()-2,25​ Например, число 0,5​применяется в случаях,​ экселя полазить?​ сегодняшняя дата. А​

​ Вторая функция =ТДАТА()​ преобразовать это значение​ все форматы дат​

​ сортировка списка с​

​ как есть, т.е.​Функция ДАТАЗНАЧ() предназначена для​​ дат 1900; встроенные​​ 2008 г. — число​ или ссылка на​ воспринимает как дату.​

Шаг 3: заполнение аргументов функции

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

Посмотрим на пример «СРЕДНЕЕ» (для вычисления среднего арифметического), работая с числовыми данными.

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

Кроме того, вы можете указать ссылку на ячейку или диапазон ячеек, которые содержат числа.

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

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

Примечания:

  • В нижней части окна находится описание функции, а также комментарии / советы, как правильно заполнить ту или иную тему.
  • Иногда количество тем может увеличиваться. Например, как в нашем случае с функцией «МЕДИА». По умолчанию есть только два аргумента, но если мы перейдем к заполнению второго, добавится третий и так далее
  • Принцип заполнения текстовыми данными в других функциях, где это предполагается, аналогичен рассмотренному выше: либо мы указываем конкретные значения, либо ссылки на ячейки или диапазоны ячеек.

Написание библиотеки для Excel

​3. Вычисления будут сложными​​ 5,2 нашел 1​

​: Поставил библиотеку посмотрел​

​ можно​ собой черту, что​ Так, что условие​

​ библиотека Microsoft Excel​панель инструментов и ленты​ Для удобства также​ ввести или выбрать​), промежуточные итоги (​ работают с текстом​.​ язык.​

​ Там же можно​ возможно, можно просто​ нет принципиальной разницы,​ и их будет​

​ косяк при попытке​ с чем работает​из платных -​ всегда при ответе,​ «чистоты» вы уже​ 12.0 Object Library)​.​ приводим ссылку на​

​ ячейки, которые будут​

​ПРОМЕЖУТОЧНЫЕ.ИТОГИ​​ в качестве значений​Разберем, какую задачу выполняет​C_sanches​ создать тему, если​ обойтись надстройкой (*.xla)​ на чем будет​ очень много. Используя​​ записать ячейку с​ она.​ XLSReadWriteII​ получается, что с​ нарушили.​ проблему не решила.​В разделе​ оригинал (на английском​ составлять аргументы. Мы​) и многое другое.​ аргументов. С помощью​​ каждая из команд​: Андрей VG, bedvit,​ вам потребуется помощь​​ или (*.xlam)​ написана библиотека? В​ библиотеку, будет ли​ данными в формате​1. Работу с​Setix​ кем-то спорю. Так​MsGuns​Студия 2012, на​

​Настройка ленты​​ языке) .​ введем B3 в​Раздел​ них можно решать​ группы:​ спасибо за ссылки​ (это не реклама),​bedvit​ плане скорости работы​ приводить вызов функции​ «» вместо фигурной​ файлами Xls совсем​: zexmlss: там идет​ вот же: закон​:​ ПК установлен Excel​выберите​В своем коде можно​ поле​Другие функции​ такие задачи, как​Если у Вас возникли​ и пояснения.​ может и я​

​: Это проще и​​ и возможности добавить​ в этой библиотеке​ скобки «>» выводит​ не обнаружил.​ создание самого шаблона​ подлости.​

​Usaga​​ 2003​Основные вкладки​ задействовать другие объекты​

​Нач_дата​​содержит дополнительные категории​ преобразование текста в​ проблемы с поиском​C# выбран, т.к.​ чем-то смогу помочь​ нужно только знания​ функцию, которая будет​ к зависанию или​ — «/» на​​2. Там представленна​ с помощью кода.​Используйте ClosedXml)))​, Спасибо еще раз,​​Подскажите, пожалуйста, что​и установите флажок​ приложения, задав ссылки​и С3 в​ библиотеки функций, такие​ нижний регистр (​ необходимой функции в​

​ его знаю (что​​ (когда будет время).​ VBA.​ доступна потом в​ крашу Excel’я?​ более поздних версиях​ работа с xml​ У меня не​https://github.com/ClosedXML​ но, судя по​​ делать.​Разработчик​ на библиотеку объектов​ поле​ как Статистические, Инженерные,​​СТРОЧН​ Excel, команда​ не сказать о​ Потом, если вы​

​C_sanches​​ ячейках Excel’я​Спасибо!​ не могу сказать​

​ и​​ много другая задача.​yagami2​ количеству материала в​Спасибо за любую​.​ этого приложения.​​Кон_дата​ Аналитические, Проверка свойств​) или замена части​Вставить функцию​ VBA).​​ поймете, что это​: именно это и​Пытливый​The_Prist​ не тестировал. Сохраняет​РАСПАКОВАННЫМ​ Шаблон условно создает​: Меня в своем​

​ Сети, interop, пожалуй,​​ помощь​​Нажмите кнопку​На вкладке «Разработчик» откройте​.​ и значений, а​ текста на другое​позволяет найти ее​Буду пробовать реализовывать​ для вас интересно​ важно в моей​​: Если встроить код​

​: вопрос из разряда​​ все стандартные форматы​xlsx файлом. При​ пользователь. Моя цель​ время вот эта​ самый популярный вариант​Usaga​Сохранить​ окно проекта Visual​Если аргументы введены правильно,​ также функции, оставленные​ значение (​ при помощи ключевых​ то, что задумал.​ и вы готовы​​ задаче. Только будут​ функции в файл,​ «как провести лето».​ (xml,xls,xlsx). Есть возможность​ этом не приведены​ открыть этот шаблон​ библиотека очень выручила​ работы из шарпа​:​и закройте​ Basic. Увидеть вкладки​ нажмите​ для поддержки совместимости​ЗАМЕНИТЬ​ слов.​ Еще раз всем​ писать на C#,​ использоваться не большие​ то эта функция​

​Берет excel файл​​ офис, все равно​, добавление ссылки на​.​ если она еще​.​ Excel.​Категория​Автосумма​ вопросы, обязательно сюда​ COM, XLL, DLL.​ количество небольших чисел.​ файле, в чем​ All-inclusive подавай, а​ прочие. Подробнее на​ поработать с распакованным​ и по ним​ и целиком пихает​ старый 2003 сейчас​

​ эту библиотеку должно​​Loathem​ не открыта.​Функция будет вычислена, и​​В следующем примере Вы​Дата и время​позволяет автоматически вычислять​ обращусь.​​ Признаться я не​UPD: Вопрос о​ проблема? Пользовательская функция.​ кто-то в Альпы​ сайте у производителя.​ файлом, а потом​

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

ABS

Чтобы определить модуль числа, используйте функцию ABS.

СЛЧИС и СЛУЧМЕЖДУ

И функция СЛЧИС (RAND), и функция СЛУЧМЕЖДУ (RANDBEWTEEN) могут генерировать случайные числа на лету. СЛЧИС (RAND) создает длинные десятичные числа от нуля до 1. СЛУЧМЕЖДУ (RANDBETWEEN) генерирует случайные целые числа между двумя заданными числами.

ОКРУГЛ, ОКРУГЛВВЕРХ, ОКРУГЛВНИЗ и ЦЕЛОЕ

Чтобы округлить значения в большую или меньшую сторону, используйте функцию ОКРУГЛ (ROUND). Для принудительного округления до заданного количества цифр в большую сторону используйте ОКРУГЛВВЕРХ (ROUNDUP). Для принудительного округления в меньшую сторону используйте ОКРУГЛВНИЗ (ROUNDDOWN). Чтобы полностью удалить десятичную часть числа, используйте функцию ЦЕЛОЕ (INT).

ОКРУГЛТ, ОКРВВЕРХ и ОКРВНИЗ

Чтобы округлить значения до ближайшего кратного, используйте функцию ОКРУГЛТ (MROUND). Функция ОКРВНИЗ (FLOOR) и функция ОКРВВЕРХ (CEILING) также округляются до заданного кратного. ОКРВНИЗ (FLOOR) заставляет округлять вниз, а ОКРВВЕРХ (CEILING) заставляет округлять вверх.

ОСТАТ

Функция ОСТАТ (MOD) возвращает остаток после деления. Это звучит скучно, но ОСТАТ (MOD) появляется во всех видах формул, особенно в формулах, которые должны делать что-то «каждый раз». В приведенном ниже примере вы увидите, как ОСТАТ (MOD) возвращает ноль каждое третье число, когда делитель равен 3:

СУММПРОИЗВ

Функция СУММПРОИЗВ (SUMPRODUCT) — это мощный и универсальный инструмент для работы со всеми видами данных. Вы можете использовать СУММПРОИЗВ (SUMPRODUCT) для простого подсчета и суммирования на основе критериев, и вы можете использовать его изящными способами, которые просто не работают с СЧЁТЕСЛИМН (COUNTIFS) и СУММЕСЛИМН (SUMIFS). В приведенном ниже примере мы используем СУММПРОИЗВ (SUMPRODUCT) для подсчета и суммирования заказов в марте.

ПРОМЕЖУТОЧНЫЕ.ИТОГИ

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL) является «агрегатной функцией», которая может выполнять ряд операций с набором данных. В общем, ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL) может выполнять 11 операций, включая СУММ (SUM), СРЗНАЧ (AVERAGE), СЧЁТ (COUNT), МАКС (MAX), МИН (MIN) и т.д.

Ключевой особенностью ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL) является то, что он будет игнорировать строки, которые были «отфильтрованы» из таблицы Excel и строки, которые были скрыты вручную. В приведенном ниже примере ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL) используется для подсчета и суммирования только 7 видимых строк в таблице:

АГРЕГАТ

Как и ПРОМЕЖУТОЧНЫе.ИТОГИ (SUBTOTAL), функция АГРЕГАТ (AGGREGATE) может также выполнять ряд агрегатных операций над набором данных и, при необходимости, игнорировать скрытые строки. Ключевые различия заключаются в том, что АГРЕГАТ (AGGREGATE) может выполнять больше операций (всего 19), а также может игнорировать ошибки.

В приведенном ниже примере АГРЕГАТ (AGGREGATE) используется для выполнения операций МИН (MIN), МАКС (MAX), НАИБОЛЬШИЙ (LARGE) и НАИМЕНЬШИЙ (SMALL), игнорируя ошибки. Обычно ошибка в ячейке B9 не позволяет этим функциям возвращать результат.

Как использовать Мастер функций в Excel

В следующем примере нам требуется найти функцию, которая подсчитывает общее количество заказанных товаров. Чтобы узнать количество, нам необходимо посчитать ячейки в столбце Товар, в которых используется текст. В данном случае мы не можем использовать функцию СЧЁТ, поскольку она подсчитывает ячейки только с числовыми значениями. Поэтому нам необходимо найти функцию, которая подсчитывает количество заполненных ячеек в диапазоне.

  1. Выделите ячейку, которая будет содержать формулу. В нашем примере мы выделим ячейку B16.
  2. Откройте вкладку Формулы на Ленте, а затем выберите команду Вставить функцию.
  3. Откроется Мастер функций. В появившемся диалоговом окне Вставка функции введите несколько ключевых слов, описывающих тип вычислений, которые осуществляет требуемая функция, а затем нажмите Найти. В нашем примере мы введем фразу “количество ячеек“, но вы также можете найти функцию по категории из раскрывающегося списка.
  4. Посмотрите список результатов, чтобы найти нужную функцию, затем нажмите OK. В нашем примере мы выберем СЧЁТЗ, поскольку она подсчитывает количество непустых ячеек в диапазоне.
  5. Появится диалоговое окно Аргументы функции. Выберите поле Значение1, а затем введите или выберите нужные ячейки. В нашем примере мы введем диапазон A3:A10. При необходимости Вы можете продолжить заполнять аргументы в полях Значение2, Значение3 и т.д. В этом же примере мы хотим посчитать количество позиций только в диапазоне A3:A10.
  6. Если все данные введены верно, нажмите ОК.
  7. Мастер функций закроется, и Вы увидите результат. В нашем примере результат показывает, что всего было заказано восемь позиций.

Если Вы уже хорошо разбираетесь в базовых функциях Excel, можете воспользоваться более сложными функциями, такими как ВПР. Для получения дополнительной информации изучите урок Функция ВПР в Excel на простых примерах или обратитесь к разделу ВПР от А до Я.

Работа с диапазонами ячеек

Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.

Примеры работы с Range

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

  1. Считали группы из очередной строки.
  2. Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
    1. Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
  3. После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.

Для упрощения работы рекомендую определить следующие функции-сокращения:

Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

Теперь надо перенести всякую информацию в result

Подогнать столбцы по ширине и выбрать лист result для показа результата

Всё. Можно любоваться первой версией.

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

Уже лучше:

Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Осталось лишь добится пропусков перед началом новой группы. Это легко:

В цикле расстановки заголовков

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание. UPD: Перезалил пример на Dropbox и min.us

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

Особенности использования функций ДМАКС и ДМИН в Excel

Обе рассматриваемые функции имеют однотипный синтаксис (список аргументов совпадает):

=ДМАКС(база_данных;поле;условия)

=ДМИН(база_данных;поле;условия)

Описания аргументов:

  • база_данных – обязательный, может быть указан в виде ссылки на диапазон ячеек, которые соответствуют БД, списку или таблице, которая соответствует критериям, установленным для баз данных в Excel. В такой таблице строки являются записями, а столбцы – полями. В первой строке должны быть указаны наименования полей (столбцов).
  • поле – обязательный, принимает ссылку на ячейку, содержащую наименование столбца (поля) таблицы, списка или БД, где будет выполняться поиск наибольшего (ДМАКС) или наименьшего (ДМИН) значения соответственно. Может быть также указан в виде текстовых данных или числового значения – соответствующего номера столбца (отсчет начинается с левой части таблицы с числа 1).
  • условия – обязательный, принимает ссылку на диапазон ячеек, в которых указаны критерии поиска. В таком диапазоне должно содержаться хотя бы одно поле, соответствующее полю таблицы, списка или БД, в которых будет выполняться поиск максимального или минимального значения.

Примечания:

  1. Если любой из аргументов функции указан в виде данных недопустимого типа или ссылки на диапазон пустых ячеек, результатом выполнения любой из рассматриваемых функций будет код ошибки #ЗНАЧ!.
  2. Если в качестве аргумента поле был указан столбец (поле БД), не содержащий числовые данные, результатом выполнения функции будет значение 0 (нуль).
  3. Для удобства указания аргумента условия рекомендуют создавать отдельную таблицу, содержащую не менее двух записей (строк). При этом первая строка должна содержать наименование полей данных, полностью соответствующих наименованиям полей таблицы (списка или БД), где выполняется поиск. Вторая (и последующие) строка должна содержать критерии поиска (логические выражения, данные для сравнения). Такую таблицу условий следует размещать над основной таблицей (БД или списком), поскольку последняя может пополняться новыми записями со временем.
  4. При написании условий используются записи следующих видов:
  • =»=телевизор» – точное совпадение текстовой строки. Для неточных совпадений можно использовать замещающие знаки, например, «*» – любое число символов, «?» – один любой символ;
  • Для числовых данных используют знаки сравнения значений: «>», «<», «=>», «=<» «<>».

Создание сводной таблицы с помощью pandas

Импорт библиотек

Теперь, когда вы скачали файл Excel, давайте импортируем библиотеки, которые нам понадобятся.

import pandas as pd
import openpyxl
from openpyxl import load_workbook
from openpyxl.styles import Font
from openpyxl.chart import BarChart, Reference
import string

Чтобы прочитать файл Excel, создать сводную таблицу и экспортировать ее в Excel, мы будем использовать Pandas. Затем мы воспользуемся библиотекой openpyxl для написания формул Excel, создания диаграмм и форматирования электронной таблицы с помощью Python. Наконец, мы создадим функцию на Python для автоматизации всего этого процесса.

Примечание. Если у вас не установлены эти библиотеки в Python, вы можете легко установить их, выполнив и в командной строке.

Чтение файла Excel

Прежде чем читать Excel-файл, убедитесь, что он находится там же, где и ваш файл со скриптом на Python. Затем можно прочитать файл Excel с помощью , как показано в следующем коде:

excel_file = pd.read_excel('supermarket_sales.xlsx')
excel_file]

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

Создание сводной таблицы

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

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

report_table = excel_file.pivot_table(index='Gender',
                                      columns='Product line',
                                      values='Total',
                                      aggfunc='sum').round(0)

Таблица должна выглядеть примерно так:

Экспорт сводной таблицы в файл Excel

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

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

report_table.to_excel('report_2021.xlsx',
                      sheet_name='Report',
                      startrow=4)

Теперь файл Excel экспортируется в ту же папку, в которой находится ваш скрипт Python.

Единый список функций Excel

ABS ЕОШИБКА ОКРУГЛ СТРОЧН
UNICODE ЕПУСТО ОКРУГЛВВЕРХ СУММ
АДРЕС ЕСЛИ ОКРУГЛВНИЗ СУММЕСЛИ
АПЛ ЕСЛИОШИБКА ОКРУГЛТ СУММПРОИЗВ
АСЧ ЕССЫЛКА ОСТАТ СЦЕПИТЬ
БДСУММ ЕТЕКСТ ОТБР СЧЁТ
БИЗВЛЕЧЬ ЕЧЁТН ПЕРЕСТ СЧЁТЕСЛИ
БСЧЁТ ЕЧИСЛО ПЕЧСИМВ СЧЁТЗ
БСЧЁТА ЗАМЕНИТЬ ПИ СЧИТАТЬПУСТОТЫ
ВПР ЗНАК ПОВТОР Т
ВРЕМЗНАЧ И ПОДСТАВИТЬ ТДАТА
ВРЕМЯ ИЛИ ПОИСК ТЕКСТ
ВЫБОР ЗНАЧЕН ПОИСКПОЗ ТЕНДЕНЦИЯ
ГОД ИНДЕКС ПОРОГ ТИП.ОШИБКИ
ГПР ИНФОРМ ПРАВСИМВ ТРАНСП
ДАТА КВАРТИЛЬ ПРЕДСКАЗ ФАКТР
ДАТАЗНАЧ КОДСИМВ ПРЕОБР ФИКСИРОВАННЫЙ
ДАТАМЕС КОНМЕСЯЦА ПРОИЗВЕД ФУО
ДВ.В.ДЕС КОРРЕЛ ПРОПИСН ЦЕЛОЕ
ДВССЫЛ ЛЕВСИМВ ПРОПНАЧ Ч
ДЕЛЬТА МАКС ПРОСМОТР ЧАС
ДЕНЬ МЕДИАНА ПСТР ЧАСТНОЕ
ДЕНЬНЕД МЕСЯЦ РАБДЕНЬ ЧАСТОТА
ДЕС.В.ДВ МИН РАЗНДАТ ЧЁТН
ДЕС.В.ШЕСТН МИНУТЫ РАНГ ЧИСЛКОМБ
ДИСП МОДА РИМСКОЕ ЧИСТРАБДНИ
ДИСПР МУМНОЖ РУБЛЬ ШЕСТН.В.ДЕС
ДЛСТР НАИБОЛЬШИЙ СЕГОДНЯ ЮНИСИМВ
ДМАКС НАИМЕНЬШИЙ СЕКУНДЫ ЯЧЕЙКА
ДМИН НАЙТИ СЖПРОБЕЛЫ
ДНЕЙ360 НД СИМВОЛ
ДОЛЯГОДА НЕ СЛУЧМЕЖДУ
ДСРЗНАЧ НЕЧЁТ СЛЧИС
ЕЛОГИЧ НОД СОВПАД
ЕНД НОК СРЗНАЧ
ЕНЕТЕКСТ ОБЛАСТИ СТАНДОТКЛОН
ЕНЕЧЁТ ОКРВВЕРХ СТАНДОТКЛОНП
ЕОШ ОКРВНИЗ СТЕПЕНЬ

Что такое пользовательская функция в Excel?

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

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

Как можно решить эти проблемы?

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

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

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

Исходными данными могут быть числа, текст, даты, логические значения, массивы. Результатом вычислений может быть значение любого типа, с которым работает Excel, или массив таких значений.

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

Существует несколько способов создания собственных функций:

  • при помощи Visual Basic for Applications (VBA). Этот способ описывается в данной статье.
  • с использованием замечательной функции LAMBDA, которая появилась в Office365.
  • при помощи Office Scripts. На момент написания этой статьи они доступны в Excel Online в подписке на Office365.

Посмотрите на скриншот ниже, чтобы увидеть разницу между двумя способами извлечения чисел — с использованием формулы и пользовательской функции ExtractNumber(). 

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

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

Статистические функции

СЧЁТ и СЧЁТЗ

Вы можете посчитать количество чисел с помощью функции СЧЁТ (COUNT), а непустых ячеек — с помощью СЧЁТЗ (COUNTA). Пустые ячейки можно сосчитать с помощью СЧИТАТЬПУСТОТЫ (COUNTBLANK), но на приведенном ниже экране мы подсчитываем пустые ячейки с помощью СЧЁТЕСЛИ (COUNTIF).

СЧЁТЕСЛИ и СЧЁТЕСЛИМН

Для условного подсчета функция СЧЁТЕСЛИ (COUNTIF) может применять один критерий. Функция СЧЁТЕСЛИМН (COUNTIFS) может применять несколько критериев одновременно:

СУММ, СУММЕСЛИ и СУММЕСЛИМН

Чтобы просто суммировать, используйте функцию СУММ (SUM). Для условного суммирования используйте СУММЕСЛИ (SUMIF) или СУММЕСЛИМН (SUMIFS). Следуя той же схеме, что и функции подсчета, функция СУММЕСЛИ (SUMIF) может применять только один критерий, а функция СУММЕСЛИМН (SUMIFS) — несколько критериев.

СРЗНАЧ, СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН

Следуя той же схеме, вы можете рассчитать среднее с помощью СРЗНАЧ (AVERAGE), СРЗНАЧЕСЛИ (AVERAGEIF) и СРЗНАЧЕСЛИМН (AVERAGEIFS).

МИН, МАКС, НАИБОЛЬШИЙ, НАИМЕНЬШИЙ

Вы можете найти самые большие и наименьшие значения с помощью МАКС (MAX) и МИН (MIN), а n-е наибольшие и наименьшие значения с помощью НАИБОЛЬШИЙ (LARGE) и НАИМЕНЬШИЙ (SMALL). В приведенном ниже примере «данные» — это именованный диапазон C5: C13, используемый во всех формулах.

МИНЕСЛИ и МАКСЕСЛИ

МИНЕСЛИ (MINIFS) и МАКСЕСЛИ (MAXIFS). Эти функции позволяют найти минимальное и максимальное значения с условиями:

МОДА

Функция МОДА (MODE) возвращает первое наиболее часто встречающееся число в диапазоне:

РАНГ

Чтобы ранжировать значения от наибольшего к наименьшему или от наименьшего к наибольшему, используйте функцию РАНГ (RANK):

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: