Что такое excel

Критика

Из-за того, что Excel работает на основе расчетов с плавающей запятой, статистическая точность Excel подвергается критике. Сторонники Excel заявляют в ответ, что ошибки проявляются лишь в особых условиях специально подобранных исходных данных, которые затрагивают относительно небольшое число пользователей, и с низкой вероятностью могут встретиться на практике. Для версий 97, 2000, 2002 зафиксированы ошибки при выполнении функции MOD (деление с остатком) при определённых аргументах, где функция вместо результата возвращает ошибку #NUM!.

Проблемы с датой

В версиях Excel до 2007 включительно 1900 год ошибочно считался високосным. Ошибка возникла в Lotus 1-2-3, была намеренно внесена в Excel для совместимости и поддерживалась для обратной совместимости.

Ошибки отображения Excel

Скриншот Microsoft Excel 2007, показывающий ошибку отображения 65535

22 сентября 2007 года было сообщено, что в определённых ситуациях Excel 2007 будет показывать неправильные результаты. В частности, для тех пар чисел, чьё произведение равно 65535 (например, 850 и 77,1), Excel отобразит в качестве итога 100000. Это происходит примерно с 14,5 % таких пар. Кроме того, если к результату добавить единицу, Excel выведет итог 100001. Однако если из итога вычесть единицу, на дисплее отобразится правильный результат 65534 (также, если итог умножить или разделить на 2, будут отображены 131070 и 32767,5 соответственно).

Microsoft сообщила в блоге Microsoft Excel, что проблема существует в отображении шести конкретных значений с плавающей запятой между 65534,99999999995 и 65535 и шести значений между 65535,99999999995 и 65536 (не включая границ). Любые расчёты, результат которых равен одному из двенадцати значений, будут отображаться неправильно. Фактические данные, хранящиеся и передающиеся в другие ячейки, верны, неверно лишь отображение значения. Ошибка появилась в Excel 2007 и отсутствует в предыдущих версиях. 9 октября 2007 года Microsoft выпустила патч, исправляющий проблему. Он вошёл и в состав исправлений Service Pack 1.

Данная ошибка не наблюдается в Microsoft Excel 2016.

Возможности табличного процессора Microsoft Excel

В одном из своих ключевых проектов разработчики представили следующий набор способностей:

  • расширенный арсенал форматирования содержимого ячеек в Excel. Доступен выбор цвета и гарнитуры шрифта, начертания текста, обрамления, цвета заливки, выравнивания; уменьшение и увеличение отступа. Наконец, в утилите возможно задание числового формата ячеек с уменьшением или увеличением разрядности; вставка, удаление и перемещение ячеек; подсчет агрегированной суммы; сортировка и фильтрация по заданному критерию и другие опции
  • вставка огромного количества диаграмм и графиков для анализа и визуализации числовых данных. Так, штатный функционал Excel позволяет вставить на лист иллюстрации, сводные таблицы, гистограммы или линейчатые диаграммы; иерархические, каскадные и лепестковые диаграммы. В дополнение к этому, доступно использование графиков с областями; статистических, комбинированных и кольцевых диаграмм, а также особого подвида точечных или пузырьковых спарклайнов
  • схожий с Word инструментарий разметки страницы. Пользователь способен конфигурировать поля, ориентацию и размер страниц; выбрать индивидуальную тему из встроенной библиотеки или загруженную из сети; настроить цвета, шрифты и эффекты, применимые к табличному содержимому; ширину, высоту и масштаб распечаток и прочие элементы
  • широкий ассортимент представленных в программе Excel функций. Все функции разбиты на соответствующие категории, что упрощает их использование и выбор. Также можно составлять зависимости формул, наглядно демонстрирующие, какие именно ячейки влияют на подсчет результирующих значений в искомом слоте
  • получение внешних данных из сторонних источников для использования в реляционных базах данных. Вложенный функциональный набор Excel позволяет тут же сгенерировать запрос для переноса в СУБД из внешнего файла, веб-служб, ODBC-контейнера и прочих источников
  • встроенные продвинутые средства рецензирования и совместной работы. Читатели и редакторы могут одновременно открывать один и тот же документ после его синхронизации с облаком, вносить в него изменения и правки, а также добавлять комментарии для других рецензентов
  • интегрированный движок проверки орфографии, тезауруса, синтаксиса и пунктуации набираемого текста. Если данный модуль встречается с новым для него термином или фразой, она тут же выделяется подчеркиванием, дабы автор документа был осведомлен о вероятной ошибке.

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

