Microsoft Excel
Microsoft Excel (также иногда называется Microsoft Office Excel [1] ) — программа для работы с электронными таблицами, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и, за исключением Excel 2008 под Mac OS X, язык макропрограммирования VBA (Visual Basic for Application). Microsoft Excel входит в состав Microsoft Office и на сегодняшний день Excel является одним из наиболее популярных приложений в мире.
Содержание
История
В 1982 году Microsoft запустила на рынок свой первый электронный табличный процессор Multiplan, который был очень популярен на CP/M системах, но на MS-DOS системах он уступал Lotus 1-2-3. Первая версия Excel предназначалась для Mac и была выпущена в 1985 году, а первая версия для Windows была выпущена в ноябре 1987 года. Lotus не торопилась выпускать 1-2-3 под Windows, и Excel с 1988 года начала обходить по продажам 1-2-3, что в конечном итоге помогло Microsoft достичь позиций ведущего разработчика программного обеспечения. Microsoft укрепляла свое преимущество с выпуском каждой новой версии, что имело место примерно каждые два года. Текущая версия для платформы Windows — Excel 14, также известная как Microsoft Office Excel 2010. Текущая версия для платформы Mac OS X — Microsoft Excel 2011.
В начале своего пути Excel стал причиной иска о товарном знаке от другой компании, уже продававшей пакет программ под названием «Excel». В результате спора Microsoft была обязана использовать название «Microsoft Excel» во всех своих официальных пресс-релизах и юридических документах. Однако со временем эта практика была позабыта, и Microsoft окончательно устранила проблему, приобретя товарный знак другой программы. Microsoft также решила использовать буквы XL как сокращённое название программы: иконка Windows-программы состоит из стилизованного изображения этих двух букв, а расширение файлов по умолчанию в Excel — .xls. В сравнении с первыми табличными процессорами Excel представляет множество новых функций пользовательского интерфейса, но суть остается прежней: как и в программе-родоначальнике, VisiCalc, организованные в строки и столбцы клетки-ячейки могут содержать данные или формулы с относительными или абсолютными ссылками на другие клетки.
Excel был первым табличным процессором, позволявшим пользователю менять внешний вид таблицы на экране: шрифты, символы и внешний вид ячеек. Он также первым представил метод умного пересчёта ячеек — обновления только ячеек, зависящих от изменённых ячеек: раньше табличные процессоры пересчитывали все ячейки; это делалось либо после каждого изменения (что на больших таблицах долго), либо по команде пользователя (что могло вводить пользователя в заблуждение непересчитанными значениями).
Будучи впервые объединёнными в Microsoft Office в 1993 году, Microsoft Word и Microsoft PowerPoint получили новый графический интерфейс для соответствия Excel, главного стимула модернизации ПК в то время.
Начиная с 1993 года, в состав Excel входит Visual Basic для приложений (VBA), язык программирования, основанный на Visual Basic, позволяющий автоматизировать задачи Excel. VBA является мощным дополнением к приложению и в более поздних версиях Excel доступна полнофункциональная интегрированная среда разработки. Можно создать VBA-код, повторяющий действия пользователя и таким образом автоматизировать простые задачи. VBA позволяет создавать формы для общения с пользователем. Язык поддерживает использование (но не создание) DLL от ActiveX; более поздние версии позволяют использовать элементы объектно-ориентированного программирования.
Функциональность VBA делала Excel легкой мишенью для макровирусов. И это было серьёзной проблемой до тех пор, пока антивирусные продукты не научились обнаруживать их. Фирма Microsoft, с опозданием приняв меры для уменьшения риска, добавила возможность выбора режима безопасности:
- полностью отключить макросы
- включить макросы при открытии документа
- доверять всем макросам, подписанным с использованием надёжных сертификатов.
Версии Excel от 5.0 до 9.0 содержат различные «пасхальные яйца», хотя, начиная с версии 10 Microsoft начала принимать меры по их ликвидации.
С добавлением лямбда-функций язык программирования Excel стал полным по Тьюрингу

