EP4315150A1 - Limitation dynamique de la portée de nouveaux calculs de tableur - Google Patents

Limitation dynamique de la portée de nouveaux calculs de tableur

Info

Publication number
EP4315150A1
EP4315150A1 EP22714094.4A EP22714094A EP4315150A1 EP 4315150 A1 EP4315150 A1 EP 4315150A1 EP 22714094 A EP22714094 A EP 22714094A EP 4315150 A1 EP4315150 A1 EP 4315150A1
Authority
EP
European Patent Office
Prior art keywords
workbook
recalculation
worksheet
workbooks
scope
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP22714094.4A
Other languages
German (de)
English (en)
Inventor
Prashant Anand SHIROLKAR
George Randell Dong
Alexander Yuryevich NOVOKHODKO
Jeffrey James Duzak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/341,770 external-priority patent/US20220318232A1/en
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of EP4315150A1 publication Critical patent/EP4315150A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Definitions

  • TECHNICAL FIELD 10001 Aspects of the disclosure are related to the field of software applications and services and, more particularly, to recalculation operations in spreadsheet environments. BACKGROUND
  • Recalculations in spreadsheet applications are generally performed on a global basis, meaning that each time a recalculation is triggered, the scope of the recalculation encompasses all of the open workbooks in an a given environment.
  • a calculation manager in a spreadsheet application tracks which cells in a given workbook are not up to date (“dirty”) so that when the recalculation runs, those cells are included in the recalculation.
  • Volatile formulas are a type of formula that are always out of date, such as the NOW function, the RAND function, and others. The presence of these functions in workbooks can slow the user experience and is especially bothersome if they reside in workbooks that are not active.
  • a user working in an active workbook may enter a value in a cell that is referenced not only by formulas in the active workbook, but by formulas in other workbooks that are open on the computer, but not active.
  • Changing the value in the cell serves as a trigger for the calculation engine to recalculate any cells that are out of date, which include the cells that depend on the cell that triggered the recalculation.
  • the recalculation operation will thus bring those cells up to date, but the recalculation will also operate on other dirty cells that are not dependent on the triggering cell.
  • recalculating those cells can trigger yet more recalculations in a spiral that can degrade the user experience and waste processing resources, especially when the impacted cells are out of view of the user in inactive workbooks.
  • a calculation manger identifies one or more external references within a workbook, wherein the workbook resides in a spreadsheet environment comprising multiple workbooks.
  • the recalculation manager then identifies a scope of a recalculation, triggered by an event in the workbook, based on one or more factors comprising the one or more external references.
  • a recalculation engine then performs the recalculation within the identified scope.
  • Figure 1 illustrates an operational environment in an implementation.
  • Figure 2 illustrates a calculation management process in an implementation.
  • Figure 3 illustrates another operational environment in an implementation.
  • Figure 4 illustrates an operational scenario in an implementation.
  • Figure 5 illustrates a computing device suitable for implementing the various operational environments, architectures, processes, scenarios, and sequences discussed below with respect to the Figures.
  • a computing device having a spreadsheet application running therein executes a calculation management process.
  • the process may be an integrated component of the application or may be external to the application.
  • the process is embodied in program instructions that, when executed by one or more processors in the computing device, direct the device to identify one or more external references within a workbook, wherein the workbook resides in a spreadsheet environment comprising multiple workbooks.
  • the computing device then identifies a scope of a recalculation, triggered by an event in the workbook, based on one or more factors comprising the one or more external references.
  • the device also performs the recalculation within the identified scope.
  • each external reference of the one or more external references links the workbook to one other workbook of the multiple workbooks, and the identified scope limits the recalculation to the workbook and the one other workbook.
  • the identified scope excludes from the recalculation any other workbooks of the multiple workbooks that are not linked by the external references to the workbook, even if any of the other workbooks include volatile functions.
  • the one or more factors further comprise a view port and wherein the identified scope further limits the recalculation to a portion of the workbook in range of the viewport and any portions of the one other workbook linked to the portion of the workbook.
  • each external reference of the one or more external references links a worksheet in the workbook to one other worksheet in the one other workbook.
  • the identified scope limits the recalculation to the workbook and the one other worksheet. [0019] In the same or other implementations as those described above, the identified scope limits the recalculation to the worksheet and the one other worksheet. [0020] In the same or other implementations as those described above, the one or more factors further comprise a view port and wherein the identified scope further limits the recalculation to a portion of the worksheet in range of the viewport and any portions of the one other worksheet linked to the portion of the worksheet.
  • the one or more factors further comprises a status of each of the multiple workbooks with respect to real-time data.
  • FIG. 1 illustrates an operational environment 100 in an implementation.
  • Operational environment 100 includes computing device 101 that hosts a spreadsheet application that, when executed, creates a spreadsheet environment comprising multiple spreadsheet workbooks.
  • Examples of computing devices 101 include personal computers, tablet computers, mobile phones, and any other suitable devices, of which computing device 501 in Figure 5 is broadly representative.
  • Workbook 111, workbook 112, and workbook 113 are representative of the workbooks within a spreadsheet environment.
  • a user interface 105 displayed by computing device 101 includes a representation of an active one of the workbooks which, for exemplary purposes, is assumed to be workbook 111.
  • the workbooks in the environment may include external references to each other.
  • a worksheet within one workbook may include one or more cells having formulas that refer to other cells in other sheets of the other workbooks.
  • workbook 111 includes an external reference 115 to workbook 113. This means that a formula in workbook 111 refers to a cell value in workbook 113 such that, for the value in workbook 111 to be up to date, the cell value in workbook 113 must also be up to date.
  • recalculations in spreadsheet applications are generally performed on a global basis, meaning that each time a recalculation is triggered, the scope of the recalculation encompasses all of the open workbooks in an a given environment.
  • a calculation manager tracks which cells in a given workbook are not up to date (“dirty”) so that when the recalculation runs, those cells are included in the recalculation.
  • Volatile formulas are a type of formula that are always out of date, such as the NOW function, the RAND function, and others. The presence of these functions in workbooks can slow the user experience and is especially bothersome if they reside in workbooks that are not active.
  • calculation management process 200 in Figure 2 dynamically limits the scope of a recalculation operation.
  • Calculation management process 200 is employed by a computing device to manage recalculation operations in a spreadsheet environment.
  • Calculation management process 200 may be implemented in program instructions in the context of any of the software applications, modules, components, or other such programming elements of computing device 101.
  • the program instructions direct its underlying physical or virtual computing system or systems to operate as follows, referring parenthetically to the steps in Figure 2 in the context of operational environment 100 for exemplary purposes.
  • computing device 101 identifies the external references of a workbook (step 201).
  • the references may be tracked in a table, graph, or other such data structure.
  • the data structure may be specific to the workbook, specific to a worksheet within the workbook, or global with respect to any or all workbooks and worksheets in the environment.
  • computing device 203 examines the data structure(s) to identify a limited scope of the recalculation (step 203).
  • the scope is determined based on one or more factors such as the external references and, more particularly, the other workbooks and/or sheets identified by the external references. Having determined the scope, computing device 101 then performs the recalculation within the limits of the identified scope (step 205).
  • workbook 111 includes an external reference 115 to workbook 113, whereas it has no references to workbook 112.
  • the darkened cells in each workbook represent cells that are out of date and thus would normally be included in the recalculation.
  • the scope of the recalculation is determined to include workbook 111 and workbook 113.
  • workbook 112 is excluded from the recalculation even though it has out of date cells.
  • Figure 3 illustrates another operational environment 300 in an implementation.
  • Operational environment 300 includes computing device 301, 303, and 305.
  • Computing device 301, 303, and 305 access a spreadsheet service provided by server 310.
  • Service 310 is representative of one or more physical and/or virtual servers in a cloud environment capable of hosting a spreadsheet application. As such, server 310 generates a spreadsheet environment 320 when executing one or more spreadsheet application processes to provide the service to computing devices 301, 303, and 305.
  • Server 310 also includes calculation management process 200 which may be embodied in the program instructions of the one or more spreadsheet applications resident on server 310. Each instance of the application may execute its own instance of calculation management process 200.
  • spreadsheet environment 320 may include one or more calculation engines that function to calculate the values for the formulas in workbook sets 311, 313, and 315.
  • Workbook set 311 represents multiple workbooks associated with computing device 301 and/or a user account associated with computing device 301.
  • Workbook set 313 represents multiple workbooks associated with computing device 303 and/or a user account associated with computing device 303.
  • workbook set 315 represents multiple workbooks associated with computing device 305 and/or a user account associated with computing device 305.
  • server 310 employs calculation management process 200 on a per-set basis. That is, calculation management process 200 keeps the different workbook sets separate from each other. The external references of each workbook in each set are tracked such that they may be considered when a recalculation is triggered by an event in an active workbook.
  • server 310 identifies the external references of the active workbook to identify a limited scope of the recalculation. The scope is determined based on one or more factors such as the external references and, more particularly, the other workbooks and/or sheets identified by the external references. Server 310 then performs the recalculation within the limits of the identified scope.
  • FIG. 4 illustrates an operational scenario 400 in an implementation, as well as example scopes 450 of possible recalculations.
  • Operational scenario 400 involves four workbooks represented by workbook 410, workbook 420, workbook 430, and workbook 440.
  • Workbook 410 includes worksheets 411, 413, and 415.
  • Workbook 420 includes worksheets 421 and 423.
  • Workbook 430 includes worksheet 431.
  • workbook 440 includes worksheet 441, worksheet 445, and worksheet 443.
  • External references between the workbooks may be tracked in various ways. For instance, a table within workbook 410 may identify at a workbook level its external references to other workbooks such external reference 401 to workbook 420.
  • workbook 410 may also track external references on a per- sheet basis such as external reference 405 between worksheet 413 and worksheet 423.
  • workbook 420 may track its external references at a workbook level (e.g., external references 401 and 403). References between worksheets in the same workbook can also be tracked in the same or similar tables.
  • the scope may be determined on a per-workbook basis, a per-worksheet basis, or a combination of the two, depending upon the granularity with which external references are tracked in the workbooks.
  • the calculation management process may also consider chains of external references that may extend one or two levels beyond an initial link.
  • scope 451 is limited to workbook 410 and workbook 420 as it was determined on a per- workbook basis and only one level deep.
  • Scope 453 is limited to workbook 410, workbook 420, and workbook 440 as it was determined on a per-workbook basis but more than one level deep.
  • Scope 455 is limited to workbook 410 and worksheet 423 as it was a determined on a combined basis of workbooks and worksheets.
  • Scope 457 is limited to worksheet 413 and worksheet 423 as it was determined on a per-worksheet basis.
  • scope 459 is limited to worksheet 413, worksheet 423, and worksheet 440 as it was determined on a combined basis and with respect to multiple levels of linking. It may be appreciated that other limits to the scope of a recalculation are possible such as limiting the scope to a subset of worksheets in the same workbook.
  • FIG. 5 illustrates computing device 501 that is representative of any system or collection of systems in which the various processes, programs, services, and scenarios disclosed herein may be implemented.
  • Examples of computing device 501 include, but are not limited to, desktop and laptop computers, tablet computers, mobile computers, and wearable devices. Examples may also include server computers, web servers, cloud computing platforms, and data center equipment, as well as any other type of physical or virtual server machine, container, and any variation or combination thereof.
  • Computing device 501 may be implemented as a single apparatus, system, or device or may be implemented in a distributed manner as multiple apparatuses, systems, or devices.
  • Computing device 501 includes, but is not limited to, processing system 502, storage system 503, software 505, communication interface system 507, and user interface system 509 (optional). Processing system 502 is operatively coupled with storage system 503, communication interface system 507, and user interface system 509.
  • Processing system 502 loads and executes software 505 from storage system
  • Software 505 includes and implements calculation management process 506, which is representative of the calculation management processes discussed with respect to the preceding Figures. When executed by processing system 502, software 505 directs processing system 502 to operate as described herein for at least the various processes, operational scenarios, and sequences discussed in the foregoing implementations.
  • Computing device 501 may optionally include additional devices, features, or functionality not discussed for purposes of brevity.
  • processing system 502 may comprise a micro processor and other circuitry that retrieves and executes software 505 from storage system 503.
  • Processing system 502 may be implemented within a single processing device but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system 502 include general purpose central processing units, graphical processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.
  • Storage system 503 may comprise any computer readable storage media readable by processing system 502 and capable of storing software 505.
  • Storage system 503 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the computer readable storage media a propagated signal.
  • storage system 503 may also include computer readable communication media over which at least some of software 505 may be communicated internally or externally.
  • Storage system 503 may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other.
  • Storage system 503 may comprise additional elements, such as a controller, capable of communicating with processing system 502 or possibly other systems.
  • Software 505 may be implemented in program instructions and among other functions may, when executed by processing system 502, direct processing system 502 to operate as described with respect to the various operational scenarios, sequences, and processes illustrated herein.
  • software 505 may include program instructions for implementing a calculation management process as described herein.
  • the program instructions may include various components or modules that cooperate or otherwise interact to carry out the various processes and operational scenarios described herein.
  • the various components or modules may be embodied in compiled or interpreted instructions, or in some other variation or combination of instructions.
  • the various components or modules may be executed in a synchronous or asynchronous manner, serially or in parallel, in a single threaded environment or multi -threaded, or in accordance with any other suitable execution paradigm, variation, or combination thereof.
  • Software 505 may include additional processes, programs, or components, such as operating system software, virtualization software, or other application software.
  • Software 505 may also comprise firmware or some other form of machine-readable processing instructions executable by processing system 502.
  • software 505 may, when loaded into processing system 502 and executed, transform a suitable apparatus, system, or device (of which computing device 501 is representative) overall from a general-purpose computing system into a special- purpose computing system customized to perform calculation management in an optimized manner.
  • encoding software 505 on storage system 503 may transform the physical structure of storage system 503.
  • the specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the storage media of storage system 503 and whether the computer-storage media are characterized as primary or secondary storage, as well as other factors.
  • software 505 may transform the physical state of the semiconductor memory when the program instructions are encoded therein, such as by transforming the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory.
  • a similar transformation may occur with respect to magnetic or optical media.
  • Other transformations of physical media are possible without departing from the scope of the present description, with the foregoing examples provided only to facilitate the present discussion.
  • Communication interface system 507 may include communication connections and devices that allow for communication with other computing systems (not shown) over communication networks (not shown). Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. The connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned media, connections, and devices are well known and need not be discussed at length here.
  • Communication between computing device 501 and other computing systems may occur over a communication network or networks and in accordance with various communication protocols, combinations of protocols, or variations thereof. Examples include intranets, internets, the Internet, local area networks, wide area networks, wireless networks, wired networks, virtual networks, software defined networks, data center buses and backplanes, or any other type of network, combination of network, or variation thereof.
  • the aforementioned communication networks and protocols are well known and need not be discussed at length here.
  • aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • inventive concepts disclosed herein are discussed in the context of such productivity applications, they apply as well to other contexts such as gaming applications, virtual and augmented reality applications, business applications, and other types of software applications. Likewise, the concepts apply not just to electronic documents, but to other types of content such as in-game electronic content, virtual and augmented content, databases, and audio and video content.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Dans divers modes de réalisation, un gestionnaire de calcul identifie une ou plusieurs références externes à l'intérieur d'un classeur, le classeur se situant dans un environnement de tableur comprenant de multiples classeurs. Le gestionnaire de nouveau calcul identifie ensuite la portée d'un nouveau calcul, déclenché par un événement dans le classeur, sur la base d'un ou de plusieurs facteurs comprenant la ou les références externes. Un moteur de nouveau calcul effectue ensuite le nouveau calcul dans le cadre identifié.