Лента и ее настройка

Начиная с версии 2007, в «Эксель» вместо привычного меню появилась лента, на которую вынесены основные пиктограммы, необходимые для работы в программе. Иконки, соответствующие определенным действиям, формируются в группы. Помимо стандартных групп с расположенными на них пиктограммами от соответствующих команд пользователь может настраивать собственные группы и включать туда необходимые ему команды.

Для этого необходимо щелкнуть правой кнопкой мыши по ленте и в появившемся меню выбрать «Настройка ленты». Выбираем «Новая вкладка», там — новую группу и перетаскиваем в нее необходимые команды.

История

В 1982 году Microsoft запустила на рынок свой первый электронный табличный процессор Multiplan, который был очень популярен на CP/M системах, но на MS-DOS системах он уступал Lotus 1-2-3.
Первая версия Excel предназначалась для Mac и была выпущена в 1985 году, а первая версия для Windows была выпущена в . Lotus не торопилась выпускать 1-2-3 под Windows, и Excel с 1988 года начала обходить по продажам 1-2-3, что в конечном итоге помогло Microsoft достичь позиций ведущего разработчика программного обеспечения. Microsoft укрепляла своё преимущество с выпуском каждой новой версии, что имело место примерно каждые два года.
Текущая версия для платформы Windows — Excel 19, также известная как Microsoft Office Excel 2019. Текущая версия для платформы macOS — Microsoft Excel 2019.

В начале своего пути Excel стал причиной иска о товарном знаке от другой компании, уже продававшей пакет программ под названием «Excel». В результате спора Microsoft была обязана использовать название «Microsoft Excel» во всех своих официальных пресс-релизах и юридических документах. Однако со временем эта практика была позабыта, и Microsoft окончательно устранила проблему, приобретя товарный знак другой программы. Microsoft также решила использовать буквы XL как сокращённое название программы: иконка Windows-программы состоит из стилизованного изображения этих двух букв, а расширение файлов по умолчанию в Excel — .xls.

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

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

Будучи впервые объединёнными в Microsoft Office в 1993 году, Microsoft Word и Microsoft PowerPoint получили новый графический интерфейс для соответствия Excel, главного стимула модернизации ПК в то время.

Начиная с года, в состав Excel входит Visual Basic для приложений (VBA), язык программирования, основанный на Visual Basic, позволяющий автоматизировать задачи Excel. VBA является мощным дополнением к приложению и в более поздних версиях Excel доступна полнофункциональная интегрированная среда разработки. Можно создать VBA-код, повторяющий действия пользователя и таким образом автоматизировать простые задачи. VBA позволяет создавать формы для общения с пользователем. Язык поддерживает использование (но не создание) DLL от ActiveX; более поздние версии позволяют использовать элементы объектно-ориентированного программирования.

Функциональность VBA делала Excel легкой мишенью для макровирусов. И это было серьёзной проблемой до тех пор, пока антивирусные продукты не научились обнаруживать их. Фирма Microsoft, с опозданием приняв меры для уменьшения риска, добавила возможность выбора режима безопасности:

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

Версии Excel от 5.0 до 9.0 содержат различные «пасхальные яйца», хотя, начиная с версии 10 Microsoft начала принимать меры по их ликвидации.

Формат даты

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

