Microsoft Excel
Microsoft Excel (также иногда называется Microsoft Office Excel[5]) — программа для работы с электронными таблицами, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS, а также Android, iOS и Windows Phone. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и, за исключением Excel 2008 под Mac OS X, язык макропрограммирования VBA (Visual Basic for Application). Microsoft Excel входит в состав Microsoft Office.
История
В 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 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, главного стимула модернизации ПК в то время.
Начиная с 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
- 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
- 2018 год — Excel 2019 (17) — Microsoft Office 2019
- Замечание: Версия 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
- 1985 год — Excel 1.0
- 1988 год — Excel 1.5
- 1989 год — Excel 2.2
- 1990 год — Excel 3.0
- 1992 год — Excel 4.0
- 1993 год — Excel 5.0
- 1998 год — Excel 8.0 (Office '98)
- 2000 год — Excel 9.0 (Office 2001)
- 2001 год — Excel 10.0 (Office v. X)
- 2004 год — Excel 11.0 (Office 2004)
- 2008 год — Excel 12.0(Office 2008)
- 2011 год — Excel 14.0 (Office 2011)
- 2015 год — Excel 15.0 (Office 2016)
Версии для OS/2
- 1989 год — Excel 2.2
- 1990 год — Excel 2.3
- 1991 год — Excel 3.0
Версии Excel до 7.0 были ограничены в возможностях хранения данных, вмещая до 16 384 (214) строк. Версии 8.0—11.0 могли справиться с 65 536 (216) строк и 256 колонками (28). Версии 12.0 и 14.0 обрабатывают до 1 048 576 (220) строк и 16 384 (214) колонок[6].
Форматы файлов
В Microsoft Excel вплоть до 2003 версии включительно использовался свой собственный бинарный формат файлов (BIFF) в качестве основного[7]. 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 предоставляет несколько типов различных паролей:
- пароль для открытия документа[8]
- пароль для изменения документа[9]
- пароль для защиты листа
- пароль для защиты книги
- пароль для защиты общей книги[10]
- пароль для защиты кода VBA
Все пароли, кроме пароля для открытия документа, можно удалить мгновенно, вне зависимости от версии Microsoft Excel, в которой был создан документ. Эти типы паролей в первую очередь служат для коллективной работы над документом. При их использовании документ не шифруется, а в документе сохраняется хеш от установленного пароля. Хотя при использовании пароля для защиты книги документ шифруется на известном пароле «VelvetSweatshop», это не добавляет документу дополнительной защиты. Единственным типом пароля, который может помешать злоумышленнику получить доступ к документу, является «пароль для открытия», но криптостойкость такой защиты сильно зависит от версии Microsoft Excel, в которой был создан документ.
В Microsoft Excel версии 95 и ранее «пароль на открытие» преобразовывается в 16-битный ключ, который взламывается мгновенно. В Microsoft Excel 97 / 2000 пароль преобразовывался уже в 40-битный ключ, который на современном оборудовании также может быть взломан очень быстро. К тому же программы для взлома паролей могут перебирать сотни тысяч паролей в секунду, что позволяет не только расшифровать документ, но и найти оригинальный пароль. В Microsoft Excel 2003 / XP ситуация немного улучшилась — пользователь может выбрать практический любой алгоритм шифрования, доступный в системе (CryptoServiceProvider). Но по умолчанию осталась все та же защита Microsoft Excel 97 / 2000[11]. Для пользователей, привыкшим доверять поведению программ по умолчанию, это означает отсутствие стойкой защиты на их документы.
Ситуация кардинально изменилась в Microsoft Excel 2007 — для шифрования стал использоваться современный алгоритм AES с ключом в 128 бит, а для получения ключа применяться 50000-кратное использование хеш-функции SHA1, что уменьшило скорость перебора до сотен паролей в секунду[12]. В Microsoft Excel стойкость защиты по умолчанию была увеличена ещё в 2 раза благодаря применению уже 100000-кратного SHA1-преобразования пароля в ключ. Вывод: на данный момент стойкую защиту обеспечивают только документы, сохраненные в формате Office 2007 / 2010 с установленным на них стойким «паролем на открытие».
Критика
Из-за того, что Excel работает на основе расчетов с плавающей запятой, статистическая точность Excel подвергается критике[13][14][15][16]. Сторонники Excel заявляют в ответ, что ошибки проявляются лишь в особых условиях специально подобранных исходных данных, которые затрагивают относительно небольшое число пользователей, и с низкой вероятностью могут встретиться на практике. Для версий 97, 2000, 2002 зафиксированы ошибки при выполнении функции MOD (деление с остатком) при определённых аргументах, где функция вместо результата возвращает ошибку #NUM![17].
Проблемы с датой
В версиях Excel до 2016 включительно 1900 год ошибочно считался високосным[18][19]. Ошибка возникла в Lotus 1-2-3, была намеренно внесена в Excel для совместимости и поддерживалась для обратной совместимости[20][21].
Ошибки отображения Excel
22 сентября 2007 года было сообщено[22], что в определённых ситуациях Excel 2007 будет показывать неправильные результаты. В частности, для тех пар чисел, чьё произведение равно 65535 (например, 850 и 77,1), Excel отобразит в качестве итога 100000. Это происходит примерно с 14,5 % таких пар[23]. Кроме того, если к результату добавить единицу, Excel выведет итог 100001. Однако если из итога вычесть единицу, на дисплее отобразится правильный результат 65534 (также, если итог умножить или разделить на 2, будут отображены 131070 и 32767,5 соответственно).
Microsoft сообщила в блоге Microsoft Excel[24], что проблема существует в отображении шести конкретных значений с плавающей запятой между 65534,99999999995 и 65535 и шести значений между 65535,99999999995 и 65536 (не включая границ). Любые расчёты, результат которых равен одному из двенадцати значений, будут отображаться неправильно. Фактические данные, хранящиеся и передающиеся в другие ячейки, верны, неверно лишь отображение значения. Ошибка появилась в Excel 2007 и отсутствует в предыдущих версиях. 9 октября 2007 года Microsoft выпустила патч, исправляющий проблему[25]. Он вошёл и в состав исправлений Service Pack 1.
Данная ошибка не наблюдается в Microsoft Excel 2016.
Примечания
- Text file formats // File formats that are supported in Excel
- Text file formats // File formats that are supported in Excel
- Other file formats // File formats that are supported in Excel
- New file format options in the new Office — 2013.
- Обзор Microsoft Office Excel 2007 Архивировано 24 апреля 2008 года.
- Возросшие возможности Excel 2007
- How to extract information from Office files by using Office file formats and schemas
- Шифрование документа и задание пароля для его открытия
- Задание пароля для изменения документа
- Защита листа или книги паролем Архивировано 26 октября 2011 года.
- Парольная защита документов Microsoft Office
- Office 2007: новый формат и новая защита
- Using Excel for Data Analysis
- Reliability of Statistical Procedures in Excel Архивировано 11 мая 2008 года.
- Архивированная копия (недоступная ссылка). Дата обращения: 20 июля 2008. Архивировано 19 мая 2007 года.
- Faculty of Engineering and Computing (недоступная ссылка). Дата обращения: 2 марта 2013. Архивировано 10 марта 2013 года.
- XL: () Function Returns #NUM! Error Value
- Days of the week before March 1, 1900 are incorrect in Excel
- Excel 2000 incorrectly assumes that the year 1900 is a leap year
- My First BillG Review — Joel on Software
- Matthew MacDonald. Excel 2007: the missing manual O’Reilly, 2006. ISBN 0-596-52759-4
- Bug in Excel 2007 — microsoft.public.excel | Google Groups
- Excel 2007 показывает неверные ответы в простых вычислениях VeroBlog
- Обновление вычислений Архивировано 6 октября 2007 года. Блог команды Microsoft Excel
- Обновление вычислений (патч доступен) Архивировано 26 июня 2008 года. Блог команды Microsoft Excel
Литература
- Джон Уокенбах. Excel 2013: профессиональное программирование на VBA = Excel 2013 Power Programming with VBA. — М.: «Диалектика», 2014. — 960 с. — ISBN 978-5-8459-1877-2.
- Грег Харвей. Microsoft Excel 2013 для чайников = Excel 2013 For Dummies. — М.: «Диалектика», 2013. — 368 с. — ISBN 978-5-8459-1855-0.
- А. Н. Комаровский. Динамические эффекты в MS Excel (рус.) // информатикА. — М., 2007. — № 05. — С. 20-25. (недоступная ссылка)
- А. Н. Комаровский. Использование условного форматирования в MS Excel для динамического анализа логических схем (рус.) // информатикА. — М., 2007. — № 06. — С. 10-20. (недоступная ссылка)
- Д. Ю. Усенков. 3D-поверхности в Excel (рус.) // информатикА. — М., 2013. — Январь. — С. 40-45.