EP22714094.4A 2021-03-31 2022-03-15 Limitation dynamique de la portée de nouveaux calculs de tableur Pending EP4315150A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163169046P 2021-03-31 2021-03-31
US17/341,770 US20220318232A1 (en) 2021-03-31 2021-06-08 Dynamically limiting the scope of spreadsheet recalculations
PCT/US2022/020280 WO2022212024A1 (fr) 2021-03-31 2022-03-15 Limitation dynamique de la portée de nouveaux calculs de tableur

Publications (1)

Publication Number Publication Date
EP4315150A1 true EP4315150A1 (fr) 2024-02-07

Family

ID=81000009

Family Applications (1)

Application Number Title Priority Date Filing Date
EP22714094.4A Pending EP4315150A1 (fr) 2021-03-31 2022-03-15 Limitation dynamique de la portée de nouveaux calculs de tableur

Country Status (2)

Country Link
EP (1) EP4315150A1 (fr)
WO (1) WO2022212024A1 (fr)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701485B1 (en) * 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US6898760B2 (en) * 2001-01-05 2005-05-24 Microsoft Corporation Reporting status of external references in a spreadsheet without updating
US7251776B2 (en) * 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
US7640490B2 (en) * 2004-12-20 2009-12-29 Microsoft Corporation Method, system, and computer-readable medium for controlling the calculation of volatile functions in a spreadsheet
US10133719B2 (en) * 2007-09-28 2018-11-20 Microsoft Technology Licensing, Llc Spreadsheet workbook part libraries
US8862979B2 (en) * 2008-01-15 2014-10-14 Microsoft Corporation Multi-client collaboration to access and update structured data elements