Microsoft теперь называет электронные таблицы Excel языком программирования, а с добавлением лямбд он стал полным по Тьюрингу.
Язык программирования считается полным по Тьюрингу, если на нём можно реализовать любой возможный алгоритм. Именно эту возможность реализуют лямбды.
Проект разработала научно-исследовательская группа Calc Intelligence в Кембриджском университете. Они давно поставили задачу превратить формулы Excel в полноценный язык программирования.
LAMBDA могут ссылаться на другие функции лямбды, с любой глубиной вложенных ссылок, даже рекурсивно. Именно это даёт возможность выразить на языке программирования Excel любое вычисление.
В данный момент лямбды доступны участникам программы бета-тестирования Excel.
Изначально исследователи из Укембриджа скептически отнеслись к идее выкатить лямбды на массовую аудиторию. Они считали, что это слишком сложная функция для среднего пользователя Excel. Но потом получили массу восторженных отзывов от тестеров — и изменили своё мнение. Оказалось, что пользователи нашли массу интересных применений для LAMBDA, причём многие из них исследователи даже не могли себе представить.
Кроме того, особые навыки требуются для написания лямбд, а не для их использования. Таким образом, программисты могут расширить сферу применения приложений Excel, не вызывая дополнительных неудобств у конечных пользователей, которые просто воспользуются результатом.
«Интересно посмотреть, как пользователи будут экспериментировать не только с лямбдами, но с типами данных и динамическими массивами. Мы считаем, что эти новые функции функционального программирования изменят подход к работе в Excel», — написал в корпоративном блоге Энди Гордон, старший научный руководитель Microsoft Research.
По мнению создателей, это открывает богатые возможности для программирования в Excel, потому что аудитория Excel «на порядок больше, чем количество всех программистов в мире на C, C++, C#, Java и Python, вместе взятых».
«В ближайшей перспективе будут реализованы полностью вложенные массивы и эффективные комбинаторы обработки массивов, такие как MAP и REDUCE, которые принимают лямбда-функции в качестве аргументов, — говорят исследователи. — Кроме того, мы надеемся определять функции не только по одной формуле, но и по целому листу с электронной таблицей, это так называемые функции листа (sheet-defined functions) или даже эластичные функции листа (elastic sheet-defined functions). С практической точки зрения, функции листа идут в ногу с потоком типичного проектирования электронных таблиц, позволяя пользователям определять более крупную функцию с помощью нескольких формул, распределённых по нескольким ячейкам».
В посте Microsoft Research от 25 января приводится больше технических деталей, которые могут быть интересны любителям математики и программистам. Есть также видео:
Microsoft Excel
Microsoft Excel (также иногда называется Microsoft Office Excel [1] ) — программа для работы с электронными таблицами, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и, за исключением Excel 2008 под Mac OS X, язык макропрограммирования VBA (Visual Basic for Application). Microsoft Excel входит в состав Microsoft Office и на сегодняшний день Excel является одним из наиболее популярных приложений в мире.

Microsoft Excel в Mac OS X
Содержание
История [ ]
В 1982 году Microsoft запустила на рынок свой первый электронный табличный процессор Multiplan, который был очень популярен на CP/M системах, но на MS-DOS системах он уступал Lotus 1-2-3. Первая версия Excel предназначалась для Mac и была выпущена в 1985 году, а первая версия для Windows была выпущена вноябре 1987 года. Lotus не торопилась выпускать 1-2-3 под Windows, и Excel с 1988 года начала обходить по продажам 1-2-3, что в конечном итоге помогло Microsoft достичь позиций ведущего разработчика программного обеспечения. Microsoft укрепляла свое преимущество с выпуском каждой новой версии, что имело место примерно каждые два года. Текущая версия для платформы Windows — Excel 15, также известная как Microsoft Office Excel 2013. Текущая версия для платформы Mac OS X — Microsoft Excel 2011.
В начале своего пути Excel стал причиной иска о товарном знаке от другой компании, уже продававшей пакет программ под названием «Excel». В результате спора Microsoft была обязана использовать название «Microsoft Excel» во всех своих официальных пресс-релизах и юридических документах. Однако со временем эта практика была позабыта, и Microsoft окончательно устранила проблему, приобретя товарный знак другой программы. Microsoft также решила использовать буквы XL как сокращённое название программы: иконка Windows-программы состоит из стилизованного изображения этих двух букв, а расширение файлов по умолчанию в Excel — .xls. В сравнении с первыми табличными процессорами Excel представляет множество новых функций пользовательского интерфейса, но суть остается прежней: как и в программе-родоначальнике,VisiCalc, организованные в строки и столбцы клетки-ячейки могут содержать данные или формулы с относительными или абсолютными ссылками на другие клетки.
Excel был первым табличным процессором, позволявшим пользователю менять внешний вид таблицы на экране: шрифты, символы и внешний вид ячеек. Он также первым представил метод умного пересчёта ячеек — обновления только ячеек, зависящих от изменённых ячеек: раньше табличные процессоры пересчитывали все ячейки; это делалось либо после каждого изменения (что на больших таблицах долго), либо по команде пользователя (что могло вводить пользователя в заблуждение непересчитанными значениями).
Будучи впервые объединёнными в Microsoft Office в 1993 году, Microsoft Word и Microsoft PowerPoint получили новый графический интерфейс для соответствия Excel, главного стимула модернизации ПК в то время.
Начиная с 1993 года, в состав Excel входит Visual Basic для приложений (VBA), язык программирования, основанный на Visual Basic, позволяющий автоматизировать задачи Excel. VBA является мощным дополнением к приложению и в более поздних версиях Excel доступна полнофункциональнаяинтегрированная среда разработки. Можно создать VBA-код, повторяющий действия пользователя и таким образом автоматизировать простые задачи. VBA позволяет создавать формы для общения с пользователем. Язык поддерживает использование (но не создание) DLL от ActiveX; более поздние версии позволяют использовать элементы объектно-ориентированного программирования.
Функциональность VBA делала Excel легкой мишенью для макровирусов. И это было серьёзной проблемой до тех пор, пока антивирусные продукты не научились обнаруживать их. Фирма Microsoft, с опозданием приняв меры для уменьшения риска, добавила возможность выбора режима безопасности:
- полностью отключить макросы
- включить макросы при открытии документа
- доверять всем макросам, подписанным с использованием надёжных сертификатов.
Версии Excel от 5.0 до 9.0 содержат различные «пасхальные яйца», хотя, начиная с версии 10 Microsoft начала принимать меры по их ликвидации.
Версии [ ]
Версии для Windows и Windows NT [ ]