Электронные таблицы понимают информацию не так, как это делает человек. Например, если Вы введете в ячейку слово “October”, Excel не поймет, что Вы имеете в виду дату, и сочтёт это обычным текстом. Вместо этого, при вводе дат, используйте определённый формат, который понятен Excel, например, месяц/день/год или день/месяц/год – в зависимости от того, в какой стране Вы находитесь и какой локализацией программы пользуетесь. В примере ниже мы введём “10/12/2014”, чтобы получить дату October 12, 2014. В этом случае Excel автоматически установит для ячейки формат даты.

Что такое excel

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

Что такое excel

Если формат даты не был применен автоматически, значит приложение Excel не распознало дату, которую Вы ввели. В следующем примере мы ввели “March 15th”. Excel не распознал в этой записи дату, поэтому формат ячейки остался General (Общий).

Что такое excel

С другой стороны, если мы введем “March 15” (без th), Excel распознает дату. Поскольку год в этой дате не указан, автоматически добавится текущий год, и дата будет содержать всю необходимую информацию. Мы также можем записать дату несколькими другими способами, например, 3/15, 3/15/2014 или March 15 2014, и таблица по-прежнему поймёт, что это дата.

В русской локализации 15/3, 15/3/2014 или 15 март 2014.

Другие варианты форматов даты

В некоторых приложениях присутствует гораздо больший выбор форматов даты. Доступ к ним немного отличается, в зависимости от приложения, которое Вы используете. В Excel 2007-2013 откройте выпадающее меню Number Format (Числовые форматы) и выберите в нем пункт More Number Formats (Другие числовые форматы).

Что такое excel

Откроется диалоговое окно Формат ячеек, где Вы сможете выбрать нужный формат даты.

Что такое excel

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

Что такое excel

Форматы файлов

В Microsoft Excel вплоть до 2003 версии включительно использовался свой собственный бинарный формат файлов (BIFF) в качестве основного. Excel 2007 использует Microsoft Office Open XML в качестве своего основного формата.

Несмотря на то, что Excel 2007 поддерживает и направлен на использование новых XML-форматов в качестве основных, он по-прежнему совместим с традиционными бинарными форматами. Кроме того, большинство версий Microsoft Excel может читать CSV, DBF, SYLK, DIF и другие форматы.

Office Open XML

Основная статья: Office Open XML

Microsoft Excel 2007, наряду с другими продуктами Microsoft Office 2007, вводит множество новых форматов файлов. Они являются частью Office Open XML (OOXML) спецификации.

Новые форматы Excel 2007
Формат Расширение Примечания
Рабочая книга Excel .xlsx Стандартный формат рабочих книг Excel 2007. В действительности это сжатый ZIP-архив каталога XML-документов. Является заменой бывшего бинарного формата .xls, хотя и не поддерживает макросы по соображениям безопасности.
Рабочая книга Excel с макросами .xlsm Та же рабочая книга Excel, но с поддержкой макросов.
Бинарная рабочая книга Excel .xlsb Та же рабочая книга Excel с макросами, но хранящая информацию в бинарном формате, открывая документы быстрее, чем XML. В особенности часто используется для очень больших документов с десятками тысяч строк и/или сотнями колонок.
Шаблон Excel с макросами .xltm Шаблон, созданный как основа для рабочих книг, включена поддержка макросов. Заменяет старый формат .xlt.
Надстройка Excel .xlam Надстройка Excel, направленная на добавление дополнительных функциональных возможностей и инструментов.

Экспорт и перемещение таблиц

API позволяет открывать таблицы Excel в ряде других приложений. Это включает в себя открытие документов Excel на веб-страницах с помощью ActiveX или таких плагинов, как Adobe Flash Player. Проект Apache POI представляет Java-библиотеки для чтения и записи электронных таблиц Excel. Также предпринимались попытки копировать таблицы Excel в веб-приложения с использованием разделённых запятыми значений (CSV).

Таблицы Excel

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

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

Что такое excel

Фильтр удобен, когда требуются только определенные данные, скажем, нам требуются данные по учебникам, выпущенным только в 2011 году. Устанавливаем в нужной колонке фильтр и выделяем год 2011, Excel демонстрирует нам все книги выпущенные только в 2011 году.

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