Also Published As

Publication number Publication date
WO2022212024A1 (fr) 2022-10-06

Similar Documents

Publication Publication Date Title
CN111898139B (zh) 数据读写方法及装置、电子设备
US10423471B2 (en) Virtualizing integrated calls to provide access to resources in a virtual namespace
CN112559522A (zh) 数据存储方法、装置、查询方法、电子设备及可读介质
US9336334B2 (en) Key-value pairs data processing apparatus and method
CN110750530A (zh) 一种业务系统及其数据核对方法
CN110781200A (zh) 一种区块链异常数据的处理方法、装置、设备和介质
EP1949228B1 (fr) Compilation a la volee asynchrone
US20220318232A1 (en) Dynamically limiting the scope of spreadsheet recalculations
EP4315150A1 (fr) Limitation dynamique de la portée de nouveaux calculs de tableur
US20140222496A1 (en) Determining cost and risk associated with assets of an information technology environment
CN109582476B (zh) 数据处理方法、装置及系统
US9760655B2 (en) Systems and methods for discovering temporal patterns in time variant bipartite graphs
CN114466012B (zh) 内容初始化方法、装置、电子设备和存储介质
US20150170068A1 (en) Determining analysis recommendations based on data analysis context
US11640414B2 (en) Generating workflow, report, interface, conversion, enhancement, and forms (WRICEF) objects for enterprise software
US11966796B2 (en) Enhanced integration of spreadsheets with external environments
EP3077925B1 (fr) Environnements de services améliorés grâce à des ensembles de travail spécifiques à l'utilisateur
Teller et al. Insights into providing dynamic adaptation of operating system policies
US11526619B2 (en) System for securing and allowing access to electronic data in a data storage container
CN114416215A (zh) 函数调用方法及装置
Baskaran et al. Technologies for Sharing Network Performance Data (TEECODE)
CN113971295A (zh) 一种基于字段过滤的数据脱敏方法与设备
CN115600817A (zh) 一种对象间交互信息分析方法、装置、设备和存储介质
Kim JenniferSoft: APM software development leader in Korea
Fiske Addressing the Water-Energy Challenge

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230731

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR