Содержание
- Разработка библиотек DLL
- Преимущества библиотек DLL
- Ресурсы для создания библиотек DLL
- Экспорт функций и команд
- С помощью DEF-файла
- С помощью декларатора __declspec(dllexport)
- С помощью директивы компоновщика препроцессора #pragma
- Создание XLL-файлов
- Обеспечение обратного вызова Excel для библиотек DLL
- Xlcall.h
- Xlcall32.lib
- Xlcall.cpp
- Преобразование библиотек DLL в XLL: функции интерфейса диспетчера надстроек
- xlAutoOpen
- xlAutoClose
- xlAutoAdd
- xlAutoRemove
- xlAddInManagerInfo и xlAddInManagerInfo12
- xlAutoRegister и xlAutoRegister12
- xlAutoFree и xlAutoFree12
- Создание 64-разрядных библиотек XLL
Разработка библиотек DLL
Область применения: Excel 2013 | Office 2013 | Visual Studio
Библиотека — это скомпилированный код, который обеспечивает функции исполняемого приложения и предоставляет ему данные. Библиотеки могут быть связаны статически и динамически, обычно у них расширение LIB и DLL соответственно. Статические библиотеки (например, библиотека времени выполнения C) связываются с приложением во время компиляции и становятся частью полученного исполняемого файла. Приложение загружает библиотеку DLL, когда она необходима (обычно при запуске). Одна библиотека DLL может загружать другую библиотеку DLL и динамически ссылаться на нее.
Преимущества библиотек DLL
Ниже приведены основные преимущества библиотек DLL.
- Все приложения могут использовать одну копию на диске.
- ����������� ����� ���������� �������� �������.
- ����������� ��������� ������� �������. Разработчики приложений и библиотек DLL должны только согласовать интерфейс соответствующих частей. Этот интерфейс экспортируется в библиотеке DLL.
- Разработчики DLL могут обновлять библиотеки DLL, чтобы повысить их эффективность или исправить ошибку, не обновляя все использующие их приложения, если экспортированный интерфейс библиотеки DLL не изменяется.
С помощью DLL можно добавлять функции и команды в Microsoft Excel.
Ресурсы для создания библиотек DLL
Вот что нужно, чтобы создать библиотеку DLL:
- Редактор исходного кода.
- Компилятор для преобразования исходного кода в объектный, совместимый с оборудованием.
- Компоновщик для добавления кода из статических библиотек и создания исполняемого DLL-файла.
Современные интегрированные среды разработки ,такие как Microsoft Visual Studio, предоставляют все эти возможности. Они также предоставляют гораздо больше: интеллектуальные редакторы, средства для отладки кода, средства для управления несколькими проектами, мастеры новых проектов и многие другие важные инструменты.
�� ������ ��������� ���������� DLL �� ���������� ������, �������� C/C++, Pascal � Visual Basic. Так как исходный код API Excel — C и C++, в этой документации рассматриваются только эти два языка.
Экспорт функций и команд
При компиляции проекта DLL компилятор и компоновщик должны знать, какие функции экспортировать, чтобы предоставить к ним доступ в приложении. � ���� ������� ������� ��������� �������.
При компиляции исходного кода компиляторы, как правило, изменяют имена функций с момента их появления в исходном коде. Обычно это делается путем добавления в начало и (или) конец имени в процессе, известном как оформление имени. Необходимо убедиться, что функция экспортируется с именем, распознаваемым приложением, загружающим библиотеку DLL. Это может означать, что компоновщику нужно связать декорированное имя с более простым именем экспорта. Имя экспорта может быть именем, как оно первоначально появилось в исходном коде, или что-то другое.
Способ оформления имени зависит от языка и от того, как компилятору показано, чтобы сделать функцию доступной, то есть от соглашения о вызове. Стандартное соглашение о межпроцессных вызовах для Windows, используемое библиотеками DLL, называется соглашением WinAPI. Он определяется в файлах заголовков Windows как WINAPI, который, в свою очередь, определяется с помощью __stdcall декларатора Win32.
Вы можете сообщить компоновщику о необходимости экспорта функции, а также ее внешнее имя несколькими способами:
- Поместите функцию в DEF-файл после ключевого слова EXPORTS и добавьте ссылку на этот файл в параметр проекта DLL во время связывания.
- Используйте декларатор __declspec(dllexport) в определении функции.
- ����������� ��������� ������������� #pragma ��� �������� ��������� ������������.
В проекте можно использовать все три способа, они поддерживаются и компилятором, и компоновщиком, но не следует экспортировать одну функцию более чем одним способом. ��������, �����������, ��� ���������� DLL �������� ��� ������ ��������� ����, C � C++, ������� �������� ��� ������� ��� �������� � my_C_export � my_Cpp_export ��������������. Для простоты предположим, что функции принимают один числовой аргумент двойной точности и возвращают данные того же типа. В следующих разделах описываются варианты экспорта функций с помощью каждого из этих методов.
С помощью DEF-файла
DEF-файл должен содержать следующие строки.
EXPORTS my_C_export = _my_C_export@8 my_Cpp_export
entryname[=internalname] [@ordinal[NONAME]] [DATA] [PRIVATE]
�������� ��������, ��� ������� C ������������, �� � DEF-����� ������������ ���� ���� �������� ������������� ��� �������, ��������� ��� �� ��������� ���� (� ������ �������). Компоновщик неявно экспортирует функцию C++, используя имя исходного кода, так что в DEF-файл необязательно включать расширенное имя.
Для 32-разрядных вызовов функций API Windows соглашение о оформлении функций, скомпилированных на C, выглядит следующим образом: function_name становится function_name@n , где n — число байтов, выраженных в виде десятичного числа, занятого всеми аргументами, при этом байты для каждого из них округляется до ближайшего, кратного четырем.
Можно заставить компилятор C++ предоставлять некодированные имена для функций C++, заключив функцию и любые прототипы функций в extern «C» <. >block, как показано в этом примере. (Фигурные скобки здесь опущены <> , так как объявление относится только к блоку кода функции, который сразу после него).
При размещении прототипов функции C в файлах заголовков, которые могут быть включены в исходные файлы C или C++, необходимо включить следующую директиву препроцессора.
С помощью декларатора __declspec(dllexport)
Ключевое слово __declspec(dllexport) можно использовать в объявлении функции указанным ниже образом.
Если вы не хотите декорировать имя функции C++, необходимо объявить функцию следующим образом.
Компоновщик сделает функцию доступной под именем my_undecorated_Cpp_export, то есть именем из исходного кода, без декорирования.
С помощью директивы компоновщика препроцессора #pragma
Например, при использовании Microsoft Visual Studio эти строки можно включить в общий файл заголовка, как показано ниже.
Если такой заголовок включен в исходные файлы, две функции, приведенные в качестве примера, можно экспортировать следующим образом.
Обратите внимание, что директива должна быть помещена в текст функции и развертывается только в том случае, если ни один из параметров компилятора /EP или /P не задан. Этот метод устраняет необходимость в DEF-файле или объявлении __declspec(dllexport) и сохраняет спецификацию его состояния экспорта с кодом функции.
Источник
Создание XLL-файлов
Область применения: Excel 2013 | Office 2013 | Visual Studio
Если ваша библиотека DLL автономная или зависит от других библиотек, необходимо знать, как обеспечить для Microsoft Excel доступ к ее функциям и командам. Дополнительные сведения см. в статье Доступ к библиотекам DLL в Excel.
Но если вашей библиотеке DLL требуется доступ к функциям Excel (например, для получения содержимого ячейки, вызова функции листа или запрашивания у Excel сведений о рабочей области), в коде необходимо предусмотреть возможность обратного вызова Excel.
В API C Excel доступны несколько функций, которые обеспечивают для библиотек DLL возможность обратного вызова Excel. Для доступа к этим функциям библиотеку DLL во время компиляции необходимо статически связать с xlcall32.lib, 32-разрядной библиотекой Excel. Статическую библиотеку можно скачать на сайте Майкрософт в составе пакета SDK XLL для Microsoft Excel 2013, в который входят 32- и 64-разрядная версии этой библиотеки.
Обеспечение обратного вызова Excel для библиотек DLL
Чтобы библиотека DLL могла получить доступ к функциям Excel и получить или задать сведения о рабочей области, она сначала должна получить адреса функций обратного вызова Excel (Excel4, Excel4v, Excel12 и Excel12v). Последние две функции, которые появились в Excel 2007, доступны в последующих версиях. Чтобы получить доступ ко всем этим функциям, проект DLL должен включать ссылки на перечисленные ниже файлы, представленные в пакете SDK XLL для Excel 2013. Если вы хотите получить доступ только к первым двум функциям обратного вызова (в любой версии Excel), проект должен включать только первые два файла.
Xlcall.h
Файл Xlcall.h содержит следующие элементы:
прототипы функций для всех функций обратного вызова;
определения структур данных, которые используются в функциях обратного вызова для обмена данными между DLL или XLL и Excel, а также определения констант типов данных;
определения функции API C и эквивалентные команды для листа, функций листа макросов и поддерживаемых команд Excel;
определения возвращаемых значений функций обратного вызова.
Следует использовать директиву #include для этого файла (непосредственно или косвенно с помощью другого файла заголовка) во всех файлах, которые получают доступ к API C или обрабатывают типы данных, используемые в этом API.
Xlcall32.lib
Библиотека Xlcall32.lib экспортирует первые две функции обратного вызова (Excel4 и Excel4v), а также функцию XlCallVer. Если в вашем проекте нет ссылки на эту библиотеку, компоновщик не сможет создать XLL-файл, если вы использовали любые из этих функций обратного вызова в своем коде. (Адреса этих функций можно получить путем динамического связывания с эквивалентным файлом Xlcall32.dll, который копируется в систему во время обычной установки Excel.)
Xlcall.cpp
Функции обратного вызова Excel Excel12 и Excel12v не экспортируются в Xlcall32.lib. Благодаря этому проекты XLL, созданные в Excel 2007, также будут работать с более ранними версиями Excel. Модуль Xlcall.cpp содержит код для функций Excel12 и Excel12v, которые обеспечивают вызов точки входа в Excel, начиная с Excel 2007, или возвращают безопасное значение ошибки, если запущена более ранняя версия Excel. Этот модуль следует включить в проект, если вы хотите создать библиотеку XLL, которая запускается в Excel 2007 и в которой можно использовать новые типы данных, которые поддерживают обработку сеток большего размера и более длинных строк в Юникоде.
Начиная с пакета SDK для Excel 2010, этот файл можно компилировать для 32- и 64-разрядных библиотек XLL.
Преобразование библиотек DLL в XLL: функции интерфейса диспетчера надстроек
XLL представляет собой библиотеку DLL, которая экспортирует несколько процедур, которые вызывает Excel или диспетчер надстроек Excel. Эти процедуры вкратце описываются в этой статье и подробно рассматриваются в статье Функции диспетчера надстроек и интерфейса XLL. Все эти функции обратного вызова DLL начинаются с префикса xlAuto. Обязательной является только одна из них, а именно команда xlAutoOpen. Она вызывается при активации надстройки и обычно используется для регистрации функций и команд XLL в Excel, а также для выполнения других задач инициализации. Сигнатуры функций и примеры реализации всех функций xlAuto приведены далее в этой статье.
Хотя среди всех этих функций обратного вызова обязательной является только функция xlAutoOpen, вашей надстройке также может понадобиться экспортировать другие функции в зависимости от ее поведения.
В Excel 2007 представлен новый тип данных XLOPER12, который обеспечивает поддержку сеток большего размера и длинных строк в Юникоде. Тип данных XLOPER12 описан далее в этой статье. В то время как функции xlAuto извлекают или возвращают старый тип данных XLOPER, в Excel 2007 представлены новые версии этих функций, в которых используются типы данных XLOPER12. За исключением функции xlAutoFree12, которую иногда необходимо внедрить во избежание утечек памяти XLOPER12, вы можете безопасно пропустить установку всех функций xlAuto версии 12. В этом случае Excel 2007 и более поздних версий будет вызывать версии XLOPER.
xlAutoOpen
Excel вызывает функцию xlAutoOpen при активации библиотеки XLL. Надстройка будет активирована при запуске сеанса Excel, если она была активна во время последнего сеанса Excel, который нормально завершил работу. Надстройка активируется при загрузке во время сеанса Excel. Надстройку можно выключить и повторно активировать во время сеанса Excel. Вызов функции выполняется после повторной активации.
Функцию xlAutoOpen следует использовать для регистрации функций и команд XLL, инициализации структур данных, настройки пользовательского интерфейса и других задач.
Если ваша надстройка реализует и экспортирует функцию xlAutoRegister или xlAutoRegister12, Excel может попытаться активировать и зарегистрировать функцию или команду, не вызывая функцию xlAutoOpen. В этом случае следует убедиться, что ваша надстройка инициализирована в достаточной мере для правильной работы функции или команды. В противном случае вам может не удаться зарегистрировать функцию или команду либо выполнить необходимые действия по инициализации.
xlAutoClose
Excel вызывает функцию xlAutoClose при выключении библиотеки XLL. Надстройка будет отключена после нормального завершения сеанса Excel. Если пользователь отключает надстройку во время сеанса Excel, выполняется вызов функции.
Функцию xlAutoClose следует использовать для отмены регистрации функций и команд, освобождения ресурсов, отмены настроек и других задач.
При отмене регистрации функций и команд возникает известная проблема. Дополнительные сведения см. в статье Известные проблемы, возникающие при разработке XLL для Excel.
xlAutoAdd
Excel вызывает функцию xlAutoAdd, когда пользователь с помощью диспетчера надстроек активирует библиотеку XLL во время сеанса Excel. Вызов этой функции не выполняется, когда Excel при запуске загружает предустановленную надстройку.
С помощью этой функции можно отобразить настраиваемое диалоговое окно с уведомлением об активации надстройки, считать данные из реестра или записать их в реестр, а также проверить сведения о лицензировании.
xlAutoRemove
Excel вызывает функцию xlAutoRemove, когда пользователь с помощью диспетчера надстроек отключает библиотеку XLL во время сеанса Excel. Вызов этой функции не выполняется, если сеанс Excel закрывается (правильно или ненормально) при установленной надстройке.
С помощью этой функции можно отобразить настраиваемое диалоговое окно с уведомлением об отключении надстройки, а также считать данные из реестра или записать их в реестр.
xlAddInManagerInfo и xlAddInManagerInfo12
Excel вызывает функцию xlAddInManagerInfo при первом вызове диспетчера надстроек во время сеанса Excel. Если в Excel передается аргумент, равный 1, эта функция должна возвратить строку (как правило, имя надстройки). В противном случае она возвращает значение #VALUE!.
Начиная с Excel 2007, Excel в первую очередь вызывает функцию xlAddInManagerInfo12, а не xlAddInManagerInfo, если она экспортирована с помощью библиотеки XLL. Функция xlAddInManagerInfo12 должна работать так же, как функция xlAddInManagerInfo, во избежание характерных для версий различий в поведении библиотеки XLL. Функция xlAddInManagerInfo12 должна возвращать тип данных XLOPER12, а функция xlAddInManagerInfo — тип данных XLOPER.
xlAutoRegister и xlAutoRegister12
Excel вызывает функцию xlAutoRegister при вызове функции XLM REGISTER или аналогичной функции xlfRegister, предусмотренной в API C, если для регистрируемой функции отсутствуют типы возвращаемого значения и аргумента. С помощью функции xlAutoRegister библиотека XLL может выполнить поиск в своих внутренних списках экспортированных функций и команд, чтобы зарегистрировать функцию с аргументом и вернуть указанные типы.
Начиная с Excel 2007, Excel в первую очередь вызывает функцию xlAddInRegister12, а не xlAddInRegister, если она экспортирована с помощью библиотеки XLL.
Если функция xlAddInRegister/ xlAddInRegister12 пытается зарегистрировать функцию, не предоставив типы аргумента и возвращаемого значения, наблюдается рекурсивный цикл вызовов, вследствие чего стек вызовов постепенно переполняется, а Excel закрывается или перестает отвечать на запросы.
xlAutoFree и xlAutoFree12
Excel вызывает функцию xlAutoFree или xlAutoFree12 только после того, как функция листа XLL возвращает тип данных XLOPER/ XLOPER12 с установленным флагом о наличии памяти, которую все еще необходимо освободить с помощью библиотеки XLL. Благодаря этому библиотека XLL может вернуть динамически выделяемые массивы, строки и внешние ссылки на лист без утечек памяти. Тип данных XLOPER12 поддерживается, начиная с Excel 2007. Дополнительные сведения см. в статье Управление памятью в Excel.
Начиная с Excel 2007, при настройке Excel на многопоточный пересчет листа функция xlAutoFree/ xlAutoFree12 вызывается для потока, который только что использовался для вызова функции, возвратившей его. Вызов функции xlAutoFree/ xlAutoFree12 всегда выполняется перед оценкой последующих ячеек листа для этого потока. Это упрощает потокобезопасную разработку библиотеки XLL. Дополнительные сведения см. в статье Многопотоковый пересчет в Excel.
Создание 64-разрядных библиотек XLL
Excel и определяемые пользователем функции можно выполнять в 64-разрядных операционных системах, ведь они более производительны, если сравнивать их с 32-разрядными операционными системами. Excel передает значения в структуры XLOPER12, которые включают сведения о типах данных. При преобразовании значений в структуре XLOPER12 и собственных типах, таких как int или указатели, должны сохраниться значения в большем типе.
Источник
Базы данных (БД) — набор упорядоченной информации, которая хранится в одном месте. Их создают, чтобы быстро находить, систематизировать и редактировать нужные данные, а при необходимости собирать их в отчёт или показывать в виде диаграммы.
Специализированных программ для формирования и ведения баз данных много. В том же MS Office для этого есть отдельное приложение — Microsoft Access. Но и в Excel достаточно возможностей для создания простых баз и удобного управления ими. Есть ограничение — количество строк базы данных в Excel не должно быть больше одного миллиона.
В статье разберёмся:
- как выглядит база данных в Excel;
- как её создать и настроить;
- как работать с готовой базой данных в Excel — фильтровать, сортировать и искать записи.
База данных в Excel — таблица с информацией. Она состоит из однотипных строк — записей базы данных. Записи распределены по столбцам — полям базы данных.
Скриншот: Excel / Skillbox Media
Названия полей — шапка таблицы — определяют структуру базы данных. Они показывают, какую информацию содержит база. В примере выше это имя менеджера автосалона, дата продажи, модель и характеристики автомобиля, который он продал.
Каждая запись — строка таблицы — относится к одному объекту базы данных и содержит информацию о нём. В нашем примере записи характеризуют продажи, совершённые менеджерами автосалона.
При создании базы данных нельзя оставлять промежуточные строки полностью пустыми, как на скриншоте ниже. Так база теряет свою целостность — в таком виде ей нельзя управлять как единым объектом.
Скриншот: Excel / Skillbox Media
Разберём пошагово, как создать базу данных из примера выше и управлять ей.
Создаём структуру базы данных
Выше мы определили, что структуру базы данных определяют названия полей (шапка таблицы).
Задача для нашего примера — создать базу данных, в которой будут храниться все данные о продажах автомобилей менеджерами автосалона. Каждая запись базы — одна продажа, поэтому названия полей БД будут такими:
- «Менеджер»;
- «Дата продажи»;
- «Марка, модель»;
- «Цвет»;
- «Год выпуска»;
- «Объём двигателя, л»;
- «Цена, руб.».
Введём названия полей в качестве заголовков столбцов и отформатируем их так, чтобы они визуально отличались от дальнейших записей.
Скриншот: Excel / Skillbox Media
Создаём записи базы данных
В нашем примере запись базы данных — одна продажа. Перенесём в таблицу всю имеющуюся информацию о продажах.
При заполнении ячеек с записями важно придерживаться одного стиля написания. Например, Ф. И. О. менеджеров во всех строках вводить в виде «Иванов И. И.». Если где-то написать «Иван Иванов», то дальше в работе с БД будут возникать ошибки.
Скриншот: Excel / Skillbox Media
На этом же этапе важно проконтролировать, подходит ли формат ячеек данным в них. По умолчанию все ячейки получают общий формат. Чтобы в дальнейшем базой данных было удобнее пользоваться, можно изменить формат там, где это нужно.
В нашем примере данные в столбцах A, C и D должны быть в текстовом формате. Данные столбца B должны быть в формате даты — его Excel определил и присвоил автоматически. Данные столбцов E, F — в числовом формате, столбца G — в финансовом.
Чтобы изменить формат ячейки, выделим нужный столбец, кликнем правой кнопкой мыши и выберем «Формат ячеек».
Скриншот: Excel / Skillbox Media
В появившемся меню выберем нужный формат и настроим его. В нашем примере для ячейки «Цена, руб.» выберем финансовый формат, уберём десятичные знаки (знаки после запятой) и выключим отображение символа ₽.
Скриншот: Excel / Skillbox Media
Также изменить формат можно на панели вкладки «Главная».
Скриншот: Excel / Skillbox Media
Присваиваем базе данных имя
Для этого выделим все поля и записи базы данных, включая шапку. Нажмём правой кнопкой мыши и выберем «Имя диапазона».
Скриншот: Excel / Skillbox Media
В появившемся окне вводим имя базы данных без пробелов.
Скриншот: Excel / Skillbox Media
Готово — мы внесли в базу данных информацию о продажах и отформатировали её. В следующем разделе разберёмся, как с ней работать.
Скриншот: Excel / Skillbox Media
Сейчас в созданной базе данных все записи расположены хаотично — не упорядочены ни по датам, ни по фамилиям менеджеров. Разберёмся, как привести БД в более удобный для работы вид. Все необходимые для этого функции расположены на вкладке «Данные».
Скриншот: Excel / Skillbox Media
Для начала добавим фильтры. Это инструмент, с помощью которого из большого объёма информации выбирают и показывают только нужную в данный момент.
Подробнее о фильтрах в Excel говорили в этой статье Skillbox Media.
Выберем любую ячейку из базы данных и на вкладке «Данные» нажмём кнопку «Фильтры».
Скриншот: Excel / Skillbox Media
В каждой ячейке шапки таблицы появились кнопки со стрелками.
Предположим, нужно показать только сделки менеджера Тригубова М. — нажмём на стрелку поля «Менеджер» и оставим галочку только напротив него. Затем нажмём «Применить фильтр».
Скриншот: Excel / Skillbox Media
Готово — в базе отражены данные о продажах только одного менеджера. На кнопке со стрелкой появился дополнительный значок. Он означает, что в этом столбце настроена фильтрация. Чтобы её снять, нужно нажать на этот дополнительный значок и выбрать «Очистить фильтр».
Скриншот: Excel / Skillbox Media
Записи БД можно фильтровать по нескольким параметрам одновременно. Для примера покажем среди продаж Тригубова М. только автомобили дешевле 2 млн рублей.
Для этого в уже отфильтрованной таблице откроем меню фильтра для столбца «Цена, руб.» и нажмём на параметр «Выберите». В появившемся меню выберем параметр «Меньше».
Скриншот: Excel / Skillbox Media
Затем в появившемся окне дополним условие фильтрации — в нашем случае «Меньше 2000000» — и нажмём «Применить фильтр».
Скриншот: Excel / Skillbox Media
Готово — фильтрация сработала по двум параметрам. Теперь БД показывает только те проданные менеджером авто, цена которых ниже 2 млн рублей.
Скриншот: Excel / Skillbox Media
Кроме этого, в Excel можно установить расширенный фильтр. Он позволяет фильтровать БД по сложным критериям сразу в нескольких столбцах. Подробно о том, как настроить расширенный фильтр, говорили в статье.
Сортировка — инструмент, с помощью которого данные в БД организовывают в необходимом порядке. Их можно сортировать по алфавиту, по возрастанию и убыванию чисел, по дате.
Для примера отсортируем сделки выбранного менеджера в хронологическом порядке — по датам. Для этого выделим любую ячейку в поле «Дата продажи» и нажмём кнопку «Сортировка».
Скриншот: Excel / Skillbox Media
В появившемся окне выберем параметр сортировки «От старых к новым» и нажмём «ОК».
Скриншот: Excel / Skillbox Media
Готово — теперь все сделки менеджера даны в хронологическом порядке.
Скриншот: Excel / Skillbox Media
То же самое можно сделать другим способом — выбрать любую ячейку столбца, который нужно отсортировать, и нажать на одну из двух кнопок рядом с кнопкой «Сортировка»: «Сортировка от старых к новым» или «Сортировка от новых к старым». В этом случае данные отсортируются без вызова дополнительных окон.
Скриншот: Excel / Skillbox Media
Кроме стандартной сортировки в Excel, можно настроить сортировку по критериям, выбранным пользователем. Эта функция полезна, когда нужные критерии не предусмотрены стандартными настройками. Например, если требуется отсортировать данные по должностям сотрудников или по названиям отделов.
Подробнее о пользовательской сортировке в Excel говорили в этой статье Skillbox Media.
В процессе работы базы данных могут разрастись до миллиона строк — найти нужную информацию станет сложнее. Фильтрация и сортировка не всегда упрощают задачу. В этом случае для быстрого поиска нужной ячейки — текста или цифры — можно воспользоваться функцией поиска.
Предположим, нужно найти в БД автомобиль стоимостью 14 млн рублей. Перейдём на вкладку «Главная» и нажмём на кнопку «Найти и выделить». Также быстрый поиск можно задавать с любой вкладки Excel — через значок лупы в правом верхнем углу экрана.
Скриншот: Excel / Skillbox Media
В появившемся окне введём значение, которое нужно найти, — 14000000 — и нажмём «Найти далее».
Скриншот: Excel / Skillbox Media
Готово — Excel нашёл ячейку с заданным значением и выделил её.
Скриншот: Excel / Skillbox Media
- В этой статье Skillbox Media собрали в одном месте 15 статей и видео об инструментах Excel, которые ускорят и упростят работу с электронными таблицами.
- Также в Skillbox есть курс «Excel + Google Таблицы с нуля до PRO». Он подойдёт как новичкам, которые хотят научиться работать в Excel с нуля, так и уверенным пользователям, которые хотят улучшить свои навыки. На курсе учат быстро делать сложные расчёты, визуализировать данные, строить прогнозы, работать с внешними источниками данных, создавать макросы и скрипты.
- Кроме того, Skillbox даёт бесплатный доступ к записи онлайн-интенсива «Экспресс-курс по Excel: осваиваем таблицы с нуля за 3 дня». Он подходит для начинающих пользователей. На нём можно научиться создавать и оформлять листы, вводить данные, использовать формулы и функции для базовых вычислений, настраивать пользовательские форматы и создавать формулы с абсолютными и относительными ссылками.
Другие материалы Skillbox Media по Excel
- Как сделать сортировку в Excel: детальная инструкция со скриншотами
- Как установить фильтр и расширенный фильтр в Excel: детальные инструкции со скриншотами
- Как сделать ВПР в Excel: пошаговая инструкция со скриншотами
- Основы Excel: работаем с выпадающим списком. Пошаговая инструкция со скриншотами
- Основы Excel: как использовать функцию ЕСЛИ
- Как сделать сводные таблицы в Excel: пошаговая инструкция со скриншотами
При упоминании баз данных (БД) первым делом, конечно, в голову приходят всякие умные слова типа SQL, Oracle, 1С или хотя бы Access. Безусловно, это очень мощные (и недешевые в большинстве своем) программы, способные автоматизировать работу большой и сложной компании с кучей данных. Беда в том, что иногда такая мощь просто не нужна. Ваш бизнес может быть небольшим и с относительно несложными бизнес-процессами, но автоматизировать его тоже хочется. Причем именно для маленьких компаний это, зачастую, вопрос выживания.
Для начала давайте сформулируем ТЗ. В большинстве случаев база данных для учета, например, классических продаж должна уметь:
- хранить в таблицах информацию по товарам (прайс), совершенным сделкам и клиентам и связывать эти таблицы между собой
- иметь удобные формы ввода данных (с выпадающими списками и т.п.)
- автоматически заполнять этими данными какие-то печатные бланки (платежки, счета и т.д.)
- выдавать необходимые вам отчеты для контроля всего бизнес-процесса с точки зрения руководителя
Со всем этим вполне может справиться Microsoft Excel, если приложить немного усилий. Давайте попробуем это реализовать.
Шаг 1. Исходные данные в виде таблиц
Информацию о товарах, продажах и клиентах будем хранить в трех таблицах (на одном листе или на разных — все равно). Принципиально важно, превратить их в «умные таблицы» с автоподстройкой размеров, чтобы не думать об этом в будущем. Это делается с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table). На появившейся затем вкладке Конструктор (Design) присвоим таблицам наглядные имена в поле Имя таблицы для последующего использования:
Итого у нас должны получиться три «умных таблицы»:
Обратите внимание, что таблицы могут содержать дополнительные уточняющие данные. Так, например, наш Прайс содержит дополнительно информацию о категории (товарной группе, упаковке, весу и т.п.) каждого товара, а таблица Клиенты — город и регион (адрес, ИНН, банковские реквизиты и т.п.) каждого из них.
Таблица Продажи будет использоваться нами впоследствии для занесения в нее совершенных сделок.
Шаг 2. Создаем форму для ввода данных
Само-собой, можно вводить данные о продажах непосредственно в зеленую таблицу Продажи, но это не всегда удобно и влечет за собой появление ошибок и опечаток из-за «человеческого фактора». Поэтому лучше будет на отдельном листе сделать специальную форму для ввода данных примерно такого вида:
В ячейке B3 для получения обновляемой текущей даты-времени используем функцию ТДАТА (NOW). Если время не нужно, то вместо ТДАТА можно применить функцию СЕГОДНЯ (TODAY).
В ячейке B11 найдем цену выбранного товара в третьем столбце умной таблицы Прайс с помощью функции ВПР (VLOOKUP). Если раньше с ней не сталкивались, то сначала почитайте и посмотрите видео тут.
В ячейке B7 нам нужен выпадающий список с товарами из прайс-листа. Для этого можно использовать команду Данные — Проверка данных (Data — Validation), указать в качестве ограничения Список (List) и ввести затем в поле Источник (Source) ссылку на столбец Наименование из нашей умной таблицы Прайс:
Аналогичным образом создается выпадающий список с клиентами, но источник будет уже:
=ДВССЫЛ(«Клиенты[Клиент]»)
Функция ДВССЫЛ (INDIRECT) нужна, в данном случае, потому что Excel, к сожалению, не понимает прямых ссылок на умные таблицы в поле Источник. Но та же ссылка «завернутая» в функцию ДВССЫЛ работает при этом «на ура» (подробнее об этом было в статье про создание выпадающих списков с наполнением).
Шаг 3. Добавляем макрос ввода продаж
После заполнения формы нужно введенные в нее данные добавить в конец таблицы Продажи. Сформируем при помощи простых ссылок строку для добавления прямо под формой:
Т.е. в ячейке A20 будет ссылка =B3, в ячейке B20 ссылка на =B7 и т.д.
Теперь добавим элементарный макрос в 2 строчки, который копирует созданную строку и добавляет ее к таблице Продажи. Для этого жмем сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer). Если эту вкладку не видно, то включите ее сначала в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon). В открывшемся окне редактора Visual Basic вставляем новый пустой модуль через меню Insert — Module и вводим туда код нашего макроса:
Sub Add_Sell() Worksheets("Форма ввода").Range("A20:E20").Copy 'копируем строчку с данными из формы n = Worksheets("Продажи").Range("A100000").End(xlUp).Row 'определяем номер последней строки в табл. Продажи Worksheets("Продажи").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues 'вставляем в следующую пустую строку Worksheets("Форма ввода").Range("B5,B7,B9").ClearContents 'очищаем форму End Sub
Теперь можно добавить к нашей форме кнопку для запуска созданного макроса, используя выпадающий список Вставить на вкладке Разработчик (Developer — Insert — Button):
После того, как вы ее нарисуете, удерживая нажатой левую кнопку мыши, Excel сам спросит вас — какой именно макрос нужно на нее назначить — выбираем наш макрос Add_Sell. Текст на кнопке можно поменять, щелкнув по ней правой кнопкой мыши и выбрав команду Изменить текст.
Теперь после заполнения формы можно просто жать на нашу кнопку, и введенные данные будут автоматически добавляться к таблице Продажи, а затем форма очищается для ввода новой сделки.
Шаг 4. Связываем таблицы
Перед построением отчета свяжем наши таблицы между собой, чтобы потом можно было оперативно вычислять продажи по регионам, клиентам или категориям. В старых версиях Excel для этого потребовалось бы использовать несколько функций ВПР (VLOOKUP) для подстановки цен, категорий, клиентов, городов и т.д. в таблицу Продажи. Это требует времени и сил от нас, а также «кушает» немало ресурсов Excel. Начиная с Excel 2013 все можно реализовать существенно проще, просто настроив связи между таблицами.
Для этого на вкладке Данные (Data) нажмите кнопку Отношения (Relations). В появившемся окне нажмите кнопку Создать (New) и выберите из выпадающих списков таблицы и названия столбцов, по которым они должны быть связаны:
Важный момент: таблицы нужно задавать именно в таком порядке, т.е. связанная таблица (Прайс) не должна содержать в ключевом столбце (Наименование) повторяющихся товаров, как это происходит в таблице Продажи. Другими словами, связанная таблица должна быть той, в которой вы искали бы данные с помощью ВПР, если бы ее использовали.
Само-собой, аналогичным образом связываются и таблица Продажи с таблицей Клиенты по общему столбцу Клиент:
После настройки связей окно управления связями можно закрыть, повторять эту процедуру уже не придется.
Шаг 5. Строим отчеты с помощью сводной
Теперь для анализа продаж и отслеживания динамики процесса, сформируем для примера какой-нибудь отчет с помощью сводной таблицы. Установите активную ячейку в таблицу Продажи и выберите на ленте вкладку Вставка — Сводная таблица (Insert — Pivot Table). В открывшемся окне Excel спросит нас про источник данных (т.е. таблицу Продажи) и место для выгрузки отчета (лучше на новый лист):
Жизненно важный момент состоит в том, что нужно обязательно включить флажок Добавить эти данные в модель данных (Add data to Data Model) в нижней части окна, чтобы Excel понял, что мы хотим строить отчет не только по текущей таблице, но и задействовать все связи.
После нажатия на ОК в правой половине окна появится панель Поля сводной таблицы, где нужно щелкнуть по ссылке Все, чтобы увидеть не только текущую, а сразу все «умные таблицы», которые есть в книге.А затем можно, как и в классической сводной таблице, просто перетащить мышью нужные нам поля из любых связанных таблиц в области Фильтра, Строк, Столбцов или Значений — и Excel моментально построит любой нужный нам отчет на листе:
Не забудьте, что сводную таблицу нужно периодически (при изменении исходных данных) обновлять, щелкнув по ней правой кнопкой мыши и выбрав команду Обновить (Refresh), т.к. автоматически она этого делать не умеет.
Также, выделив любую ячейку в сводной и нажав кнопку Сводная диаграмма (Pivot Chart) на вкладке Анализ (Analysis) или Параметры (Options) можно быстро визуализировать посчитанные в ней результаты.
Шаг 6. Заполняем печатные формы
Еще одной типовой задачей любой БД является автоматическое заполнение различных печатных бланков и форм (накладные, счета, акты и т.п.). Про один из способов это сделать, я уже как-то писал. Здесь же реализуем, для примера, заполнение формы по номеру счета:
Предполагается, что в ячейку C2 пользователь будет вводить число (номер строки в таблице Продажи, по сути), а затем нужные нам данные подтягиваются с помощью уже знакомой функции ВПР (VLOOKUP) и функции ИНДЕКС (INDEX).
Ссылки по теме
- Как использовать функцию ВПР (VLOOKUP) для поиска и подстановки значений
- Как заменить ВПР функциями ИНДЕКС и ПОИСКПОЗ
- Автоматическое заполнение форм и бланков данными из таблицы
- Создание отчетов с помощью сводных таблиц
title | manager | ms.date | ms.audience | ms.topic | keywords | ms.assetid | ms.localizationpriority |
---|---|---|---|---|---|---|---|
Creating XLLs |
soliver |
11/16/2014 |
Developer |
reference |
dlls [excel 2007], calling into excel,xlAutoFree function [Excel 2007],xlAutoFree12 function [Excel 2007],xlcall32.lib [Excel 2007],xlAutoRegister function [Excel 2007],xlcall.cpp [Excel 2007],xlAutoRemove function [Excel 2007],xlAddInManagerInfo function [Excel 2007],xlAutoAdd function [Excel 2007],xlAutoOpen function [Excel 2007],xlAutoClose function [Excel 2007],DLLs [Excel 2007], turning into XLLs,XLLs [Excel 2007], calling into Excel,xlAutoRegister12 function [Excel 2007],xlcall.h [Excel 2007],xlAddInManagerInfo12 function [Excel 2007] |
7754998f-4e13-4a37-9724-43b6ee6c919b |
high |
Creating XLLs
Applies to: Excel 2013 | Office 2013 | Visual Studio
If your DLL is self-contained or relies only on other libraries, you must know how to enable Microsoft Excel to access its functions and commands. For more information, see Access DLLs in Excel.
However, if your DLL needs to access Excel functionality (for example, to get the contents of a cell, to call a worksheet function, or to interrogate Excel to obtain workspace information), your code must be able to call back into Excel.
The Excel C API provides several functions that enable DLLs to call back into Excel. To access these, the DLL must be linked statically at compile time with the Excel 32-bit library, xlcall32.lib. The static library is downloadable from Microsoft as part of the Microsoft Excel 2013 XLL SDK, which includes both 32-bit and 64-bit versions of this library.
Enabling DLLs to Call Back into Excel
For a DLL to be able to access the functionality in Excel and get or set workspace information, it must first obtain the addresses of the Excel callback functions Excel4, Excel4v, Excel12, and Excel12v. The last two were introduced in Excel 2007 and are available in subsequent versions. To access all of these, the DLL project must include references to the following files from the Excel 2013 XLL SDK. If you want to access only the first two callbacks (in any version of Excel), your project needs to include only the first two files.
Xlcall.h
The Xlcall.h file contains the following items:
-
Function prototypes for all callback functions.
-
Definitions of the data structures that the callbacks use to exchange data between the DLL/XLL and Excel, and data-type constant definitions.
-
Definitions of the C API function and command equivalents of the worksheet, macro sheet functions, and supported Excel commands.
-
Definitions of callback function return values.
You should use the #include directive for this file, directly or indirectly via another header file, in all files that access the C API or that handle data types that the C API uses.
Xlcall32.lib
The Xlcall32.lib library exports the first two callbacks, Excel4 and Excel4v, and also the XlCallVer function. Without a reference to this library in your project, the linker cannot create the XLL if you have used any of these callbacks in your code. (You can obtain the addresses of these functions by linking dynamically to the equivalent Xlcall32.dll that is copied to your system as part of a normal Excel installation.)
Xlcall.cpp
The Excel callbacks Excel12 and Excel12v are not exported in Xlcall32.lib. This ensures that XLL projects that you create starting in Excel 2007 will also work with earlier versions of Excel. The Xlcall.cpp module contains code for the Excel12 and Excel12v functions, which call into an Excel entry point starting in Excel 2007, or return a safe error value if you are running an earlier version of Excel. You should include this module in your project if you want to create an XLL that runs starting in Excel 2007 and that is able to use the new data types that handle larger grids and longer Unicode strings.
[!NOTE]
Starting with the Excel 2010 SDK, this file can be compiled for both 32-bit and 64-bit XLLs.
Turning DLLs into XLLs: Add-in Manager Interface Functions
An XLL is a DLL that exports several procedures that are called by Excel or the Excel Add-in Manager. These procedures are described briefly here and discussed in detail in Add-in Manager and XLL Interface Functions. All of these DLL callbacks start with the prefix xlAuto. Only one of these, the command xlAutoOpen, is required. It is called when the add-in is activated, and it is typically used to register XLL functions and commands with Excel and to do other initialization tasks. The function signatures and example implementations of all of the xlAuto functions are provided in later sections.
Even though xlAutoOpen is the only required one of these callbacks, your add-in may also need to export others depending on its behavior.
Excel 2007 introduced a new data type, XLOPER12, to accommodate larger grids and to support long Unicode strings. XLOPER12 is described later in this topic. Whereas xlAuto functions take or return the old data type XLOPER, new versions of these functions were introduced in Excel 2007 that use XLOPER12 data types. With the exception of xlAutoFree12, which you must sometimes implement to avoid XLOPER12 memory leaks, you can safely omit all the version 12 xlAuto functions, in which case, starting in Excel 2007, Excel calls the XLOPER versions.
xlAutoOpen
Excel calls the xlAutoOpen function whenever the XLL is activated. The add-in will be activated at the start of an Excel session if it was active in the last Excel session that ended normally. The add-in is activated if it is loaded during an Excel session. The add-in can be deactivated and reactivated during an Excel session, and the function is called on reactivation.
You should use xlAutoOpen to register XLL functions and commands, initialize data structures, customize the user interface, and so on.
If your add-in implements and exports the xlAutoRegister function or the xlAutoRegister12 function, Excel might attempt to activate and register a function or command without first calling the xlAutoOpen function. In this case, you should ensure that your add-in is sufficiently initialized for your function or command to work properly. If it is not, you should either fail the attempt to register the function or command, or carry out the necessary initialization.
xlAutoClose
Excel calls the xlAutoClose function whenever the XLL is deactivated. The add-in will be deactivated when an Excel session ends normally. If the user deactivates the add-in during an Excel session, the function is called.
You should use xlAutoClose to unregister functions and commands, release resources, undo customizations, and so on.
[!NOTE]
There is a known issue with the unregistration of functions and commands. For more information, see Known Issues in Excel XLL Development.
xlAutoAdd
Excel calls the xlAutoAdd function whenever the user activates the XLL during an Excel session by using the Add-In Manager. This function is not called when Excel starts and loads a preinstalled add-in.
You can use this function to display a custom dialog box that tells the user that the add-in has been activated, to read from or write to the registry, or to check licensing information.
xlAutoRemove
Excel calls the xlAutoRemove function whenever the user deactivates the XLL during an Excel session by using the Add-In Manager. This function is not called when an Excel session closes, normally or abnormally, with the add-in installed.
You can use this function to display a custom dialog box that tells the user that the add-in has been deactivated, or to read from or write to the registry.
xlAddInManagerInfo/xlAddInManagerInfo12
Excel calls the xlAddInManagerInfo function when the Add-in Manager is invoked for the first time in an Excel session. If Excel passes an argument equal to 1, this function should return a string (typically, the name of the add-in); otherwise, it should return #VALUE!.
Starting in Excel 2007, Excel calls the xlAddInManagerInfo12 function in preference to the xlAddInManagerInfo function if it is exported by the XLL. The xlAddInManagerInfo12 function should work in the same way as the xlAddInManagerInfo function to avoid version-specific differences in the behavior of the XLL. The xlAddInManagerInfo12 function should return an XLOPER12 data type, whereas the xlAddInManagerInfo function should return an XLOPER data type.
xlAutoRegister/xlAutoRegister12
Excel calls the xlAutoRegister function whenever a call has been made to the XLM function REGISTER, or the C API equivalent xlfRegister function, with the return and argument types missing for the function being registered. The xlAutoRegister function allows the XLL to search its internal lists of exported functions and commands to register the function with the argument and return the specified types.
Starting in Excel 2007, Excel calls the xlAddInRegister12 function in preference to the xlAddInRegister function if it is exported by the XLL.
[!NOTE]
If xlAddInRegister/ xlAddInRegister12 tries to register the function without supplying the argument and return types, a recursive calling loop occurs that eventually overflows the call stack and causes Excel to close or stop responding.
xlAutoFree/xlAutoFree12
Excel calls the xlAutoFree/xlAutoFree12 function just after an XLL worksheet function returns an XLOPER/ XLOPER12 data type with a flag set that tells Excel there is memory that the XLL still needs to release. This enables the XLL to return dynamically allocated arrays, strings, and external references to the worksheet without memory leaks. Starting in Excel 2007, the XLOPER12 data type is supported. For more information, see Memory Management in Excel.
[!NOTE]
Starting in Excel 2007, when Excel is configured to use multithreaded worksheet recalculation, the xlAutoFree/ xlAutoFree12 function is called on the same thread that was just used to call the function that returned it. The call to xlAutoFree/ xlAutoFree12 is always made before any subsequent worksheet cells are evaluated on that thread. This simplifies thread-safe design in your XLL. For more information, see Multithreaded Recalculation in Excel.
Creating 64-bit XLLs
Excel and user-defined functions can run on 64-bit operating systems to take advantage of performance benefits over 32-bit operating systems. Excel passes values in XLOPER12 structures that include information about the types for the data. Be careful when you convert between values in the XLOPER12 structure and native types like int or pointers to preserve the values in the larger type.
See also
Call XLL Functions from the Function Wizard or Replace Dialog Boxes
Add-in Manager and XLL Interface Functions
Developing Excel XLLs
Многие пользователи активно применяют Excel для генерирования отчетов, их последующей редакции. Для удобного просмотра информации и получения полного контроля при управлении данными в процессе работы с программой.
Внешний вид рабочей области программы – таблица. А реляционная база данных структурирует информацию в строки и столбцы. Несмотря на то что стандартный пакет MS Office имеет отдельное приложение для создания и ведения баз данных – Microsoft Access, пользователи активно используют Microsoft Excel для этих же целей. Ведь возможности программы позволяют: сортировать; форматировать; фильтровать; редактировать; систематизировать и структурировать информацию.
То есть все то, что необходимо для работы с базами данных. Единственный нюанс: программа Excel — это универсальный аналитический инструмент, который больше подходит для сложных расчетов, вычислений, сортировки и даже для сохранения структурированных данных, но в небольших объемах (не более миллиона записей в одной таблице, у версии 2010-го года выпуска ).
Структура базы данных – таблица Excel
База данных – набор данных, распределенных по строкам и столбцам для удобного поиска, систематизации и редактирования. Как сделать базу данных в Excel?
Вся информация в базе данных содержится в записях и полях.
Запись – строка в базе данных (БД), включающая информацию об одном объекте.
Поле – столбец в БД, содержащий однотипные данные обо всех объектах.
Записи и поля БД соответствуют строкам и столбцам стандартной таблицы Microsoft Excel.
Если Вы умеете делать простые таблицы, то создать БД не составит труда.
Создание базы данных в Excel: пошаговая инструкция
Пошаговое создание базы данных в Excel. Перед нами стоит задача – сформировать клиентскую БД. За несколько лет работы у компании появилось несколько десятков постоянных клиентов. Необходимо отслеживать сроки договоров, направления сотрудничества. Знать контактных лиц, данные для связи и т.п.
Как создать базу данных клиентов в Excel:
- Вводим названия полей БД (заголовки столбцов).
- Вводим данные в поля БД. Следим за форматом ячеек. Если числа – то числа во всем столбце. Данные вводятся так же, как и в обычной таблице. Если данные в какой-то ячейке – итог действий со значениями других ячеек, то заносим формулу.
- Чтобы пользоваться БД, обращаемся к инструментам вкладки «Данные».
- Присвоим БД имя. Выделяем диапазон с данными – от первой ячейки до последней. Правая кнопка мыши – имя диапазона. Даем любое имя. В примере – БД1. Проверяем, чтобы диапазон был правильным.
Основная работа – внесение информации в БД – выполнена. Чтобы этой информацией было удобно пользоваться, необходимо выделить нужное, отфильтровать, отсортировать данные.
Как вести базу клиентов в Excel
Чтобы упростить поиск данных в базе, упорядочим их. Для этой цели подойдет инструмент «Сортировка».
- Выделяем тот диапазон, который нужно отсортировать. Для целей нашей выдуманной компании – столбец «Дата заключения договора». Вызываем инструмент «Сортировка».
- При нажатии система предлагает автоматически расширить выделенный диапазон. Соглашаемся. Если мы отсортируем данные только одного столбца, остальные оставим на месте, то информация станет неправильной. Открывается меню, где мы должны выбрать параметры и значения сортировки.
Данные в таблице распределились по сроку заключения договора.
Теперь менеджер видит, с кем пора перезаключить договор. А с какими компаниями продолжаем сотрудничество.
БД в процессе деятельности фирмы разрастается до невероятных размеров. Найти нужную информацию становится все сложнее. Чтобы отыскать конкретный текст или цифры, можно воспользоваться одним из следующих способов:
- Одновременным нажатием кнопок Ctrl + F или Shift + F5. Появится окно поиска «Найти и заменить».
- Функцией «Найти и выделить» («биноклем») в главном меню.
Посредством фильтрации данных программа прячет всю не интересующую пользователя информацию. Данные остаются в таблице, но невидимы. В любой момент их можно восстановить.
В программе Excel чаще всего применяются 2 фильтра:
- Автофильтр;
- фильтр по выделенному диапазону.
Автофильтр предлагает пользователю выбрать параметр фильтрации из готового списка.
- На вкладке «Данные» нажимаем кнопку «Фильтр».
- После нажатия в шапке таблицы появляются стрелки вниз. Они сигнализируют о включении «Автофильтра».
- Чтобы выбрать значение фильтра, щелкаем по стрелке нужного столбца. В раскрывающемся списке появляется все содержимое поля. Если хотим спрятать какие-то элементы, сбрасываем птички напротив их.
- Жмем «ОК». В примере мы скроем клиентов, с которыми заключали договоры в прошлом и текущем году.
- Чтобы задать условие для фильтрации поля типа «больше», «меньше», «равно» и т.п. числа, в списке фильтра нужно выбрать команду «Числовые фильтры».
- Если мы хотим видеть в таблице клиентов, с которыми заключили договор на 3 и более лет, вводим соответствующие значения в меню пользовательского автофильтра.
Готово!
Поэкспериментируем с фильтрацией данных по выделенным ячейкам. Допустим, нам нужно оставить в таблице только те компании, которые работают в Беларуси.
- Выделяем те данные, информация о которых должна остаться в базе видной. В нашем случае находим в столбце страна – «РБ». Щелкаем по ячейке правой кнопкой мыши.
- Выполняем последовательно команду: «фильтр – фильтр по значению выделенной ячейки». Готово.
Если в БД содержится финансовая информация, можно найти сумму по разным параметрам:
- сумма (суммировать данные);
- счет (подсчитать число ячеек с числовыми данными);
- среднее значение (подсчитать среднее арифметическое);
- максимальные и минимальные значения в выделенном диапазоне;
- произведение (результат умножения данных);
- стандартное отклонение и дисперсия по выборке.
Порядок работы с финансовой информацией в БД:
- Выделить диапазон БД. Переходим на вкладку «Данные» — «Промежуточные итоги».
- В открывшемся диалоге выбираем параметры вычислений.
Инструменты на вкладке «Данные» позволяют сегментировать БД. Сгруппировать информацию с точки зрения актуальности для целей фирмы. Выделение групп покупателей услуг и товаров поможет маркетинговому продвижению продукта.
Готовые образцы шаблонов для ведения клиентской базы по сегментам.
- Шаблон для менеджера, позволяющий контролировать результат обзвона клиентов. Скачать шаблон для клиентской базы Excel. Образец:
- Простейший шаблон.Клиентская база в Excel скачать бесплатно. Образец:
Шаблоны можно подстраивать «под себя», сокращать, расширять и редактировать.