Microsoft Office Excel 2003
- 1988 год — Excel 2.0 для Windows
- 1990 год — Excel 3.0
- 1992 год — Excel 4.0
- 1993 год — Excel 5.0 (Office 4.2 и 4.3, также есть 32-битная версия только для Windows NT)
- 1995 год — Excel 7 для Windows 95 (включён в пакет Microsoft Office 95)
- 1997 год — Excel 97 (включён в пакет Microsoft Office 97)
- 1999 год — Excel 2000 (9) — Microsoft Office 2000
- 2001 год — Excel 2002 (10) — Microsoft Office XP
- 2003 год — Excel 2003 (11) — Microsoft Office 2003
- 2007 год — Excel 2007 (12) — Microsoft Office 2007
- 2010 год — Excel 2010 (14) — Microsoft Office 2010
- 2013 год — Excel 2013 (15) — Microsoft Office 2013
- 2015 год — Excel 2016 (16) — Microsoft Office 2016
- Замечание: Версия 1.0 не использовалась, чтобы избежать путаницы с продуктами Apple
- Замечание: Excel 6.0 не существует, так как версия Windows 95 поставлялась с Word 7. Все программы Office 95 и Office 4.x использовали OLE 2.0 (автоматическая передача данных между различными программами), и Excel 7должен был показывать, что он соответствует Word 7.
- Замечание: Версия 13.0 была пропущена по причине Трискаидекафобии. Excel 2010 имеет внутреннюю версию 14.0.
Версии для Macintosh [ ]
Версии для OS/2 [ ]
- 1989 год — Excel 2.2
- 1990 год — Excel 2.3
- 1991 год — Excel 3.0
Версии Excel до 7.0 были ограничены в возможностях хранения данных, вмещая до 16 384 (2 14 ) строк. Версии 8.0—11.0 могли справиться с 65 536 (2 16 ) строк и 256 колонками (2 8 ). Версии 12.0 и 14.0 обрабатывают до 1 048 576 (2 20 ) строк и 16 384 (2 14 ) колонок [2] .
Форматы файлов [ ]
В Microsoft Excel вплоть до 2003 версии включительно, использовался свой собственный бинарный формат файлов (BIFF) в качестве основного [3] . 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 | .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 является возможность писать код на основе Visual Basic для приложений (VBA). Этот код пишется с использованием отдельного от таблиц редактора. Управление электронной таблицей осуществляется посредством объектно-ориентированной модели кода и данных. С помощью этого кода данные входных таблиц будут мгновенно обрабатываться и отображаться в таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать изменять его и управлять расчётами.
Парольная защита Microsoft Excel [ ]
Защита Microsoft Excel предоставляет несколько типов различных паролей:
- пароль для открытия документа [4]
- пароль для изменения документа [5]
- пароль для защиты листа
- пароль для защиты книги
- пароль для защиты общей книги [6]
- пароль для защиты кода VBA
Все пароли, кроме пароля для открытия документа, можно удалить мгновенно, вне зависимости от версии Microsoft Excel, в которой был создан документ. Эти типы паролей в первую очередь служат для коллективной работы над документом. При их использовании документ не шифруется, а в документе сохраняется хэш от установленного пароля. Хотя при использовании пароля для защиты книги документ шифруется на известном пароле«VelvetSweatshop», это не добавляет документу дополнительной защиты. Единственным типом пароля который может помешать злоумышленнику получить доступ к документу является «пароль для открытия», но криптостойкость такой защиты сильно зависит от версии Microsoft Excel, в которой был создан документ.
В Microsoft Excel версии 95 и ранее, «пароль на открытие» преобразовывается в 16-битный ключ, который взламывается мгновенно. В Microsoft Excel 97 / 2000 пароль преобразовывался уже в 40-битный ключ, который на современном оборудовании также может быть взломан очень быстро. К тому же программы для взлома паролей могут перебирать сотни тысяч паролей в секунду, что позволяет не только расшифровать документ, но и найти оригинальный пароль. В Microsoft Excel 2003 / XP ситуация немного улучшилась — пользователь может выбрать практический любой алгоритм шифрования, доступный в системе (CryptoServiceProvider). Но по умолчанию осталась все та же защита Microsoft Excel 97 / 2000 [7] . Для пользователей, привыкшим доверять поведению программ по умолчанию, это означает отсутствие стойкой защиты на их документы.
Ситуация кардинально изменилась в Microsoft Excel 2007 — для шифрования стал использоваться современный алгоритм AES с ключом в 128 бит, а для получения ключа применяться 50000 кратное использование хэш-функции SHA1, что уменьшило скорость перебора до сотен паролей в секунду [8] . В Microsoft Excel стойкость защиты по умолчанию была увеличена ещё в 2 раза, благодаря применению уже 100000 кратного SHA1 преобразования пароля в ключ. Вывод: на данный момент стойкую защиту обеспечивает только документы, сохраненные в формате Office 2007 / 2010 с установленным на них стойким «паролем на открытие».
Критика [ ]
Общая критика табличных процессоров применима и к Microsoft Excel. Специфичные предметы критики в Excel — это точность, проблемы с датами и ошибки отображения Excel 2007.
Точность [ ]
Из-за того, что Excel работает на основе расчетов с плавающей запятой, статистическая точность Excel подвергается критике [9][10][11][12] . Сторонники Excel заявляют в ответ, эти ошибки проявляются лишь в особых условиях специально подобранных исходных данных, которые затрагивают относительно небольшое число пользователей, и с низкой вероятностью могут встретиться на практике. Для версий 97, 2000, 2002 зафиксированы ошибки при выполнении функции MOD (деление с остатком) при определённых аргументах, где функция вместо результата возвращает ошибку #NUM! [13] .
Проблемы с датой [ ]
В версиях Excel до 2007 включительно 1900 год ошибочно считался високосным [14][15] . Ошибка возникла в Lotus 1-2-3 и была намеренно внесена в Excel для совместимости и поддерживалась для обратной совместимости [16][17] .
Ошибки отображения Excel [ ]
Скриншот Microsoft Excel, показывающий ошибку отображения 65535
22 сентября 2007 года было сообщено [18] , что в определённых ситуациях Excel 2007 будет показывать неправильные результаты. В частности, для тех пар чисел, чьё произведение равно 65535 (например, 850 и 77,1), Excel отобразит в качестве итога 100000. Это происходит с примерно 14,5 % таких пар [19] . Кроме того, если к результату добавить единицу, Excel выведет итог 100001. Однако, если вычесть из итога единицу, на дисплее отобразится правильный результат 65534. (Также, если итог умножить или разделить на 2, будут отображены 131070 и 32767,5 соответственно.)
Microsoft сообщила в блоге Microsoft Excel [20] , что проблема существует в отображении шести конкретных значений с плавающей запятой между 65534,99999999995 и 65535 и шести значений между 65535,99999999995 и 65536 (не включая границ). Любые расчёты, результат которых равен одному из двенадцати значений, будут отображаться неправильно. Фактические данные, хранящиеся и передающиеся в другие ячейки, верны, неверно лишь отображение значения. Ошибка появилась в Excel 2007 и не существует в предыдущих версиях. 9 октября 2007 года Microsoft выпустила патч, исправляющий проблему [21] . Он вошёл и в состав исправлений Service Pack 1.