Если, например, в таблице в горизонтальных рядах даны данные, а в ячейках последнего столбца нужен результат, то формулу нужно ввести только один раз, а затем, подцепив правый нижний угол ячейки «растянуть» ее на весь столбец. То есть, в каждой отдельной ячейке формулу вводить не требуется. Это же можно сделать и в горизонтальных рядах.

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

Для чего нужны числовые форматы?

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

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

Понятие об электронной таблице

Но по-порядку. Начнем рассматривать вопрос о том, что такое «Эксель», с анализа понятия «электронная таблица».

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

Рабочее пространство Excel

Рабочая область Эксель называется рабочей книгой, которая состоит из рабочих листов. То есть, в одном файле-книге может располагаться одна или несколько таблиц, называемых Листами.

Каждый лист состоит из множества ячеек, образующих таблицу данных. Строки нумеруются по порядку от 1 до 1 048 576. Столбцы именуются буквами от А до XFD.

Ячейки и координаты в Excel

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

Каждая ячейка имеет свои координаты. Например, ячейка не пересечении 3-й строки и 2-го столбца имеет координаты B3 (см. рис.). Координаты ячейки всегда подсвечены на листе цветом, посмотрите на рисунке как выглядят номер третьей строчки и буква второго столбца – они затемнены.

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

А теперь давайте взглянем на окно Excel в целом и разберемся с назначением некоторых его элементов:

  • Заголовок страницы отображает название текущего рабочего документа
  • Выбор представления – переключение между вариантами отображения рабочего листа
  • Лента – элемент интерфейса, на котором расположены кнопки команд и настроек. Лента разделена на логические блоки вкладками. Например, вкладка «Вид» помогает настроить внешний вид рабочего документа, «Формулы» — инструменты для проведения вычислений и т.д.
  • Масштаб отображения – название говорит само за себя. Выбираем соотношение между реальным размером листа и его представлением на экране.
  • Панель быстрого доступа – зона размещения элементов, которые используются чаще всего и отсутствуют на ленте
  • Поле имени отображает координаты выделенной ячейки или имя выделенного элемента
  • Полосы прокрутки – позволяют прокручивать лист по горизонтали и по вертикали
  • Строка состояния отображает некоторые промежуточные вычисления, информирует о включении «Num Lock», «Caps Lock», «Scroll Lock»
  • Строка формул служит для ввода и отображения формулы в активной ячейке. Если в этой строке формула, в самой ячейке вы увидите результат вычисления или сообщение об ошибке.
  • Табличный курсор – отображает ячейку, которая в данный момент активна для изменения содержимого
  • Номера строк и имена столбцов – шкала по которой определяется адрес ячейки. На схеме можно заметить, что активна ячейка L17, 17 строка шкалы и элемент L выделены тёмным цветом. Эти же координаты вы можете увидеть в Поле имени.
  • Вкладки листов помогают переключаться между всеми листами рабочей книги (а их, кстати, может быть очень много)

Что такое excelРабочая область Excel

На этом закончим наш первый урок. Мы рассмотрели назначение программы Excel и основные (еще не все) элементы её рабочего листа. В следующем уроке мы рассмотрим навигацию по рабочей книге, виды окон, меню и панелей.

Ввод формул

Что такое excel

Основное предназначение рассматриваемых электронных таблиц — это обработка введенных данных. Последняя осуществляется главным образом вводом формул в «Экселе». С самых первых версий этой программы формулы вводились посредством набора знака «=», после чего шли ссылки на соответствующие ячейки и арифметические знаки. В дальнейшем появилась возможность вводить вместо «=» знаки сложения, вычитания, но при вызове мастера функций все равно показывается «=».

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

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

Что такое excel

Форматы файлов

В Microsoft Excel вплоть до 2003 версии включительно использовался свой собственный бинарный формат файлов (BIFF) в качестве основного. Excel 2007 использует Microsoft Office Open XML в качестве своего основного формата.

Несмотря на то, что Excel 2007 поддерживает и направлен на использование новых XML-форматов в качестве основных, он по-прежнему совместим с традиционными бинарными форматами. Кроме того, большинство версий Microsoft Excel могут читать CSV, DBF, SYLK, DIF и другие форматы.

Office Open XML

Microsoft Excel 2007, наряду с другими продуктами Microsoft Office 2007, вводит множество новых форматов файлов. Они являются частью Office Open XML (OOXML) спецификации.

Новые форматы Excel 2007
Формат Расширение Примечания
Рабочая книга Excel .xlsx Стандартный формат рабочих книг Excel 2007. В действительности это сжатый ZIP-архив каталога XML-документов. Является заменой бывшего бинарного формата .xls, хотя и не поддерживает макросы по соображениям безопасности.
Рабочая книга Excel с макросами .xlsm Та же рабочая книга Excel, но с поддержкой макросов.
Бинарная рабочая книга Excel .xlsb Та же рабочая книга Excel с макросами, но хранящая информацию в бинарном формате, открывая документы быстрее, чем XML. В особенности часто используется для очень больших документов с десятками тысяч строк и/или сотнями колонок.
Шаблон Excel с макросами .xltm Шаблон, созданный как основа для рабочих книг, включена поддержка макросов. Заменяет старый формат .xlt.
Надстройка Excel .xlam Надстройка Excel, направленная на добавление дополнительных функциональных возможностей и инструментов.

Экспорт и перемещение таблиц

API позволяет открывать таблицы Excel в ряде других приложений. Это включает в себя открытие документов Excel на веб-страницах с помощью ActiveX или таких плагинов, как Adobe Flash Player. Проект Apache POI представляет Java-библиотеки для чтения и записи электронных таблиц Excel. Также предпринимались попытки копировать таблицы Excel в веб-приложения с использованием разделённых запятыми значений (CSV).

Установка числовых форматов

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

  • В Microsoft Excel 2007-2013 откройте вкладку Home (Главная), в разделе Number (Число) кликните выпадающее меню Number Format (Числовые форматы) и выберите нужный формат. Либо под выпадающим меню Вы можете кликнуть одну из иконок быстрого доступа.
  • В Excel 2003 и более ранних версиях откройте меню Format (Формат) > Cells (Ячейки).
  • В Google Sheets нажмите кнопку More Formats (Другие форматы) в левой части панели инструментов – эта кнопка выглядит, как цифры 123. Слева от этой команды есть иконки Currency (Денежный формат) или Percent (Процентный формат) для быстрого доступа к этим форматам.

В большинстве версий Microsoft Excel доступ к настройкам форматирования можно открыть, если выделить нужные ячейки и нажать Ctrl+1.

В этом примере мы применим числовой формат Currency (Денежный), который добавляет символ валюты ($) и отображает два десятичных знака для любого числового значения.

Что такое excel

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

Что такое excel

Процентный формат

Один из наиболее полезных форматов – это процентный формат (%). Он отображает значения как проценты, например, 20% или 55%, что особенно полезно при расчете величин скидок или чаевых. Если вслед за числом ввести знак процента (%), к нему будет автоматически применен процентный формат.

Что такое excel

Возможно, Вы еще помните из школьного курса математики, что проценты могут быть записаны в виде десятичных дробей, т.е. 15% – это то же самое, что 0,15, а 7,5% – это 0,075.

Процентный формат будет полезен не однократно. На изображениях ниже Вы видите пример, что получается в каждой таблице при разном форматировании размера скидки (5, 5% или 0,05):

Что такое excel

Как видите, в таблице слева вычисления выполнены не верно. Без применения процентного формата, Excel думает, что мы хотим умножить $22,50 на 5, а не на 5%. Таблица справа хоть и справляется с этой задачей, но прочесть проще всего средний вариант.

Файлы 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) — тут скобки нужны постоянно.