ДИНАМИЧЕСКИЕ ФОРМУЛЫ ДЛЯ ЯЧЕЕК ЭЛЕКТРОННОЙ ТАБЛИЦЫ
DYNAMIC FORMULAE FOR SPREADSHEET CELLS

УРОВЕНЬ ТЕХНИКИ
Компании часто выполняют анализ "что-если", чтобы определить, какое влияние на бизнес-единицу имели бы изменения в одном или нескольких значениях. Например, при выполнении операций бюджетирования и прогнозирования, или просто сбора хозяйственных показателей, компании часто опираются на решения по анализу "что-если", которые позволяют им скорректировать существующие цифры, а затем вычислить влияние той корректировки на зависимые цифры. Для более сложных сценариев эти корректировки могут выполняться с использованием формул вместо статических значений.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Данный раздел описания изобретения предоставляется, чтобы представить концепции в упрощенном виде, которые дополнительно описываются ниже в Подробном описании. Данный раздел описания изобретения не предназначен для определения ключевых признаков или существенных признаков заявленного предмета изобретения, и также не предназначена для использования в качестве содействия в определении объема заявленного предмета изобретения.
Более одной формулы ассоциируется с одной ячейкой электронной таблицы. Одна из формул является базисной формулой и представляет собой фактическое значение, извлеченное из источника данных. Другая из формул представляет корректировочную формулу, которая используется для вычисления корректировки для значения, содержащегося в ячейке. Другие корректировочные формулы могут представлять другие отличные сценарии вычисления. Формулы, ассоциированные с ячейкой электронной таблицы, обновляются и корректируются динамически, чтобы реагировать на изменения где-то в другом месте электронной таблицы, так что пользователь может пересчитать всю электронную таблицу и переставить формулы в электронной таблице, соответственно заставляя обновляться базисную формулу и все корректировочные формулы, которые могут существовать в той же ячейке.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует типовое вычислительное устройство;
фиг.2 показывает систему для ассоциирования нескольких формул с одной ячейкой электронной таблицы; и
фиг.3 иллюстрирует процесс для ассоциирования нескольких формул с одной ячейкой электронной таблицы.
ПОДРОБНОЕ ОПИСАНИЕ
Ссылаясь на чертежи, на которых одинаковые цифры представляют одинаковые элементы, ниже будут описываться различные варианты осуществления. В частности, фиг.1 и соответствующее обсуждение имеют целью предоставить краткое общее описание подходящей вычислительной среды, в которой могут быть реализованы варианты осуществления.
Как правило, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Также могут использоваться другие конфигурации компьютерных систем, включая карманные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, мини-компьютеры, мейнфреймы и т.п. Также могут использоваться распределенные вычислительные среды, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут размещаться как на локальных, так и на удаленных запоминающих устройствах.
Ссылаясь на фиг.1, будет описываться пояснительная компьютерная архитектура для компьютера 100, используемого в различных вариантах осуществления. Компьютерная архитектура, показанная на фиг.1, может конфигурироваться в виде настольного или мобильного компьютера и включает в себя центральный процессор 5 ("CPU"), системную память 7, включающую в себя оперативное запоминающее устройство 9 ("RAM") и постоянное запоминающее устройство 10 ("ROM"), и системную шину 12, которая соединяет запоминающее устройство с CPU 5. Базовая система ввода/вывода, содержащая базовые процедуры, которые помогают передавать информацию между элементами внутри компьютера, например во время запуска, хранится в ROM 10. Компьютер 100 дополнительно включает в себя запоминающее устройство 14 большой емкости для хранения операционной системы 16, прикладных программ 24 и других программных модулей, которые ниже будут описываться подробнее.
Запоминающее устройство 14 большой емкости подключается к CPU 5 через контроллер запоминающего устройства (не показан), подключенный к шине 12. Запоминающее устройство 14 большой емкости и его ассоциированные машиночитаемые носители предоставляют энергонезависимое хранилище для компьютера 100. Хотя описание машиночитаемых носителей, содержащееся в этом документе, ссылается на запоминающее устройство большой емкости, например жесткий диск или дисковод CD-ROM, машиночитаемые носители могут быть любым доступными носителями, к которым можно обращаться с помощью компьютера 100.
В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные носители информации и средства связи. Компьютерные носители информации включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не ограничены, RAM, ROM, EPROM, EEPROM, флэш-память или другую технологию твердотельной памяти, компакт-диск, универсальные цифровые диски ("DVD") или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения нужной информации и к которому можно обращаться с помощью компьютера 100.
В соответствии с различными вариантами осуществления компьютер 100 может работать в сетевой среде, используя логические соединения с удаленными компьютерами через сеть 18, например Интернет. Компьютер 100 может подключаться к сети 18 через сетевой интерфейсный модуль 20, подключенный к шине 12. Сетевое соединение может быть беспроводным и/или проводным. Сетевой интерфейсный модуль 20 также может использоваться для подключения к другим типам сетей и удаленным компьютерным системам. Компьютер 100 также может включать в себя контроллер 22 ввода/вывода для приема и обработки входных данных от других устройств, включая клавиатуру, мышь или электронное перо (не показано на фиг.1). Также контроллер 22 ввода/вывода может обеспечивать вывод на экран дисплея, который включает в себя интерфейс 28 пользователя, принтер или другой тип устройства вывода. Компьютер 100 также может соединяться с источником/источниками 23 данных посредством сетевого соединения 18 и/или какого-нибудь другого соединения.
Как вкратце упоминалось выше, некоторое количество программных модулей и файлов данных может храниться в запоминающем устройстве 14 большой емкости и RAM 9 в компьютере 100, включая операционную систему 16, подходящую для управления работой сетевого персонального компьютера, например операционную систему WINDOWS VISTA от компании MICROSOFT CORPORATION в Редмонде, штат Вашингтон. Запоминающее устройство 14 большой емкости и RAM 9 также могут хранить один или несколько программных модулей. В частности, запоминающее устройство 14 большой емкости и RAM 9 могут хранить одну или несколько прикладных программ, например приложение 24 электронных таблиц. Например, программа 24 электронных таблиц может быть приложением MICROSOFT EXCEL.
Механизм 26 анализа функционирует для оценки электронной таблицы 27. Механизм 26 анализа, хотя и показан независимым от приложения 24 электронных таблиц, может конфигурироваться как часть приложения 24 электронной таблицы. В электронной таблице 27 по меньшей мере одна из ячеек содержит несколько формул 28, которые включают в себя базисную формулу и одну или несколько корректировочных формул, которые с ней ассоциируются. Базисная формула фактически может быть всего лишь значением вместо формулы электронной таблицы. Формулы в электронной таблице 27 могут извлекать данные из одного или нескольких источников данных. Например, формулы могут извлекать данные из внутреннего и/или внешнего источника 23 данных. Внутренним источником данных является электронная таблица 27. Также можно обращаться к другим источникам данных (не показаны). Ячейки в электронной таблице, которые включают в себя несколько формул, включают в себя базисную формулу, которая включает в себя фактическое значение, извлеченное из источника данных, например источника 23 данных. Другие формулы, которые ассоциируются с той ячейкой, представляют собой одну или несколько корректировочных формул, которые используются для вычисления корректировки к значению, которое содержится в ячейке. Как правило, каждая из этих корректировочных формул представляет разные сценарии вычисления. В ответ на обновление в электронной таблице 27 каждая из формул, ассоциированная с каждой из ячеек, обновляется динамически и корректируется для реакции на изменения где-то в электронной таблице. Таким образом, пользователь может пересчитать электронную таблицу и переставить формулы в электронной таблице, соответственно заставляя обновляться базисную формулу и корректировочные формулы, которые могут существовать в той же ячейке.
Интерфейс 28 пользователя (UI) спроектирован для предоставления пользователю визуального способа редактирования формул, ассоциированных с электронной таблицей 27. Например, UI 28 может использоваться для редактирования формул, которые ассоциируются с одной или несколькими ячейками в электронной таблице 27. В соответствии с одним вариантом осуществления, UI 28 включает в себя устанавливаемую опцию, указывающую, когда выполнять анализ "что-если" с использованием одной из корректировочных формул. Когда редактируется формула в электронной таблице, механизм 26 анализа пересчитывает значения электронной таблицы, которые содержатся в электронной таблице 27.
На фиг.2 показана система для ассоциации нескольких формул с одной ячейкой электронной таблицы. Как проиллюстрировано, система 200 электронных таблиц включает в себя приложение 24 электронных таблиц, включающее ячейку в электронной таблице 41, механизм 26 анализа, интерфейс 28 пользователя (UI), базисную формулу 43, корректировочные формулы 1-N (43-45) и источник 42 данных.
Будет описываться пример для целей иллюстрации, а не с целью ограничения. Предположим, что ячейка 41 в электронной таблице содержит базисную формулу 43, которая является формулой извлечения данных, которая извлекает данные из источника 42 данных, например куба (например, =CUBEVALUE("Adventure Works","[Measures].[Internet Sales Amount]","[Product].[Product Categories].[All Products].[Bikes]")). Эта базисная формула 43 может использовать данные из набора данных, который может быть внешним по отношению к приложению 24 электронных таблиц, или источника данных, который может быть просто данными в другом месте в электронной таблице. В соответствии с одним вариантом осуществления всякий раз, когда электронная таблица пересчитывается механизмом 26 анализа, эта базисная формула повторно оценивается. Когда базисная формула повторно оценивается, снова обращаются к данным для источника данных, чтобы определить, внесены ли изменения в источник данных после последней оценки.
Теперь предположим, что пользователь хочет иметь возможность скорректировать значение в исходных данных, извлеченных базисной формулой извлечения данных выше, чтобы увидеть влияние на другие значения в исходных данных. В соответствии с одним вариантом осуществления, чтобы выполнить это, пользователь включает режим ввода данных, используя UI 28, который позволяет пользователю вводить другую формулу в ту же ячейку без перезаписи базисной формулы извлечения данных, которая уже введена. Предположим, что введенной корректировочной формулой 44 является "=0,5*(L11+M11)". Здесь пользователь может проанализировать влияние корректировки на другие ячейки/значения и решить на самом деле записать изменение в источник данных путем установки опции в UI 28 или отменить его, чтобы вернуться к исходному значению. Корректировочная формула может быть любым типом формулы. Например, корректировочная формула могла бы влиять на агрегирование в сводной таблице, которая ассоциируется с кубом данных. В этом примере предположим, что куб включается в себя страны на одном уровне, штаты на другом уровне и города на третьем уровне. Когда корректировочная формула изменяет значение на уровне штата, то изменилось бы итоговое значение для уровня страны. Аналогичным образом любое изменение на уровне города агрегировалось бы соответственно.
В любой момент в течение этого, как правило, итеративного процесса базисная формула 43 и корректировочная формула(ы), введенные в одну ячейку 41 электронной таблицы, сохраняются и динамически обновляются. В соответствии с одним вариантом осуществления ячейки, имеющие скорректированные значения, помечаются визуально, чтобы дать возможность пользователю узнать, какие ячейки скорректированы и поэтому в настоящее время не показывают значение, извлеченное из источника данных, а вместо этого показывают скорректированное значение, введенное пользователем в виде формулы. В соответствии с одним вариантом осуществления базисная формула и корректировочные формулы сохраняются в системной памяти вычислительного устройства.
Со ссылкой на фиг.3 описывается пояснительный процесс для ассоциирования нескольких формул с одной ячейкой электронной таблицы.
При обсуждении процедур, представленных в этом документе, следует принять во внимание, что логические операции в различных вариантах осуществления реализуются (1) в виде последовательности реализуемых компьютером действий или программных модулей, работающих в вычислительной системе, и/или (2) в виде взаимосвязанных логических схем вычислительной машины или электронных модулей в вычислительной системе. Реализация выборочно зависит от требований к рабочим характеристикам вычислительной системы, реализующей изобретение. Соответственно, логические операции, проиллюстрированные и составляющие варианты осуществления, описанные в этом документе, по-разному называются операциями, структурными устройствами, действиями или модулями. Эти операции, структурные устройства, действия и модули могут быть реализованы в программном обеспечении, микропрограммном обеспечении, специализированной цифровой логике и любом их сочетании.
После начальной операции процесс переходит к операции 310, где обращаются к ячейке в электронной таблице. Хотя иллюстрируется доступ только к одной ячейке, любое количество ячеек в электронной таблице может содержать несколько формул. Электронная таблица может быть любым типом электронной таблицы. В соответствии с одним вариантом осуществления электронные таблицы являются электронными таблицами Excel.
Переходя к операции 320, запускается анализ корректировки. В соответствии с одним вариантом осуществления пользователь устанавливает опцию анализа корректировки с использованием интерфейса пользователя, который ассоциируется с электронной таблицей. Например, пользователь может установить опцию, которая указывает, что нужно выполнить анализ "что-если". В соответствии с одним вариантом осуществления, когда нужно выполнить анализ "что-если", базисной формулой не извлекаются никакие данные, когда базисная формула является формулой извлечения данных. Вместо этого базисная формула извлечения данных сохраняется для последующего использования после того, как пользователь завершит выполнение оценок в сценарии "что-если". В соответствии с другим вариантом осуществления данные могут извлекаться формулой извлечения данных, даже когда выполняется анализ "что-если". В этом случае данные, которые извлекаются базисной формулой извлечения данных, могут отображаться в дополнение к значению из анализа "что-если". Например, пользователь может захотеть увидеть извлеченные данные в дополнение к значению из анализа "что-если" (например, извлеченные данные отображаются в другом окне, например всплывающем окне). Таким образом, пользователь может наблюдать данные из анализа "что-если" в дополнение к возможности видеть последние извлеченные данные.
Переходя к операции 330, может вводиться и/или редактироваться корректировочная формула, которая ассоциируется с ячейкой. Корректировочная формула используется для выполнения анализа "что-если" для электронной таблицы. В соответствии с одним вариантом осуществления помечаются ячейки в электронной таблице, которые редактируются, так что пользователь может распознать затронутые ячейки.
Переходя к операции 340, электронная таблица оценивается с использованием результатов, которые ассоциируются с корректировочной формулой, вместо использования базисной формулы для оценки электронной таблицы. В течение времени, когда электронная таблица выполняет анализ "что-если", базисная формула хранится в запоминающем устройстве. В соответствии с одним вариантом осуществления всякий раз, когда повторно оценивается электронная таблица, также оценивается каждая формула, которая ассоциируется с ячейкой. Например, во время оценки корректировочной формулы также может оцениваться оценка базисной формулы, ассоциированной с ячейкой, помогая убедиться, что базисная формула содержит последние данные. В соответствии с другим вариантом осуществления базисная формула не оценивается, когда оценивается корректировочная формула.
Переходя к операции 350, данные, вычисленные для ячейки во время оценки корректировочной формулы, могут быть записаны в источник данных, к которому обращается базисная формула. В соответствии с другим вариантом осуществления эта опция недоступна.
Переходя к операции 360, интерфейс пользователя используется для отключения анализа корректировки, в результате чего базисная формула используется для оценок для электронной таблицы.
Процесс затем переходит к завершающей операции и возвращается к обработке других действий.
Вышеприведенные описание изобретения, примеры и данные обеспечивают полное описание производства и использования изобретения. Поскольку многие варианты осуществления изобретения могут быть сделаны без отклонения от сущности и объема изобретения, изобретение состоит в формуле изобретения, прилагаемой ниже.