Введение
Компьютерное приложение для организации, анализа и хранения данных в табличной форме.
Электронная таблица – это компьютерное приложение для вычислений, организации, анализа и хранения данных в табличной форме. Электронные таблицы были разработаны как компьютерные аналоги бумажных бухгалтерских рабочих листов. Программа работает с данными, вводимыми в ячейки таблицы. Каждая ячейка может содержать числовые или текстовые данные, либо результаты формул, которые автоматически вычисляют и отображают значение на основе содержимого других ячеек. Термин «электронная таблица» может также относиться к одному из таких электронных документов. Пользователи электронных таблиц могут изменять любые сохраненные значения и наблюдать влияние на вычисленные результаты. Это делает электронную таблицу полезной для анализа «что если», поскольку множество сценариев можно быстро исследовать без ручного пересчета. Современное программное обеспечение для электронных таблиц может содержать несколько взаимодействующих листов и отображать данные в виде текста и чисел или в графической форме. Помимо выполнения основных арифметических и математических функций, современные электронные таблицы предоставляют встроенные функции для распространенных финансовых, бухгалтерских и статистических операций. Такие вычисления, как чистая приведенная стоимость или стандартное отклонение, могут применяться к табличным данным с помощью предварительно запрограммированной функции в формуле. Программы электронных таблиц также предоставляют условные выражения, функции для преобразования между текстом и числами, а также функции для работы со строками текста. Электронные таблицы заменили бумажные системы во всем деловом мире. Хотя изначально они были разработаны для бухгалтерского учета, теперь они широко используются в любом контексте, где создаются, сортируются и передаются табличные списки.
Основы
LANPAR, выпущенный в 1969 году, был первой электронной таблицей для мейнфреймов и компьютеров с разделением времени. LANPAR был акронимом: LANguage for Programming Arrays at Random, и он помог превратить компьютер Apple II в популярный и широко используемый персональный компьютер. Lotus 1-2-3 был ведущей электронной таблицей во времена доминирования DOS. Microsoft Excel сейчас занимает наибольшую долю рынка на платформах Windows и Macintosh. Программа электронной таблицы является стандартной функцией офисного пакета. В 2006 году Google выпустил бета-версию веб-приложения электронной таблицы, которое сейчас известно как Google Sheets и является одним из приложений, предоставляемых в Google Drive. Электронная таблица состоит из таблицы ячеек, расположенных в строках и столбцах и идентифицируемых по координатам X и Y. Столбцы (X) обычно обозначаются буквами – "A", "B", "C" и т.д., а строки – числами 1, 2, 3 и т.д. На отдельную ячейку можно сослаться, указав ее строку и столбец, например, "C10". Эта электронная концепция ссылок на ячейки впервые была реализована в LANPAR (Language for Programming Arrays at Random) (разработанном Рене Пардо и Реми Ландау) и в варианте, используемом в VisiCalc, известном как "A1-нотация". Кроме того, в электронных таблицах существует понятие диапазона – группы ячеек, обычно смежных. Например, первые десять ячеек в первом столбце можно указать диапазоном "A1:A10". LANPAR внедрил инновационный механизм прямой ссылки/вычисления в естественном порядке, который не появился вновь до Lotus 1-2-3 и Microsoft MultiPlan версии 2. В современных приложениях электронных таблиц несколько электронных таблиц, часто называемых рабочими листами или просто листами, объединяются в рабочую книгу. Рабочая книга физически представлена файлом, содержащим все данные книги, листы и ячейки листов. Рабочие листы обычно представлены вкладками, переключающимися между страницами, каждая из которых содержит один лист, хотя Numbers значительно меняет эту модель. При ссылке на ячейки в книге с несколькими листами к их обозначению добавляется имя листа, например, "Лист1!C10". Некоторые системы расширяют этот синтаксис, позволяя ссылаться на ячейки в разных рабочих книгах. Пользователи взаимодействуют с листами в основном через ячейки. Ячейка может содержать данные, введенные напрямую, или формулу, которая обычно создается путем добавления знака равенства перед текстом. Данные могут включать текстовую строку "hello world", число 5 или дату 16 декабря 1991 года. Формула начинается со знака равенства, например, "=5*3", но обычно он невидим, поскольку отображается результат вычисления, в данном случае 15, а не сама формула. Это может привести к путанице. Ключевой особенностью электронных таблиц является возможность формулы ссылаться на содержимое других ячеек, которые, в свою очередь, могут быть результатом формулы. Для создания такой формулы число заменяется ссылкой на ячейку. Например, формула "=5*C10" даст результат умножения значения в ячейке C10 на 5. Если в ячейке C10 содержится значение 3, то результат будет 15. Но в ячейке C10 также может содержаться формула, ссылающаяся на другие ячейки, и так далее. Возможность объединять формулы – это то, что придает электронной таблице ее мощь. Многие задачи можно разбить на ряд отдельных математических шагов, которые можно назначить отдельным формулам в ячейках. Некоторые из этих формул могут применяться и к диапазонам, например, функция SUM, которая суммирует все числа в диапазоне. Электронные таблицы имеют много общих принципов и характеристик с базами данных, но это не одно и то же. Электронная таблица по сути представляет собой одну таблицу, в то время как база данных – это набор множества таблиц с семантическими связями, понятными машине. Хотя верно, что рабочая книга, содержащая три листа, действительно является файлом, содержащим несколько таблиц, которые могут взаимодействовать друг с другом, ей не хватает реляционной структуры базы данных. Электронные таблицы и базы данных взаимосовместимы: листы можно импортировать в базы данных, чтобы стать таблицами внутри них, а запросы баз данных можно экспортировать в электронные таблицы для дальнейшего анализа. Программа электронной таблицы является одним из основных компонентов офисного пакета, который обычно также включает текстовый процессор, программу для создания презентаций и систему управления базами данных. Программы в пакете используют схожие команды для выполнения аналогичных функций. Обычно обмен данными между компонентами проще, чем с несвязанным набором функционально эквивалентных программ. Это было особенно важно во времена, когда многие персональные компьютерные системы использовали текстовый режим отображения и команды вместо графического пользовательского интерфейса.
Бумажные электронные таблицы
С древних времен люди систематизировали данные в таблицы, то есть в сетку из столбцов и строк. Вавилоняне использовали глиняные таблички для хранения данных еще в 1800 году до н.э. Другие примеры можно найти в бухгалтерских книгах и астрономических записях. По крайней мере с 1906 года термин "таблица" использовался в бухгалтерском учете для обозначения сетки столбцов и строк в книге учета. А до появления компьютерных таблиц слово "разворот" относилось к газетной или журнальной статье (тексту или графике), занимавшей две развернутые страницы, проходящей через центр и рассматривавшей эти две страницы как одну большую. Сложное слово "таблица" стало означать формат представления бухгалтерских книг – со столбцами для категорий расходов в верхней части, счетами-фактурами, перечисленными вдоль левого поля, и суммой каждого платежа в ячейке на пересечении строки и столбца, которые традиционно размещались на развороте переплетенной книги (книги для ведения бухгалтерского учета) или на листах бумаги большого формата (называемых "аналитической бумагой"), разделенных на строки и столбцы в таком формате и примерно вдвое шире обычной бумаги.
Генератор отчетов по базе данных BSRG
Пакетная "таблица" не отличается от пакетного компилятора с добавленными входными данными, генерирующего выходной отчет, то есть язык 4GL или обычную, неинтерактивную, пакетную компьютерную программу. Однако эта концепция электронной таблицы была описана в статье 1961 года "Бюджетные модели и системное моделирование" Ричарда Маттешича. Последующие работы Маттешича (1964a, глава 9, "Бухгалтерский учет и аналитические методы") и сопутствующий ей том, Маттешича (1964b, "Моделирование фирмы посредством бюджетной компьютерной программы") применяли компьютеризированные таблицы к системам бухгалтерского учета и бюджетирования (на мейнфреймах, запрограммированных на FORTRAN IV). Эти пакетные таблицы в основном оперировали сложением или вычитанием целых столбцов или строк (входных переменных), а не отдельных ячеек. В 1962 году эта концепция таблицы, названная BCL (Business Computer Language), была реализована на IBM 1130, а в 1963 году Р. Брайаном Уолшем из Университета Маркетт, штат Висконсин, перенесена на IBM 7040. Эта программа была написана на Фортране. На этих машинах была доступна примитивная система разделения времени. В 1968 году Уолш перенес BCL на IBM 360/67 с системой разделения времени в Вашингтонский государственный университет. Она использовалась для помощи в обучении студентов-экономистов. Студенты могли брать информацию, подготовленную профессором, и изменять ее для представления и демонстрации соотношений и т.д. В 1964 году была написана книга под названием "Business Computer Language" Кимбаллом, Стоффеллсом и Уолшем, и книга, и программа были защищены авторским правом в 1966 году, а впоследствии это авторское право было возобновлено. Компания Applied Data Resources имела препроцессор FORTRAN под названием Empires. В конце 1960-х годов Xerox использовал BCL для разработки более сложной версии для своей системы разделения времени.
Компилятор таблиц LANPAR
Ключевое изобретение в развитии электронных таблиц было сделано Рене К. Пардо и Реми Ландау, которые в 1970 году подали заявку на патент автоматического алгоритма расчета естественного порядка для электронных таблиц. Хотя патентное ведомство первоначально отклонило патент как чисто математическое изобретение, после 12 лет апелляций Пардо и Ландау выиграли знаковое судебное дело в Суде-предшественнике Федерального округа (CCPA), отменив решение Патентного ведомства в 1983 году и установив, что "нечто не перестает быть патентоспособным только потому, что новизна заключается в алгоритме". Однако в 1995 году федеральный окружной суд признал патент недействительным из-за недобросовестного поведения изобретателей в процессе подачи заявки. Апелляционный суд США по Федеральному округу подтвердил это решение в 1996 году. Само программное обеспечение называлось LANPAR – LANguage for Programming Arrays at Random (язык программирования массивов в случайном порядке). Возможно, это ретроним, поскольку "LANPAR также является портманто из фамилий разработчиков – "Landau" и "Pardo". Его концепция была разработана, и он был полностью реализован летом 1969 года, вскоре после окончания Пардо и Ландау Гарвардского университета. Соавтор изобретения Рене Пардо вспоминает, что он считал, что одному менеджеру в Bell Canada не следовало зависеть от программистов для программирования и изменения форм бюджетирования, и он предложил позволить пользователям вводить формы в любом порядке, а электронному компьютеру вычислять результаты в правильном порядке ("Forward Referencing/Natural Order Calculation" – прямой ссылкой/расчетом естественного порядка). Пардо и Ландау разработали и внедрили программное обеспечение в 1969 году. LANPAR использовался Bell Canada, AT&T и 18 действующими телефонными компаниями по всей стране для их локальных и национальных операций по бюджетированию. LANPAR также использовался General Motors. Его уникальность заключалась в совместном изобретении Пардо, включающем в себя прямую ссылку/расчет естественного порядка (один из первых "непроцедурных" языков программирования) в отличие от последовательности слева направо, сверху вниз, используемой VisiCalc, SuperCalc и первой версией MultiPlan для вычисления результатов в каждой ячейке. Без прямой ссылки/расчета естественного порядка пользователю приходилось обновлять электронную таблицу до тех пор, пока значения во всех ячейках не перестанут меняться. Как только значения ячеек оставались постоянными, пользователь мог быть уверен, что в электронной таблице больше нет прямых ссылок.
Язык программирования таблиц Autoplan/Autotab
В 1968 году трое бывших сотрудников компьютерной компании General Electric со штаб-квартирой в Финиксе, штат Аризона, решили основать собственный центр разработки программного обеспечения. А. Леррой Эллисон, Гарри Н. Кантрелл и Рассел Э. Эдвардс столкнулись с необходимостью выполнения большого количества вычислений при создании таблиц для бизнес-планов, которые они представляли венчурным инвесторам. Они решили упростить себе задачу и написали компьютерную программу, которая автоматически генерировала эти таблицы. Эта программа, изначально задуманная как простая утилита для личного использования, стала первым программным продуктом компании, впоследствии известной как Capex Corporation. "AutoPlan" работала в системе разделения времени GE; позже была выпущена версия для мэйнфреймов IBM под названием AutoTab. (Компания National CSS предлагала аналогичный продукт, CSSTAB, который к началу 1970-х годов имел умеренную пользовательскую базу в системах разделения времени. Основным применением была табличная обработка данных опросов общественного мнения.) AutoPlan/AutoTab не была интерактивной программой электронных таблиц с поддержкой WYSIWYG, это был простой язык скриптов для работы с электронными таблицами. Пользователь определял имена и заголовки строк и столбцов, а затем формулы, определяющие значения каждой строки или столбца. В 1975 году Autotab II рекламировался как расширение оригинальной версии до максимума в "1500 строк и столбцов, объединенных в любой пропорции по требованию пользователя".
GE Information Services, оператор системы разделения времени, также разработала собственную систему электронных таблиц – язык финансового анализа (FAL) примерно в 1974 году. Позже она была дополнена еще одним языком электронных таблиц, TABOL, разработанным независимым программистом Оливером Веллакоттом в Великобритании. И FAL, и TABOL были интегрированы с системой управления базами данных GEIS, DMS.
Система финансового планирования и контроля IBM
Система финансового планирования и контроля IBM была разработана в 1976 году Брайаном Ингемом в IBM Canada. Она была внедрена IBM как минимум в 30 странах. Система работала на мейнфрейме IBM и стала первым приложением для финансового планирования, разработанным на языке APL, которое полностью скрывало язык программирования от конечного пользователя. Благодаря операционной системе IBM VM, она была одной из первых программ, автоматически обновлявших каждую копию приложения при выпуске новых версий. Пользователи могли задавать простые математические зависимости между строками и столбцами. По сравнению с любыми современными аналогами, система могла поддерживать очень большие таблицы. Ежемесячно в таблицы каждого пользователя загружались актуальные данные финансового планирования, полученные из устаревшей пакетной системы. Система была разработана для оптимизации возможностей APL посредством объектных ядер, что повышало эффективность программы в 50 раз по сравнению с традиционными методами программирования.
Язык моделирования APLDOT
Примером ранней "промышленной" электронной таблицы был APLDOT, разработанный в 1976 году в Ассоциации железных дорог США на IBM 360/91, работающий в Лаборатории прикладной физики Университета Джона Хопкинса в Лореле, штат Мэриленд. Приложение успешно использовалось на протяжении многих лет при разработке таких приложений, как финансовые и калькуляционные модели для Конгресса США и для компании Conrail. APLDOT назвали "электронной таблицей", потому что финансовые аналитики и стратегические планировщики использовали ее для решения тех же задач, которые они решали с помощью бумажных таблиц.
SuperCalc для CP/M
SuperCalc — это программа для работы с электронными таблицами, выпущенная компанией Sorcim в 1980 году и изначально поставлявшаяся в комплекте (вместе с WordStar) как часть программного пакета CP/M, включенного в портативный компьютер Osborne 1. Она быстро стала фактическим стандартом для электронных таблиц на платформе CP/M.
Летопись Lotus 1-2-3 для IBM PC DOS
Введение Lotus 1 2 3 в ноябре 1982 года ускорило распространение IBM Personal Computer. Он был разработан специально для IBM PC DOS и предлагал более высокую скорость и улучшенную графику по сравнению с VisiCalc на Apple II, что способствовало росту его популярности. Lotus 1 2 3 оставался ведущей таблицей в течение нескольких лет.
Microsoft Excel для Apple Macintosh и Windows
Microsoft выпустила первую версию Excel для Apple Macintosh 30 сентября 1985 года, а затем портировала её на Windows, где первая версия была пронумерована 2.05 (для синхронизации с версией Macintosh 2.2) и выпущена в ноябре 1987 года. Платформы Microsoft Windows 3.x начала 1990-х годов позволили приложению Excel для работы с электронными таблицами завоевать долю рынка у Lotus. К тому времени, когда Lotus представила конкурентоспособные продукты для Windows, Microsoft уже начала формировать свой пакет Office. К 1995 году Excel стал лидером рынка, обогнав Lotus 1-2-3.
Google Sheets, Онлайн, Веб-схемы
В 2006 году Google запустил бета-версию Google Sheets, веб-приложения для работы с электронными таблицами, к которому можно получить доступ с любого устройства, имеющего совместимый веб-браузер, и которое можно использовать как онлайн, так и офлайн (при наличии или отсутствии подключения к интернету). Google Sheets берет свое начало от веб-приложения для работы с электронными таблицами XL2Web, разработанного компанией 2Web Technologies, и DocVerse, обеспечивавшего многопользовательское онлайн-совместное редактирование документов Office. В 2016 году был представлен Collabora Online Calc, особенностью которого является возможность размещения и интеграции веб-приложения в любую среду без зависимости от сторонних сервисов для аутентификации или обслуживания. В основе Collabora Online лежит пакет LibreOffice, который, в свою очередь, вырос из StarOffice, запущенного в 1985 году.
Автоматический перерасчет
Эта дополнительная функция, являющаяся стандартом для электронных таблиц с 1980-х годов, избавляет от необходимости вручную инициировать пересчет значений в программе (в настоящее время обычно включена по умолчанию, если только не отключена специально для больших таблиц, как правило, для повышения производительности). В некоторых старых электронных таблицах требовался ручной запрос на пересчет, поскольку пересчет больших или сложных таблиц часто замедлял ввод данных. Многие современные электронные таблицы по-прежнему сохраняют эту возможность. Пересчет обычно требует отсутствия циклических зависимостей в таблице. Граф зависимостей – это граф, в котором каждой переменной, подлежащей обновлению, соответствует вершина, а ребро соединяет две переменные, если одна из них должна быть обновлена раньше другой. Графы зависимостей, не содержащие циклов, образуют направленные ациклические графы, представляющие собой частичные порядки (в данном случае, в пределах электронной таблицы), которые гарантированно дают однозначный результат.
Обновление в реальном времени
Эта функция позволяет периодически обновлять содержимое ячейки данными из внешнего источника, например, из ячейки в "удалённой" электронной таблице. Для общих веб-таблиц это означает "мгновенное" обновление ячеек, изменённых другим пользователем. Все зависимые ячейки также должны быть обновлены.
Запертая ячейка
После ввода, выбранные ячейки (или вся электронная таблица) могут быть опционально "заблокированы" для предотвращения случайного изменения. Обычно это применяется к ячейкам, содержащим формулы, но может применяться и к ячейкам, содержащим "константы", например, коэффициент пересчета килограмм в фунты (2,20462262 с точностью до восьми знаков после запятой). Даже если отдельные ячейки помечены как заблокированные, данные электронной таблицы не будут защищены, пока эта функция не будет активирована в настройках файла.
Формат данных
Ячейку или диапазон ячеек можно опционально определить, чтобы указать способ отображения значения. Формат отображения по умолчанию обычно определяется исходным содержимым, если он не был задан ранее, например, "31/12/2007" или "31 декабря 2007" по умолчанию будут отформатированы как дата. Аналогично, добавление знака % после числового значения установит для ячейки формат процента. Сам контент ячейки этим форматом не изменяется, изменяется только отображаемое значение. Некоторые форматы ячеек, такие как "числовой" или "денежный", также могут указывать количество десятичных знаков. Это может позволить выполнять недопустимые операции (например, умножение ячейки, содержащей дату), приводя к нелогичным результатам без соответствующего предупреждения.
Форматирование ячейки
В зависимости от возможностей приложения для работы с электронными таблицами, каждая ячейка (как и ее аналог – "стиль" в текстовом процессоре) может быть отформатирована независимо, с использованием атрибутов либо содержимого (размер шрифта, цвет, полужирный или курсив), либо самой ячейки (толщина границы, цвет заливки, цвет). Для повышения удобочитаемости электронной таблицы форматирование ячеек может применяться условно к данным; например, отрицательные числа могут отображаться красным цветом. Форматирование ячейки обычно не влияет на ее содержимое, и в зависимости от способа ссылки на ячейки или их копирования в другие листы или приложения, форматирование может не переноситься вместе с содержимым.
Названные ячейки
В большинстве реализаций ячейке или группе ячеек в столбце или строке можно присвоить "имя", что позволяет пользователю ссылаться на эти ячейки по имени, а не по адресу ячейки. Имена должны быть уникальными в пределах электронной таблицы, однако при использовании нескольких листов в файле, одинаково названные диапазоны ячеек на разных листах могут использоваться, если они различаются указанием имени листа. Это удобно, например, для создания или запуска макросов, повторяющих команду на многих листах. Кроме того, формулы с именованными переменными легко сопоставляются с алгебраическим выражением, которое они должны реализовать (они похожи на выражения на Фортране). Использование именованных переменных и функций также делает структуру электронной таблицы более понятной.
Диапазон сотовой связи
Аналогично, вместо использования именованного диапазона ячеек можно использовать ссылку на диапазон. Ссылка на диапазон ячеек обычно имеет вид (A1:A6), что указывает на все ячейки в диапазоне от A1 до A6 включительно. Формула, например, "=SUM(A1:A6)", суммирует все указанные ячейки и помещает результат в ячейку, содержащую эту формулу.
Листы
В самых ранних электронных таблицах ячейки представляли собой простую двумерную сетку. Со временем модель расширилась, включив в себя третье измерение, а в некоторых случаях – серию именованных таблиц, называемых листами. Наиболее продвинутые примеры позволяют выполнять операции инвертирования и вращения, которые могут разделять и проецировать набор данных различными способами.
Функции
В электронных таблицах обычно содержится несколько встроенных функций, таких как арифметические операции (например, суммирование, вычисление среднего значения и т. д.), тригонометрические функции, статистические функции и так далее. Помимо этого, часто предусмотрена возможность определения пользовательских функций. В Microsoft Excel эти функции определяются с помощью Visual Basic for Applications в встроенном редакторе Visual Basic и автоматически становятся доступными на рабочем листе. Также можно создавать программы, которые извлекают данные с рабочего листа, выполняют вычисления и возвращают результаты обратно на лист. На рисунке имя "sq" присвоено пользователем, а функция "sq" определена с помощью редактора Visual Basic, поставляемого вместе с Excel. Диспетчер имен отображает определения именованных переменных x и y, используемых в электронной таблице.
Подпрограммы
Функции сами по себе не могут записывать данные в рабочий лист, а лишь возвращают результат вычисления. Однако в Microsoft Excel подпрограммы могут записывать значения или текст, найденные внутри подпрограммы, непосредственно в электронную таблицу. На рисунке представлен код Visual Basic для подпрограммы, которая считывает каждый элемент именованной переменной-столбца x, вычисляет его квадрат и записывает полученное значение в соответствующий элемент именованной переменной-столбца y. В столбце y нет формул, поскольку его значения вычисляются в подпрограмме, а не в электронной таблице, и просто записываются в ячейки.
Удаленная электронная таблица
Каждый раз, когда делается ссылка на ячейку или группу ячеек, расположенных не в текущем физическом файле электронной таблицы, это считается обращением к "удаленной" электронной таблице. Содержимое ссылаемой ячейки может быть получено либо при первом обращении с ручным обновлением, либо, в случае веб-таблиц, как значение, близкое к реальному времени, с заданным интервалом автоматического обновления.
Чарты
Многие приложения электронных таблиц позволяют создавать диаграммы и графики (например, гистограммы, круговые диаграммы) на основе указанных групп ячеек, которые динамически перестраиваются при изменении содержимого ячеек. Сгенерированный графический элемент может быть встроен в текущий лист или добавлен как отдельный объект. Для создания гистограммы в Excel можно использовать формулу, основанную на функции REPT.
Логические таблицы
Складные таблицы, использующие язык формул, основанный на логических, а не арифметических выражениях, называются логическими таблицами. Такие таблицы позволяют проводить дедуктивные рассуждения относительно значений ячеек.
Проблемы программирования
Так же, как ранние языки программирования создавались для генерации распечаток табличных данных, сами методы программирования эволюционировали, чтобы более эффективно обрабатывать таблицы (также известные как электронные таблицы или матрицы) данных непосредственно в компьютере.
Разработка для конечных пользователей
Электронные таблицы — популярный инструмент разработки для конечных пользователей. EUD обозначает действия или методы, при которых люди, не являющиеся профессиональными разработчиками, создают автоматизированное поведение и сложные объекты данных, не обладая глубокими знаниями языка программирования. Для многих людей проще выполнять вычисления в электронных таблицах, чем писать эквивалентную последовательную программу. Это обусловлено рядом особенностей электронных таблиц. Они используют пространственные взаимосвязи для определения программных зависимостей. У людей хорошо развита интуиция в отношении пространства и взаимосвязей между элементами. Последовательное программирование обычно требует набора текста строка за строкой, который необходимо медленно и внимательно читать, чтобы понять и изменить. Электронные таблицы более снисходительны, позволяя получать частичные результаты и использовать функции, даже если они не полностью завершены. Одна или несколько частей программы могут работать правильно, даже если другие части незавершены или содержат ошибки. Это упрощает и ускоряет написание и отладку программ. В последовательном программировании обычно требуется, чтобы каждая строка и символ программы были абсолютно корректными для ее запуска. Одна ошибка обычно останавливает всю программу и не позволяет получить никакого результата. Хотя эта простота использования является преимуществом разработки в электронных таблицах, она часто сопровождается повышенным риском ошибок. Современные электронные таблицы поддерживают вторичную нотацию. Программу можно дополнять цветами, шрифтами, линиями и т. д. для визуального обозначения смысла элементов. Расширения, позволяющие пользователям создавать новые функции, могут предоставить возможности функционального языка. Также существуют расширения, позволяющие пользователям создавать и применять модели из области машинного обучения. Электронные таблицы универсальны. Благодаря булевой логике и графическим возможностям в них даже можно проектировать электронные схемы. Электронные таблицы могут хранить реляционные данные, а формулы электронных таблиц могут выражать любые запросы SQL. Существует транслятор запросов, который автоматически генерирует реализацию в электронной таблице на основе кода SQL.
Программы электронной таблицы
"Программа для работы с электронными таблицами" предназначена для выполнения общих вычислительных задач, используя пространственные отношения, а не время, в качестве основного принципа организации. Часто удобно рассматривать электронную таблицу как математический граф, где узлами являются ячейки электронной таблицы, а ребрами – ссылки на другие ячейки, указанные в формулах. Это часто называют графом зависимостей электронной таблицы. Ссылки между ячейками могут использовать пространственные понятия, такие как относительное и абсолютное позиционирование, а также именованные ячейки, чтобы сделать формулы электронной таблицы более понятными и удобными в управлении. В электронных таблицах обычно предусмотрена автоматическая перестройка ячеек при изменении значений, от которых они зависят. В самых ранних электронных таблицах использовались простые методы, такие как вычисление ячеек в определенном порядке, но современные электронные таблицы выполняют вычисления, следуя порядку минимального пересчета, определяемому графом зависимостей. Более поздние электронные таблицы также включают ограниченную возможность обратного распространения значений, изменяя исходные значения для достижения определенного результата в заданной ячейке. Однако, поскольку формулы ячеек электронной таблицы обычно не обратимы, эта техника имеет ограниченную ценность. Многие концепции, распространенные в последовательных моделях программирования, имеют аналоги в мире электронных таблиц. Например, последовательная модель индексированного цикла обычно представляется в виде таблицы ячеек с похожими формулами (обычно различающимися только ссылаемыми ячейками). Электронные таблицы развивались и стали использовать скриптовые языки программирования, такие как VBA, как инструмент для расширения функциональности за пределы возможностей, предоставляемых языком электронных таблиц.
Риск таблицы
Риск, связанный с использованием электронных таблиц, – это риск получения существенно неверного значения в приложении электронной таблицы, которое будет использовано при принятии соответствующего (обычно основанного на числовых данных) решения. Примеры включают оценку актива, определение финансовых показателей, расчет медицинских доз или определение размера несущей балки для строительных конструкций. Риск может возникнуть из-за ввода ошибочных или мошеннических данных, ошибок (или некорректных изменений) в логике электронной таблицы или отсутствия необходимых обновлений (например, устаревших обменных курсов). Отдельные ошибки в некоторых случаях превысили 1 миллиард долларов США. Поскольку риск, связанный с использованием электронных таблиц, в основном обусловлен действиями (или бездействием) отдельных лиц, он определяется как подкатегория операционного риска. Тем не менее, исследование, проведенное ClusterSeven, показало, что около половины (48%) руководителей высшего звена и старших менеджеров в компаниях с годовым доходом более 50 миллионов фунтов стерлингов заявили об отсутствии каких-либо средств контроля за использованием электронных таблиц или о неэффективности применяемых ручных процессов. В 2013 году Томас Херндон, аспирант экономического факультета Университета Массачусетса в Амхерсте, обнаружил серьезные ошибки в коде электронной таблицы, использованной экономистами Кармен Рейнхарт и Кеннетом Рогоффом в их влиятельной статье 2010 года "Рост в условиях долга". Статья Рейнхарт и Рогоффа широко использовалась для обоснования программ жесткой экономии в Европе в период с 2010 по 2013 год.