US20020023105A1 - Visual aid to simplify achieving correct cell interrelations in spreadsheets - Google Patents
Visual aid to simplify achieving correct cell interrelations in spreadsheets Download PDFInfo
- Publication number
- US20020023105A1 US20020023105A1 US09/129,490 US12949098A US2002023105A1 US 20020023105 A1 US20020023105 A1 US 20020023105A1 US 12949098 A US12949098 A US 12949098A US 2002023105 A1 US2002023105 A1 US 2002023105A1
- Authority
- US
- United States
- Prior art keywords
- cell
- cells
- data
- group
- marking
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Definitions
- This invention relates to a method of displaying a spreadsheet so as to facilitate the identification of errors.
- An electronic spreadsheet is a two-dimensional grid containing data and formulas that are entered in a manner allowing computer manipulation.
- Spreadsheets can be used for simple applications such as balancing a checkbook, to applications as complex as inventory control and pricing for a factory.
- the formulas relate the data and produce results.
- FIG. 1 column d (row n) may result from the summation of column c (row n) and column b (row n). See that the result of 41 in d 3 equals the sum of the 17 in b 3 and the 24 in c 3 .
- This result may in turn be used as data in other formulas.
- row 5 may be the sum of rows 2 , 3 , and 4 .
- the 60 in b 5 equals the sum of the 24 in b 2 , the 17 in b 3 , and the 19 in b 4 .
- the interrelations that occur become complex and difficult to understand.
- the accuracy of the final result depends on correctly linking together the data of the spreadsheet with all the formulas. As the spreadsheet becomes larger and more complex, it is difficult to determine whether all the relations have been correctly entered.
- the formula of all the cells in a spreadsheet can be displayed to facilitate error detection.
- FIG. 1 represents a basic spreadsheet as described by prior art.
- FIG. 2 represents a basic spreadsheet with debugging highlighted enabled and cell d 2 selected.
- FIG. 3 represents the different menu options available to a user with this invention. It shows what the user sees in the process of selecting the number of levels to display highlighting for.
- FIG. 4 represents a generic spreadsheet that is used for demonstration purposes throughout the application. This might be a overly simplistic representation of a factory balancing their books.
- FIG. 5 represents the same spreadsheet as in FIG. 4 except that the option to show all formulas has been enabled.
- FIG. 6 represents a spreadsheet where the user had incorrectly entered the formula in cell d 10 .
- FIG. 7 represents the spreadsheet in FIG. 6 with Debugging highlighting enabled and cell b 10 selected.
- FIGS. 7 - 9 are a sequence as described in the preferred embodiment that a user would use to debug the error in FIG. 6.
- FIG. 8 represents the spreadsheet in FIG. 6 with Debugging highlighting enabled and cell c 10 selected.
- FIG. 9 represents the spreadsheet in FIG. 6 with Debugging highlighting enabled and cell d 10 selected. Note the visual difference between FIGS. 7 and 8 and FIG. 9.
- FIG. 10 represents the spreadsheet with all levels of debugging enabled and cell b 2 selected.
- FIG. 11 represents the spreadsheet with only 2 levels of debugging enabled and cell b 2 selected.
- FIGS. 12 - 15 represents a sequence of successive clicks on cell f 4 with a branching factor of 1 chosen. Notice that each of FIGS. 12 - 15 is different and represents a unique path from the selected cell back to a lead node.
- FIG. 16 represents a tree walked in breadth-first search order, with the number on the nodes indicating the traversal order.
- FIG. 17 represents a tree walked in depth-first search order, with the number on the nodes indicating the traversal order.
- FIGS. 2 - 17 The preferred embodiment of this inventions is illustrated in FIGS. 2 - 17 .
- a electronic spreadsheet is a two-dimensional grid containing data and formulas that are entered in a manner allowing computer manipulation.
- the formulas relate the data and produce results.
- FIG. 2 column d (row n) may result from the summation of column c (row n) and column b (row n). See that the result of 118 in d 5 is the sum of 60 in b 5 plus the 58 in c 5 . This result may in turn be used as data in other formulas.
- FIG. 2 row 5 may be the sum of row 2 , row 3 , and row 4 . See that the result of 60 in b 5 is the sum of the 24 in b 2 , the 17 in b 3 , and the 19 in b 4 .
- the user first chooses the type of debugging highlighting they prefer. As shown in FIG. 3, for example, the View menu pulls down. Many of the choices will be spreadsheet specific, but one of them will be Debugging Highlights which in turn leads to another menu of choices containing five different sections ( 32 , 33 , 34 , 35 , and 37 of FIG. 3).
- One choice ( 32 ) indicates whether the debugging is on or off.
- Another choice ( 33 ) indicates the type of dependencies displayed: all dependencies, cells that depend on current, cells current depends on, and no dependencies. By default all dependencies is chosen. Once the user selects the desired option, the user can click on a given cell, and the relations will be highlighted.
- the user can select how many levels of relations backward and forward the spreadsheet should display. By default it is all.
- the user can choose the branching factor (choice 35 ) of the relations to display with the default again being all.
- Another option shows simultaneously all the formulas used to generate the values for each of the cells rather than the actual data for the cells (See FIG. 5.).
- the custom in 36 of FIG. 3 allows the user to customize the number of level to suit his//her needs. And there is a similar one for branching factor.
- FIGS. 4 - 15 represent a larger spreadsheet that will be used throughout remaining description of the embodiment.
- FIG. 4 shows what the spreadsheet looks like when all the formulas and data have been entered. Many of the entries are self-explanatory. For example, cell c 3 of FIG. 4 represents the price per part paid in July.
- FIG. 5 shows all the formulas that have been used to generate the spreadsheet displayed in FIG. 4.
- FIGS. 4 - 15 note particularly cells f 10 and f 11 . These cells calculate the same value via different routes as a way of providing a check. As is evident in FIG.
- cell f 10 calculates the net by summing all the cells in row 10
- All the rest of the FIGS. in the preferred embodiment will be based on these FIGS. ( 4 - 15 ), and in particular, cells f 10 and f 11 will play a role in understanding the different debugging options.
- Section 1 contains a brief description of how the end user would employ this invention to track down an error in a spreadsheet or to determine if all the formulas are correct.
- Section 2 describes how to implement the invention within a spreadsheet.
- Section 1 User Application of Graphical Spreadsheet Debugging Technique
- FIG. 7 results when the user clicks on cell b 9
- FIG. 8 results when the user clicks on c 10
- FIG. 9 results when the user clicks on d 10 .
- cell b 10 depends on cells b 2 through b 9
- cell c 10 depends on cells c 2 through c 9 .
- FIG. 9 it is visually obvious that some of the cells that d 10 is dependent on come from the b column instead of totally from the d column. The user can then fix the mistake, and the spreadsheet will now appear as it is supposed to (FIG. 4).
- Section 1.1 Display Levels
- FIGS. 10 and 11 The text in this section refers to FIGS. 10 and 11.
- the user selected cell b 2 , which is indicated by the bold dark rectangle surrounding the number 10 .
- Cell b 4 has the darkest shading because b 4 immediately depends on the selected cell b 2 .
- Cells b 6 and f 4 have the next darkest shading because they depend on b 4 which depends on b 2 .
- b 6 and f 4 are at the second level of dependency.
- cells b 10 and f 10 are at the third dependency level, and are shaded with a third darkest level of shading.
- f 10 and f 11 are at the fourth dependency level, and are shaded with a fourth darkest level of shading.
- the final result or even some of the partial results may depend on a very long sequence of dependencies backward.
- a particular cell may have a long chain of cells forward that depend on it.
- FIG. 10 shows a click on cell b 2 with all levels chosen
- FIG. 11 displays the results if 2 levels of dependency display are chosen.
- Section 1.2 Branching Factor
- the branching factor can cause an overload of information to be displayed.
- the branching factor is defined for a direction of the dependency from a selected cell. For example, referring to FIG. 5 one cell is dependent upon the selected cell f 9 (the dark rectangle and shading indicating actual selection of the cell is not shown), and the branching factor is 1 for the “who_depends_on_me” list (See below.) for cell b 9 .
- the selected cell depends on four cells (b 9 , c 9 , d 9 , e 9 ) and thus the branching factor is four for the “who_i_depend_on” list.
- cells (nodes) 1 , 2 , and 3 have a branching factor of two because each of cells 1 , 2 and 3 have two cells which depend on them.
- a cell having a branching factor of just 4 depends on 4 cells, and each of those 4 cells could in turn depend another 4 cells, and within just 4 levels down, there could be 256 cells that depend on the initial chosen cell.
- a path is a sequence of cells from a root cell (node) to a leaf cell (node).
- cells 1 , 2 , and 4 in FIG. 16 Some of the cells in the spreadsheet have a particularly high branching factor. For example, in FIG.
- FIG. 12 shows a click on cell f 4 with a branching factor of 1.
- the next successive (not double) clicks on cell f 4 results in FIGS. 13, 14 and 15 .
- the user gets to see all the dependency trees that cell f 4 depends on.
- Spreadsheets are generally densely populated matrices. Most users lay out spreadsheets with formulas and data in successive columns or rows. It is rare to leave multiple, or tens of, columns or rows blank and internal to the spreadsheet. While the description below assumes a simple dense data structure of a two dimensional array, if it was anticipated that a high percentage of spreadsheets would be sparse, the implementation techniques below would all still apply. However, a data structure appropriate for holding a sparse two dimensional array, familiar to anyone skilled in the art, would be substituted for the simple one described below. Everything else would remain intact.
- the spreadsheet is represented in a computer program as a two dimensional array of data structures.
- Each structure contains, among other things, a formula of the cell, a linked list (see below) of pointers to cells that depend on this cell, and a linked list (see below) of pointers to cells that this cell depends on.
- the dependency relationship is only kept for the cells immediately dependent on this cell or the cells that this cell immediately depends on.
- the whole sequence of cells is implicit in that each cell contains pointers to its dependencies.
- the pointers form a dependency tree.
- FIG. 16 represents a tree explored via a breadth-first search
- FIG. 17 represents one explored by a depth-first search.
- the root node ( 1 ) would represent the selected cell.
- Internal nodes 2 and 3 would represent the cells that are immediately dependent on the selected cell. They represent the cells at level 1.
- Leaf nodes 4 and 5 represent the cells that depend on the cell that node 2 represents.
- leaf nodes 6 and 7 represent the cells that depend on the cell that node 3 represents. Nodes 4 , 5 , 6 , and 7 are at dependency level 2.
- the formula is examined to determine if there are any cells mentioned. For each cell that is mentioned in the formula, an entry needs to be made to the linked list of “who_i_depend_on”. For example, in FIG. 5 for cell f 6 , the “who_i 13 depend_on” list would contain the following cell entries: b 6 , c 6 , d 6 , and e 6 . For this example, these are at level 1, so they would have the darkest shading. Also, the program must traverse the set of cells that the newly entered cell depends on an update the (who_depends_on_me) list for each cell in the set indicating the newly entered cell. For example, in FIG.
- the “who_depends_on_me” list would contain cell f 11 .
- a similar updating process needs to occur when a formula from a particular cell is deleted. The program must tell all the cells appearing in the formula to remove from their “who_depends_on_me” list, the particular cell.
- a combination of the above processes needs to occur when a formula is modified. For all the newly added dependencies, a process as described above for a newly added cell needs to be followed; and for all the deleted dependencies from the formula, a process as described above for deleted cells needs to be followed.
- a new leaf (or leaves for branching factors greater that 1) must be determined by continuing along the depth first search.
- the old leaf (or leaves) and any internal nodes that are no longer active in the new path must be un-highlighted and new ones must be highlighted. This is accomplished by un-highlighting a leaf/node when leaving a node in the search and highlighting the node (possibly again) when encountering the node.
- the branching factor is greater than 1, then additional information needs to be maintained about how many current paths have been searched and displayed for each successive user click on a given cell. For example, with a branching factor of three, it necessary to remember the three leaves that are currently highlighted, so that when the depth first search continues, those three leaves may be un-highlighted.
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- This invention relates to a method of displaying a spreadsheet so as to facilitate the identification of errors.
- An electronic spreadsheet is a two-dimensional grid containing data and formulas that are entered in a manner allowing computer manipulation. Spreadsheets can be used for simple applications such as balancing a checkbook, to applications as complex as inventory control and pricing for a factory. The formulas relate the data and produce results. For example, FIG. 1, column d (row n) may result from the summation of column c (row n) and column b (row n). See that the result of 41 in d 3 equals the sum of the 17 in b3 and the 24 in c3. This result may in turn be used as data in other formulas. For example, FIG. 1,
row 5 may be the sum of 2, 3, and 4. See that the 60 in b5 equals the sum of the 24 in b2, the 17 in b3, and the 19 in b4. As more data and formulas are entered into the spreadsheet, the interrelations that occur become complex and difficult to understand. Unfortunately, the accuracy of the final result depends on correctly linking together the data of the spreadsheet with all the formulas. As the spreadsheet becomes larger and more complex, it is difficult to determine whether all the relations have been correctly entered.rows - There are many spreadsheets out in the marketplace today for example Lotus 1-2-3 [1]. Generally values are entered into a spreadsheet by clicking on a particular cell. This causes its current formula (perhaps none) to be displayed in a
bar 11 often at the top FIG. 1. The user can then begin to type the desired formula or data into the spreadsheet. The value of the formula is displayed in the current cell. Over time, spreadsheet developers have enhanced spreadsheets to be able to contain text from word processors, data from other programs, and even in some cases images from paint or draw programs. Also, a whole slew of possibilities for displaying the results have arisen, e.g. pie charts, bar graphs. However, all these features rely on the fact that the base formulas correctly interrelate the different cells containing information. - Spreadsheet developers have taken some steps in the direction of aiding the user in getting the crucial step or correctly defining cell interrelations. It is now possible to cut and paste formulas, and the spreadsheet automatically attempts to update the formulas to fit in the new location. There are also techniques to apply a given formula over a whole range of cells, where the data in the cells are updated as appropriate for the specific rows and columns that the formula has been applied to.
- Currently, debugging a spreadsheet to find an error is difficult because users can not easily or visually see how the cells interrelate. While techniques that reduce the time taken to make a spreadsheet and reduce the possibility of making an error have been implemented, there is still a great need for techniques that help a user determine if the dependencies between cells they have entered into the spreadsheet are correct. There is also the need to help users more quickly track down the reason for an error when they discover one in their spreadsheet.
- It is an object of this invention to allow the users to visually determine the relationship between the different cells in the spreadsheet.
- It is another object of this invention to facilitate creating a error free spreadsheet.
- With this invention, in a spreadsheet, all cells having data that depends on or affects the data in a user selected cell are visually indicated on a display. For example, in FIG. 2, if d 2 (see bold rectangle surrounding the formula in d2) is chosen, and since cell d5 depends on d2, and since d2 depends on b2 and c2, cells d5, b2, and c2 are shaded. Cells farther away are shaded with a lighter color to indicate their increased distance from the selected cell in the dependency tree. The user can control both the number of levels of dependency relations to display as well as the branching factor (See below.) for the relations. The relations for a chosen cell become visually obvious to the user, who can then determine if the correct relations have been entered into the spreadsheet. Using this invention greatly simplifies the users' task of ensuring that all the proper relations between cells have been established in the spreadsheet. This invention also simplifies finding an error if the final result(s) of the spreadsheet are not as expected.
- Throughout this application, when it is said that one cell depends on another cell, it actually means that the data in the one cell is dependent on the data in the other cell. For cell B (for example) to be directly determined by cell C (for example), cell C must appear in the formula of cell B. Likewise, for cell B to directly determine cell A (for example), cell B must appear in the formula of cell A.
- Also, with this invention, the formula of all the cells in a spreadsheet can be displayed to facilitate error detection.
- FIG. 1 represents a basic spreadsheet as described by prior art.
- FIG. 2 represents a basic spreadsheet with debugging highlighted enabled and cell d 2 selected.
- FIG. 3 represents the different menu options available to a user with this invention. It shows what the user sees in the process of selecting the number of levels to display highlighting for.
- FIG. 4 represents a generic spreadsheet that is used for demonstration purposes throughout the application. This might be a overly simplistic representation of a factory balancing their books.
- FIG. 5 represents the same spreadsheet as in FIG. 4 except that the option to show all formulas has been enabled.
- FIG. 6 represents a spreadsheet where the user had incorrectly entered the formula in cell d 10. The correct formula should be “=d9−d6” but in example the incorrect formula of “=d9−b6” has been entered.
- FIG. 7 represents the spreadsheet in FIG. 6 with Debugging highlighting enabled and cell b 10 selected. FIGS. 7-9 are a sequence as described in the preferred embodiment that a user would use to debug the error in FIG. 6.
- FIG. 8 represents the spreadsheet in FIG. 6 with Debugging highlighting enabled and cell c 10 selected.
- FIG. 9 represents the spreadsheet in FIG. 6 with Debugging highlighting enabled and cell d 10 selected. Note the visual difference between FIGS. 7 and 8 and FIG. 9.
- FIG. 10 represents the spreadsheet with all levels of debugging enabled and cell b 2 selected.
- FIG. 11 represents the spreadsheet with only 2 levels of debugging enabled and cell b 2 selected.
- FIGS. 12-15 represents a sequence of successive clicks on cell f4 with a branching factor of 1 chosen. Notice that each of FIGS. 12-15 is different and represents a unique path from the selected cell back to a lead node.
- FIG. 16 represents a tree walked in breadth-first search order, with the number on the nodes indicating the traversal order.
- FIG. 17 represents a tree walked in depth-first search order, with the number on the nodes indicating the traversal order.
- Though our invention is not limited to the following described implementation, this implementation demonstrates the potential advantages of using our mechanism over other mechanisms. The preferred embodiment of this inventions is illustrated in FIGS. 2-17.
- A electronic spreadsheet is a two-dimensional grid containing data and formulas that are entered in a manner allowing computer manipulation. The formulas relate the data and produce results. For example, FIG. 2 column d (row n) may result from the summation of column c (row n) and column b (row n). See that the result of 118 in d 5 is the sum of 60 in b5 plus the 58 in c5. This result may in turn be used as data in other formulas. As another example, FIG. 2
row 5 may be the sum ofrow 2,row 3, androw 4. See that the result of 60 in b5 is the sum of the 24 in b2, the 17 in b3, and the 19 in b4. As more data and formulas are entered into the spreadsheet, the interrelations that occur become complex and difficult to understand. The accuracy of the final result(s) depend on correctly linking together the data in the spreadsheet with all the formulas. As the spreadsheet becomes larger and more complex, it becomes increasingly difficult to determine whether all the relations have been correctly entered. - As a first simple example, if cell d 2 in FIG. 2 is chosen (as indicated by the dark black box surrounding it), then the cell that depends on d2 is d5 (and d5 is shaded to indicate such), and d2 depends on b2 and c2 (and they are also shaded to indicate this dependency). Cells farther away are shaded with a lighter color to indicate their increased distance in the dependency tree as described in more detail below. The relations for the chosen cell become visually obvious to the user, and the user can then determine if the correct relations have been entered into the spreadsheet. Using this tool greatly simplifies the users' task of ensuring that all the proper relations between cells have been established in the spreadsheet. It also simplifies finding an error if the final results of the spreadsheet are not as expected.
- Cells that are farther away from the selected cell are highlighted with lighter and lighter shading. While in this document black and white figures have been used of necessity, the actual implementation would contain color, allowing easier distinctions to be made.
- The user first chooses the type of debugging highlighting they prefer. As shown in FIG. 3, for example, the View menu pulls down. Many of the choices will be spreadsheet specific, but one of them will be Debugging Highlights which in turn leads to another menu of choices containing five different sections ( 32, 33, 34, 35, and 37 of FIG. 3). One choice (32) indicates whether the debugging is on or off. Another choice (33) indicates the type of dependencies displayed: all dependencies, cells that depend on current, cells current depends on, and no dependencies. By default all dependencies is chosen. Once the user selects the desired option, the user can click on a given cell, and the relations will be highlighted. Also, as part of this menu (
choices 34, 36) the user can select how many levels of relations backward and forward the spreadsheet should display. By default it is all. Finally, the user can choose the branching factor (choice 35) of the relations to display with the default again being all. The advantage of choosing different numbers of levels and branching factors will be described in more detail below. Another option (choice 37) shows simultaneously all the formulas used to generate the values for each of the cells rather than the actual data for the cells (See FIG. 5.). The custom in 36 of FIG. 3 allows the user to customize the number of level to suit his//her needs. And there is a similar one for branching factor. - FIGS. 4-15, represent a larger spreadsheet that will be used throughout remaining description of the embodiment. FIG. 4 shows what the spreadsheet looks like when all the formulas and data have been entered. Many of the entries are self-explanatory. For example, cell c3 of FIG. 4 represents the price per part paid in July. For convenience, FIG. 5 shows all the formulas that have been used to generate the spreadsheet displayed in FIG. 4. Referring to FIGS. 4-15, note particularly cells f10 and f11. These cells calculate the same value via different routes as a way of providing a check. As is evident in FIG. 5, cell f10 calculates the net by summing all the cells in
row 10, while cell f11's value is calculated by subtracting the sum of the columns in row 9 (cell f9) from sum of column in row 6 (cell f6), hence the formula for f11 is “=f9−f6”. All the rest of the FIGS. in the preferred embodiment will be based on these FIGS. (4-15), and in particular, cells f10 and f11 will play a role in understanding the different debugging options. - The rest of the preferred embodiment is divided into two sections.
Section 1 contains a brief description of how the end user would employ this invention to track down an error in a spreadsheet or to determine if all the formulas are correct.Section 2 describes how to implement the invention within a spreadsheet. - Section 1: User Application of Graphical Spreadsheet Debugging Technique
- Imagine that, in the spreadsheet represented in FIGS. 4 and 5, the user had entered an incorrect formula of “d 9−b6” in cell d10 instead of the correct formula of “=d9−d6”. This entry would result in the incorrect value of 186 (instead of 78) being displayed in cell f10. See FIG. 6. Because the user had been careful to also enter a check cell, cell f11, it is immediately obvious that an inconsistently in the formulas is present (186 of cell f10 does not equal 78 of cell f11). However, it may be difficult to track this down. If the user enabled the debugging feature and started clicking on the net cells of b10, c10 and d10, FIGS. 7, 8, and 9 would result. That is, FIG. 7 results when the user clicks on cell b9, FIG. 8 results when the user clicks on c10, and FIG. 9 results when the user clicks on d10. In viewing the spreadsheet as displayed in FIG. 9, it becomes immediately obvious what the problem is. In FIGS. 7-8, cell b10 depends on cells b2 through b9, and cell c10 depends on cells c2 through c9. In FIG. 9 it is visually obvious that some of the cells that d10 is dependent on come from the b column instead of totally from the d column. The user can then fix the mistake, and the spreadsheet will now appear as it is supposed to (FIG. 4). While in the above example the formulas were not that complicated, in real spreadsheets, formulas can become complex. By using some of the more advanced features described in section 1.1 and 1.2 below, the user could just click on the final incorrect result and determine the error. The basic technique described here is a tremendous help in debugging a spreadsheet, but the following two sections make the technique more powerful by giving the user options of what and how much is being displayed.
- Section 1.1: Display Levels
- The text in this section refers to FIGS. 10 and 11. For example, in FIG. 10 the user selected cell b 2, which is indicated by the bold dark rectangle surrounding the
number 10. Cell b4 has the darkest shading because b4 immediately depends on the selected cell b2. Cells b6 and f4 have the next darkest shading because they depend on b4 which depends on b2. Thus b6 and f4 are at the second level of dependency. Thus, using the same reasoning, cells b10 and f10 are at the third dependency level, and are shaded with a third darkest level of shading. Finally, f10 and f11 are at the fourth dependency level, and are shaded with a fourth darkest level of shading. In spreadsheets that are particularly large, the final result or even some of the partial results may depend on a very long sequence of dependencies backward. Likewise, in a large spreadsheet, a particular cell may have a long chain of cells forward that depend on it. Sometimes it is useful to display all the information. In other situations, it may be more helpful to focus on the next, or next couple of dependencies backward or forward. By allowing the number of levels of dependencies to be set, the user has explicit control over how much of this information will be displayed. For example, FIG. 10 shows a click on cell b2 with all levels chosen, and FIG. 11 displays the results if 2 levels of dependency display are chosen. - Section 1.2: Branching Factor
- The text in this section refers to FIGS. 12 through 15. Even more than levels of display, the branching factor can cause an overload of information to be displayed. The branching factor is defined for a direction of the dependency from a selected cell. For example, referring to FIG. 5 one cell is dependent upon the selected cell f 9 (the dark rectangle and shading indicating actual selection of the cell is not shown), and the branching factor is 1 for the “who_depends_on_me” list (See below.) for cell b9. On the other hand, for example, for the other direction of dependency, the selected cell depends on four cells (b9, c9, d9, e9) and thus the branching factor is four for the “who_i_depend_on” list. In FIG. 16, for example, cells (nodes) 1, 2, and 3 have a branching factor of two because each of
1, 2 and 3 have two cells which depend on them. As another example, a cell having a branching factor of just 4 depends on 4 cells, and each of those 4 cells could in turn depend another 4 cells, and within just 4 levels down, there could be 256 cells that depend on the initial chosen cell. A path is a sequence of cells from a root cell (node) to a leaf cell (node). For example,cells 1, 2, and 4 in FIG. 16. Some of the cells in the spreadsheet have a particularly high branching factor. For example, in FIG. 4, clicking on cell f10 would cause all cells from columns b to e andcells rows 2 to 10 to be highlighted. Setting the branching factor allows the user to control at each stage how many previous (or next) dependencies are followed. Each successive click on the selected cell changes the path through the dependency tree to show the next “n” set of paths backward or forward, where n is the branching factor chosen by the user. As a simple example, FIG. 12 shows a click on cell f4 with a branching factor of 1. Continuing with a branching factor of 1, the next successive (not double) clicks on cell f4 results in FIGS. 13, 14 and 15. Thus, in a sequence the user gets to see all the dependency trees that cell f4 depends on. - Section 2: Implementation
- Spreadsheets are generally densely populated matrices. Most users lay out spreadsheets with formulas and data in successive columns or rows. It is rare to leave multiple, or tens of, columns or rows blank and internal to the spreadsheet. While the description below assumes a simple dense data structure of a two dimensional array, if it was anticipated that a high percentage of spreadsheets would be sparse, the implementation techniques below would all still apply. However, a data structure appropriate for holding a sparse two dimensional array, familiar to anyone skilled in the art, would be substituted for the simple one described below. Everything else would remain intact.
- The spreadsheet is represented in a computer program as a two dimensional array of data structures. Each structure contains, among other things, a formula of the cell, a linked list (see below) of pointers to cells that depend on this cell, and a linked list (see below) of pointers to cells that this cell depends on. For the purposes of this application we focus only on the aspects of the structures relevant to this invention. The dependency relationship is only kept for the cells immediately dependent on this cell or the cells that this cell immediately depends on. The whole sequence of cells is implicit in that each cell contains pointers to its dependencies. Conceptually, the pointers form a dependency tree. While a tree data structure can be found in any standard undergraduate data structures text and should be familiar to those skilled in the art, for sake of convenience, we present two trees in FIGS. 16 and 17. FIG. 16 represents a tree explored via a breadth-first search, and FIG. 17 represents one explored by a depth-first search. The root node ( 1) would represent the selected cell.
2 and 3 would represent the cells that are immediately dependent on the selected cell. They represent the cells atInternal nodes level 1. 4 and 5 represent the cells that depend on the cell thatLeaf nodes node 2 represents. Similarly 6 and 7 represent the cells that depend on the cell thatleaf nodes node 3 represents. 4, 5, 6, and 7 are atNodes dependency level 2. - Whenever a user enters a new formula, the formula is examined to determine if there are any cells mentioned. For each cell that is mentioned in the formula, an entry needs to be made to the linked list of “who_i_depend_on”. For example, in FIG. 5 for cell f 6, the “who_i13depend_on” list would contain the following cell entries: b6, c6, d6, and e6. For this example, these are at
level 1, so they would have the darkest shading. Also, the program must traverse the set of cells that the newly entered cell depends on an update the (who_depends_on_me) list for each cell in the set indicating the newly entered cell. For example, in FIG. 5 in the newly entered cell f6, the “who_depends_on_me” list would contain cell f11. A similar updating process needs to occur when a formula from a particular cell is deleted. The program must tell all the cells appearing in the formula to remove from their “who_depends_on_me” list, the particular cell. A combination of the above processes needs to occur when a formula is modified. For all the newly added dependencies, a process as described above for a newly added cell needs to be followed; and for all the deleted dependencies from the formula, a process as described above for deleted cells needs to be followed. - When dependency debugging is enabled by selecting on 32 in FIG. 3, all the information is already available for a program to be able to display the dependencies. In the standard case (when all branching and all levels are being displayed), the program simply sets a count and walks via a breadth first search through the trees of dependencies and displays each dependency via highlighting. The program first highlights (in appropriate color or shading style) all the cells (first level of highlighted cells) that a selected cell depends on. The program then goes to all the first level of highlighted cells and highlights all the cells (second level of highlighted cells) that the first level of highlighted cells depend on and so forth. For example, the first highlighted level in FIG. 10 would contain cell b4, and the second highlighted level would contain cells b6 and f4, and the third highlighted level would contain cells b10 and f6, and finally cells f10 and f11 are in the fourth highlighted level. This tracing of dependency chains is carried out in both directions (cells that the selected cell depends on, as well as cells that are dependent on the selected cell). This information is obtained by using the “who_depends_on_me” and “who _i_depend_on” list contained in the data structure for the selected cell. A level variable is incremented every time the program moves on to the next level of cells, and the darkness of the highlighting is dependent on the current level number the program is highlighting becoming light and lighter the farther away in the dependency chain we are from the selected cell.
- Implementing either the “cells that depend on current” (the “who_i_depend_on” list) or “cells current depends on” (the “who_depends_on_me” list) choices from FIG. 3 is trivial; one list or the other is used when starting the highlighting. Likewise, implementing the display level feature is also not difficult. A count is kept as to the number of levels traversed, and the highlighting is stopped once the numbers of levels reached matches the user chosen value. Implementing the branching factor is slightly more complicated. Rather than the default breadth first search and highlight algorithm described above, a depth first search must be conducted. All searches must reach a leaf node (unless terminated earlier by the user setting the number of levels to highlight). Upon successive clicks of the selected cell, a new leaf (or leaves for branching factors greater that 1) must be determined by continuing along the depth first search. The old leaf (or leaves) and any internal nodes that are no longer active in the new path must be un-highlighted and new ones must be highlighted. This is accomplished by un-highlighting a leaf/node when leaving a node in the search and highlighting the node (possibly again) when encountering the node. If the branching factor is greater than 1, then additional information needs to be maintained about how many current paths have been searched and displayed for each successive user click on a given cell. For example, with a branching factor of three, it necessary to remember the three leaves that are currently highlighted, so that when the depth first search continues, those three leaves may be un-highlighted.
Claims (23)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/129,490 US6460059B1 (en) | 1998-08-04 | 1998-08-04 | Visual aid to simplify achieving correct cell interrelations in spreadsheets |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/129,490 US6460059B1 (en) | 1998-08-04 | 1998-08-04 | Visual aid to simplify achieving correct cell interrelations in spreadsheets |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20020023105A1 true US20020023105A1 (en) | 2002-02-21 |
| US6460059B1 US6460059B1 (en) | 2002-10-01 |
Family
ID=22440220
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US09/129,490 Expired - Lifetime US6460059B1 (en) | 1998-08-04 | 1998-08-04 | Visual aid to simplify achieving correct cell interrelations in spreadsheets |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US6460059B1 (en) |
Cited By (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020055953A1 (en) * | 2000-11-03 | 2002-05-09 | Falko Tesch | Method and apparatus for handling scenarios in spreadsheet documents |
| US20020143810A1 (en) * | 2001-03-28 | 2002-10-03 | Bennett Paul W. | System and method for calculation using vertical parentheses |
| US20020161799A1 (en) * | 2001-02-27 | 2002-10-31 | Microsoft Corporation | Spreadsheet error checker |
| US20020165875A1 (en) * | 2001-05-04 | 2002-11-07 | Verta Patrick A. | Data capture and management system |
| US20040044685A1 (en) * | 2002-08-27 | 2004-03-04 | International Business Machines Corporation | Method for flagging differences in resource attributes across multiple database and transaction systems |
| WO2004036453A3 (en) * | 2002-10-18 | 2004-12-29 | Iain Morrow | Systems and method for improved data processing |
| US6883136B1 (en) * | 1999-08-19 | 2005-04-19 | Azi, Inc. | Simultaneous display and formatting of disparate values in a tabular form |
| US20050149482A1 (en) * | 2003-12-19 | 2005-07-07 | Thales | Method of updating a database created with a spreadsheet program |
| EP1617327A2 (en) * | 2004-05-24 | 2006-01-18 | Sap Ag | Interface-controlled displaying of regions of a matrix |
| US20060059417A1 (en) * | 2004-09-13 | 2006-03-16 | Whitebirch Software, Inc. | Scenario-dependent evaluation formula |
| US20070136406A1 (en) * | 2005-12-12 | 2007-06-14 | Softky William R | Method and system for numerical computation visualization |
| US20070180417A1 (en) * | 2006-01-30 | 2007-08-02 | International Business Machines Corporation | System and method of spatial/tabular data presentation |
| US20070255574A1 (en) * | 2005-11-07 | 2007-11-01 | Business Objects | Apparatus and method for facilitating trusted business intelligence through data context |
| US20080104498A1 (en) * | 2006-10-25 | 2008-05-01 | International Business Machines Corporation | Dynamically Merging Columns Within a Table |
| US20100083079A1 (en) * | 2008-09-30 | 2010-04-01 | Apple Inc. | Formula display and search |
| US20110032555A1 (en) * | 2009-08-10 | 2011-02-10 | Brother Kogyo Kabushiki Kaisha | Printer |
| US20120102432A1 (en) * | 2010-10-25 | 2012-04-26 | International Business Machines Corporation | Communicating secondary selection feedback |
| US8370795B1 (en) * | 2008-01-31 | 2013-02-05 | Intuit Inc. | Method and system for explaining a value of a field in a form |
| US8745483B2 (en) | 2004-10-07 | 2014-06-03 | International Business Machines Corporation | Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet |
| US20140281867A1 (en) * | 2013-03-12 | 2014-09-18 | Microsoft Corporation | Viewing effects of proposed change in document before commiting change |
| US20150019946A1 (en) * | 2013-07-12 | 2015-01-15 | Dean Zarras | Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system |
| US20150081727A1 (en) * | 2013-07-12 | 2015-03-19 | Logic9S, Llc | Integrated, configurable, analytical, temporal, visual electronic plan system |
| US20150205659A1 (en) * | 2014-01-21 | 2015-07-23 | Apple Inc. | Cell error tracking in applications |
| US20150378977A1 (en) * | 2014-06-27 | 2015-12-31 | Koustubh MOHARIR | System and method for operating a computer application with spreadsheet functionality |
| US9286285B1 (en) | 2012-10-30 | 2016-03-15 | Google Inc. | Formula editor |
| US9311289B1 (en) | 2013-08-16 | 2016-04-12 | Google Inc. | Spreadsheet document tab conditional formatting |
| US20170052649A1 (en) * | 2015-08-20 | 2017-02-23 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Displaying indicator when data of cell that is not visible changes |
| US9928220B2 (en) * | 2013-06-17 | 2018-03-27 | Sap Se | Temporary highlighting of selected fields |
| US20180113571A1 (en) * | 2016-10-20 | 2018-04-26 | International Business Machines Corporation | Tabulated data selection |
| US9959265B1 (en) | 2014-05-08 | 2018-05-01 | Google Llc | Populating values in a spreadsheet using semantic cues |
| CN108292295A (en) * | 2016-02-01 | 2018-07-17 | 微软技术许可有限责任公司 | Mathematical equation is parameterized and handled in spreadsheet application |
| US10191897B1 (en) * | 2016-04-19 | 2019-01-29 | Workday, Inc. | Data flow view for a spreadsheet |
| US10372808B1 (en) | 2012-12-12 | 2019-08-06 | Google Llc | Passing functional spreadsheet data by reference |
| KR20200132220A (en) * | 2019-05-16 | 2020-11-25 | 주식회사 한글과컴퓨터 | Electronic device that support easy input of logical values through checkboxes in spreadsheets and operating method thereof |
| US10884571B2 (en) * | 2018-01-11 | 2021-01-05 | Microsoft Technology Licensing, Llc | Dependency-based presence for co-authored documents |
| US11093704B2 (en) | 2015-11-02 | 2021-08-17 | Microsoft Technology Licensing, Llc | Rich data types |
Families Citing this family (72)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000293511A (en) * | 1999-04-09 | 2000-10-20 | Canon Inc | Document processing apparatus, method, and storage medium |
| US9268748B2 (en) | 1999-05-21 | 2016-02-23 | E-Numerate Solutions, Inc. | System, method, and computer program product for outputting markup language documents |
| US7249328B1 (en) * | 1999-05-21 | 2007-07-24 | E-Numerate Solutions, Inc. | Tree view for reusable data markup language |
| US6920608B1 (en) | 1999-05-21 | 2005-07-19 | E Numerate Solutions, Inc. | Chart view for reusable data markup language |
| US7421648B1 (en) | 1999-05-21 | 2008-09-02 | E-Numerate Solutions, Inc. | Reusable data markup language |
| US9262384B2 (en) | 1999-05-21 | 2016-02-16 | E-Numerate Solutions, Inc. | Markup language system, method, and computer program product |
| US9262383B2 (en) | 1999-05-21 | 2016-02-16 | E-Numerate Solutions, Inc. | System, method, and computer program product for processing a markup document |
| WO2001061568A2 (en) | 2000-02-17 | 2001-08-23 | E-Numerate Solutions, Inc. | Rdl search engine |
| US9600842B2 (en) | 2001-01-24 | 2017-03-21 | E-Numerate Solutions, Inc. | RDX enhancement of system and method for implementing reusable data markup language (RDL) |
| US20020143811A1 (en) * | 2001-03-28 | 2002-10-03 | Bennett Paul W. | System and method for vertical calculation using multiple columns in a screen display |
| US20020143809A1 (en) * | 2001-03-28 | 2002-10-03 | Bennett Paul W. | System and method for calculation using multi-field columns with hidden fields |
| US20040205676A1 (en) * | 2001-03-28 | 2004-10-14 | Bennett Paul W. | System and method for calculation using a subtotal function |
| US6742162B2 (en) * | 2001-03-28 | 2004-05-25 | Paul W. Bennett | System and method for calculation using formulas in number fields |
| US20020143831A1 (en) * | 2001-03-28 | 2002-10-03 | Bennett Paul W. | System and method for calculation using spreadsheet lines and vertical calculations in a single document |
| US20090254801A1 (en) * | 2001-05-14 | 2009-10-08 | The Mathworks, Inc. | Model navigation |
| US7904326B2 (en) * | 2001-06-29 | 2011-03-08 | Versata Development Group, Inc. | Method and apparatus for performing collective validation of credential information |
| US20040205524A1 (en) * | 2001-08-15 | 2004-10-14 | F1F9 | Spreadsheet data processing system |
| US20030074288A1 (en) * | 2001-10-11 | 2003-04-17 | Pitney Bowes Incorporated | System and method for electronically reconciling financial accounts |
| US8892644B2 (en) * | 2004-01-22 | 2014-11-18 | Securesheet Technologies, Llc | Method of enabling access to data structure |
| US7698287B2 (en) * | 2004-09-30 | 2010-04-13 | Microsoft Corporation | Design of spreadsheet functions for working with tables of data |
| US7415481B2 (en) * | 2004-09-30 | 2008-08-19 | Microsoft Corporation | Method and implementation for referencing of dynamic data within spreadsheet formulas |
| US9047266B2 (en) * | 2004-10-07 | 2015-06-02 | International Business Machines Corporation | Methods, systems and computer program products for processing cells in a spreadsheet |
| US7693860B2 (en) * | 2005-03-18 | 2010-04-06 | Microsoft Corporation | Method and system to associate cell and item metadata |
| US20060282818A1 (en) * | 2005-06-14 | 2006-12-14 | Microsoft Corporation | Interactive formula builder |
| US20070028189A1 (en) * | 2005-07-27 | 2007-02-01 | Microsoft Corporation | Hierarchy highlighting |
| US8234293B2 (en) * | 2005-09-08 | 2012-07-31 | Microsoft Corporation | Autocompleting with queries to a database |
| US7752536B2 (en) | 2005-09-09 | 2010-07-06 | Microsoft Corporation | Designating, setting and discovering parameters for spreadsheet documents |
| US20110145689A1 (en) * | 2005-09-09 | 2011-06-16 | Microsoft Corporation | Named object view over multiple files |
| US7792847B2 (en) * | 2005-09-09 | 2010-09-07 | Microsoft Corporation | Converting structured reports to formulas |
| US20070061699A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Named object view of electronic data report |
| US7805433B2 (en) * | 2005-10-14 | 2010-09-28 | Microsoft Corporation | Multidimensional cube functions |
| US20070168323A1 (en) * | 2006-01-03 | 2007-07-19 | Microsoft Corporation | Query aggregation |
| US7634717B2 (en) * | 2006-01-23 | 2009-12-15 | Microsoft Corporation | Multiple conditional formatting |
| US20090019348A1 (en) * | 2007-07-13 | 2009-01-15 | Rodney Kuhn Haffnerson King | Fractal Grid Hierarchical Presentation Of Information |
| US9501453B2 (en) * | 2007-12-23 | 2016-11-22 | Salesforce.Com Inc. | Method and system for a flexible-data column user interface |
| US20090228776A1 (en) * | 2008-03-05 | 2009-09-10 | Microsoft Corporation | Dynamic formulas for spreadsheet cells |
| US8706681B2 (en) * | 2008-10-01 | 2014-04-22 | Prophix Software Inc. | System and method for processing and/or analyzing OLAP based data according to one or more parameters |
| US20110072340A1 (en) * | 2009-09-21 | 2011-03-24 | Miller Darren H | Modeling system and method |
| US8190557B2 (en) * | 2009-11-25 | 2012-05-29 | Barber Paul Grant | Processor and method configured for executing data transfer or data adjustment functions on OLAP based data |
| US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
| DE102010050488A1 (en) * | 2010-11-08 | 2011-06-30 | Abrams Engineering Services GmbH & Co. KG, 49084 | Method for the selection of a steel grade from a database of steel grades stored in a storage by a data processing device, comprises adjusting selection device actuated by a user on an indicator means |
| US8538934B2 (en) * | 2011-10-28 | 2013-09-17 | Microsoft Corporation | Contextual gravitation of datasets and data services |
| US9053083B2 (en) | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
| US9171099B2 (en) | 2012-01-26 | 2015-10-27 | Microsoft Technology Licensing, Llc | System and method for providing calculation web services for online documents |
| US20130304531A1 (en) | 2012-05-11 | 2013-11-14 | Paul Barber | System and method for performing detailed planning functions |
| US8887138B2 (en) * | 2012-05-25 | 2014-11-11 | Telefonaktiebolaget L M Ericsson (Publ) | Debugging in a dataflow programming environment |
| US10423719B2 (en) * | 2013-02-19 | 2019-09-24 | International Business Machines Corporation | Dynamic loading of tabular data |
| US9239670B2 (en) * | 2013-03-15 | 2016-01-19 | International Business Machines Corporation | Graphical interface data fragment operations for data visualization |
| US9417890B2 (en) * | 2013-04-12 | 2016-08-16 | Microsoft Technology Licensing, Llc | Compilation of transformation in recalculation user interface |
| US20140359417A1 (en) * | 2013-06-04 | 2014-12-04 | Omer Bar-On | Systems and methods for graphically modulating structured data |
| US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
| US9741151B2 (en) | 2015-04-14 | 2017-08-22 | International Business Machines Corporation | Mobile interactive comparison chart |
| US10325014B2 (en) | 2015-04-30 | 2019-06-18 | Workiva Inc. | System and method for convergent document collaboration |
| US9158832B1 (en) | 2015-05-18 | 2015-10-13 | Workiva Inc. | Method and computing device for maintaining dependencies among reference elements |
| US10255263B2 (en) | 2015-05-18 | 2019-04-09 | Workiva Inc. | Data storage and retrieval system and method for storing cell coordinates in a computer memory |
| US10212255B2 (en) * | 2015-09-28 | 2019-02-19 | Microsoft Technology Licensing, Llc | Processing requests for multi-versioned service |
| US10515145B2 (en) * | 2015-11-02 | 2019-12-24 | Microsoft Technology Licensing, Llc | Parameterizing and working with math equations in a spreadsheet application |
| US10318627B2 (en) * | 2015-11-17 | 2019-06-11 | Sap Se | Visualizing dependencies of multi-dimensional data |
| US10311035B2 (en) * | 2015-12-21 | 2019-06-04 | Sap Se | Direct cube filtering |
| US11853690B1 (en) | 2016-05-31 | 2023-12-26 | The Mathworks, Inc. | Systems and methods for highlighting graphical models |
| US10509856B2 (en) * | 2016-08-04 | 2019-12-17 | Hrb Innovations, Inc. | Simplifying complex input strings |
| US11157690B2 (en) | 2017-02-22 | 2021-10-26 | Microsoft Technology Licensing, Llc | Techniques for asynchronous execution of computationally expensive local spreadsheet tasks |
| US10725799B2 (en) * | 2017-02-22 | 2020-07-28 | Microsoft Technology Licensing, Llc | Big data pipeline management within spreadsheet applications |
| US11281696B1 (en) * | 2018-04-30 | 2022-03-22 | Workday, Inc. | Systems and methods for improving computational speed of planning by tracking dependencies in hypercubes |
| US11610059B2 (en) * | 2018-12-07 | 2023-03-21 | Interject Data System, Inc. | Systems and methods for a visual interface for grid-based programs |
| US11755825B2 (en) | 2019-09-12 | 2023-09-12 | Workiva Inc. | Method, system, and computing device for facilitating private drafting |
| US11100281B1 (en) | 2020-08-17 | 2021-08-24 | Workiva Inc. | System and method for maintaining links and revisions |
| US11443108B2 (en) | 2020-08-17 | 2022-09-13 | Workiva Inc. | System and method for document management using branching |
| US12450426B1 (en) * | 2020-12-21 | 2025-10-21 | Mehrdad Samadani | Method and system for cellular computation and display |
| US11100277B1 (en) | 2021-02-15 | 2021-08-24 | Workiva Inc. | Systems, methods, and computer-readable media for flow-through formatting for links |
| US11354362B1 (en) | 2021-05-06 | 2022-06-07 | Workiva Inc. | System and method for copying linked documents |
| US11640495B1 (en) | 2021-10-15 | 2023-05-02 | Workiva Inc. | Systems and methods for translation comments flowback |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1992004678A1 (en) * | 1990-09-10 | 1992-03-19 | Lotus Development Corporation | Apparatus and method for reformattable spreadsheet |
| US5416895A (en) * | 1992-04-08 | 1995-05-16 | Borland International, Inc. | System and methods for improved spreadsheet interface with user-familiar objects |
| US5603021A (en) * | 1994-09-02 | 1997-02-11 | Borland International, Inc. | Methods for composing formulas in an electronic spreadsheet system |
| US5694608A (en) * | 1995-01-27 | 1997-12-02 | Borland International, Inc. | Non-modal database system wth methods for incremental maintenance of live reports |
| US5893123A (en) * | 1995-06-22 | 1999-04-06 | Tuinenga; Paul W. | System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet |
| US6157934A (en) * | 1995-10-24 | 2000-12-05 | Ultimus, L.L.C. | Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation |
| US6185582B1 (en) * | 1998-06-17 | 2001-02-06 | Xerox Corporation | Spreadsheet view enhancement system |
-
1998
- 1998-08-04 US US09/129,490 patent/US6460059B1/en not_active Expired - Lifetime
Cited By (61)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6883136B1 (en) * | 1999-08-19 | 2005-04-19 | Azi, Inc. | Simultaneous display and formatting of disparate values in a tabular form |
| US20020055953A1 (en) * | 2000-11-03 | 2002-05-09 | Falko Tesch | Method and apparatus for handling scenarios in spreadsheet documents |
| US20020161799A1 (en) * | 2001-02-27 | 2002-10-31 | Microsoft Corporation | Spreadsheet error checker |
| US7117430B2 (en) * | 2001-02-27 | 2006-10-03 | Microsoft Corporation | Spreadsheet error checker |
| US20020143810A1 (en) * | 2001-03-28 | 2002-10-03 | Bennett Paul W. | System and method for calculation using vertical parentheses |
| US6961898B2 (en) * | 2001-03-28 | 2005-11-01 | Bennett Paul W | System and method for calculation using vertical parentheses |
| US20020165875A1 (en) * | 2001-05-04 | 2002-11-07 | Verta Patrick A. | Data capture and management system |
| US7007023B2 (en) | 2002-08-27 | 2006-02-28 | International Business Machines Corporation | Method for flagging differences in resource attributes across multiple database and transaction systems |
| US20040044685A1 (en) * | 2002-08-27 | 2004-03-04 | International Business Machines Corporation | Method for flagging differences in resource attributes across multiple database and transaction systems |
| WO2004036453A3 (en) * | 2002-10-18 | 2004-12-29 | Iain Morrow | Systems and method for improved data processing |
| US20050149482A1 (en) * | 2003-12-19 | 2005-07-07 | Thales | Method of updating a database created with a spreadsheet program |
| EP1617327A2 (en) * | 2004-05-24 | 2006-01-18 | Sap Ag | Interface-controlled displaying of regions of a matrix |
| US20060059417A1 (en) * | 2004-09-13 | 2006-03-16 | Whitebirch Software, Inc. | Scenario-dependent evaluation formula |
| US7676738B2 (en) * | 2004-09-13 | 2010-03-09 | Whitebirch Software, Inc. | Scenario-dependent evaluation formula |
| US8745483B2 (en) | 2004-10-07 | 2014-06-03 | International Business Machines Corporation | Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet |
| US10180933B2 (en) | 2004-10-07 | 2019-01-15 | International Business Machines Corporation | Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet |
| US11036930B2 (en) | 2004-10-07 | 2021-06-15 | International Business Machines Corporation | Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet |
| US20070255574A1 (en) * | 2005-11-07 | 2007-11-01 | Business Objects | Apparatus and method for facilitating trusted business intelligence through data context |
| US8046673B2 (en) * | 2005-11-07 | 2011-10-25 | Business Objects Software Ltd. | Apparatus and method for facilitating trusted business intelligence through data context |
| US20070136406A1 (en) * | 2005-12-12 | 2007-06-14 | Softky William R | Method and system for numerical computation visualization |
| US20070180417A1 (en) * | 2006-01-30 | 2007-08-02 | International Business Machines Corporation | System and method of spatial/tabular data presentation |
| US8046677B2 (en) * | 2006-01-30 | 2011-10-25 | International Business Machines Corporation | Displaying relationships between tabular data using spatial identifiers |
| US20080104498A1 (en) * | 2006-10-25 | 2008-05-01 | International Business Machines Corporation | Dynamically Merging Columns Within a Table |
| US8370795B1 (en) * | 2008-01-31 | 2013-02-05 | Intuit Inc. | Method and system for explaining a value of a field in a form |
| US9037959B2 (en) * | 2008-09-30 | 2015-05-19 | Apple Inc. | Formula display and search in a spreadsheet |
| US20100083079A1 (en) * | 2008-09-30 | 2010-04-01 | Apple Inc. | Formula display and search |
| US8477363B2 (en) * | 2009-08-10 | 2013-07-02 | Brother Kogyo Kabushiki Kaisha | Table data processing apparatus for creating table data containing complete formulas |
| US20110032555A1 (en) * | 2009-08-10 | 2011-02-10 | Brother Kogyo Kabushiki Kaisha | Printer |
| US20120102432A1 (en) * | 2010-10-25 | 2012-04-26 | International Business Machines Corporation | Communicating secondary selection feedback |
| US9286285B1 (en) | 2012-10-30 | 2016-03-15 | Google Inc. | Formula editor |
| US11630948B1 (en) | 2012-12-12 | 2023-04-18 | Google Llc | Passing functional spreadsheet data by reference |
| US10922482B1 (en) | 2012-12-12 | 2021-02-16 | Google Llc | Passing functional spreadsheet data by reference |
| US10372808B1 (en) | 2012-12-12 | 2019-08-06 | Google Llc | Passing functional spreadsheet data by reference |
| US10140269B2 (en) * | 2013-03-12 | 2018-11-27 | Microsoft Technology Licensing, Llc | Viewing effects of proposed change in document before committing change |
| US20140281867A1 (en) * | 2013-03-12 | 2014-09-18 | Microsoft Corporation | Viewing effects of proposed change in document before commiting change |
| US9928220B2 (en) * | 2013-06-17 | 2018-03-27 | Sap Se | Temporary highlighting of selected fields |
| US9116931B2 (en) * | 2013-07-12 | 2015-08-25 | Logic9S, Llc | Integrated, configurable, analytical, temporal, visual electronic plan system |
| US20150019946A1 (en) * | 2013-07-12 | 2015-01-15 | Dean Zarras | Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system |
| US20150081727A1 (en) * | 2013-07-12 | 2015-03-19 | Logic9S, Llc | Integrated, configurable, analytical, temporal, visual electronic plan system |
| US20150293894A1 (en) * | 2013-07-12 | 2015-10-15 | Logics9s, LLC | Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system |
| US9026897B2 (en) * | 2013-07-12 | 2015-05-05 | Logic9S, Llc | Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system |
| US9311289B1 (en) | 2013-08-16 | 2016-04-12 | Google Inc. | Spreadsheet document tab conditional formatting |
| US20150205659A1 (en) * | 2014-01-21 | 2015-07-23 | Apple Inc. | Cell error tracking in applications |
| US10354001B2 (en) * | 2014-01-21 | 2019-07-16 | Apple, Inc. | Cell error tracking in applications |
| US9959265B1 (en) | 2014-05-08 | 2018-05-01 | Google Llc | Populating values in a spreadsheet using semantic cues |
| US12229501B2 (en) | 2014-05-08 | 2025-02-18 | Google Llc | Populating values in a spreadsheet using semantic cues |
| US10621281B2 (en) | 2014-05-08 | 2020-04-14 | Google Llc | Populating values in a spreadsheet using semantic cues |
| US9552348B2 (en) * | 2014-06-27 | 2017-01-24 | Koustubh MOHARIR | System and method for operating a computer application with spreadsheet functionality |
| US20150378977A1 (en) * | 2014-06-27 | 2015-12-31 | Koustubh MOHARIR | System and method for operating a computer application with spreadsheet functionality |
| US10528209B2 (en) * | 2015-08-20 | 2020-01-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Displaying indicator when data of cell that is not visible changes |
| US20170052649A1 (en) * | 2015-08-20 | 2017-02-23 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Displaying indicator when data of cell that is not visible changes |
| US11093704B2 (en) | 2015-11-02 | 2021-08-17 | Microsoft Technology Licensing, Llc | Rich data types |
| US11630947B2 (en) | 2015-11-02 | 2023-04-18 | Microsoft Technology Licensing, Llc | Compound data objects |
| CN108292295A (en) * | 2016-02-01 | 2018-07-17 | 微软技术许可有限责任公司 | Mathematical equation is parameterized and handled in spreadsheet application |
| US10191897B1 (en) * | 2016-04-19 | 2019-01-29 | Workday, Inc. | Data flow view for a spreadsheet |
| US10810364B2 (en) * | 2016-04-19 | 2020-10-20 | Workday, Inc. | Data flow view for a spreadsheet |
| US20180113571A1 (en) * | 2016-10-20 | 2018-04-26 | International Business Machines Corporation | Tabulated data selection |
| US9983768B2 (en) * | 2016-10-20 | 2018-05-29 | International Business Machines Corporation | Tabulated data selection |
| US10884571B2 (en) * | 2018-01-11 | 2021-01-05 | Microsoft Technology Licensing, Llc | Dependency-based presence for co-authored documents |
| KR102287144B1 (en) | 2019-05-16 | 2021-08-06 | 주식회사 한글과컴퓨터 | Electronic device that support easy input of logical values through checkboxes in spreadsheets and operating method thereof |
| KR20200132220A (en) * | 2019-05-16 | 2020-11-25 | 주식회사 한글과컴퓨터 | Electronic device that support easy input of logical values through checkboxes in spreadsheets and operating method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| US6460059B1 (en) | 2002-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6460059B1 (en) | Visual aid to simplify achieving correct cell interrelations in spreadsheets | |
| US8200693B2 (en) | Decision logic comparison and review | |
| US9075787B2 (en) | Defining a reusable spreadsheet-function by extracting the function from a complex calculation in a spreadsheet document | |
| Taentzer | Parallel and distributed graph transformation: Formal description and application to communication-based systems | |
| KR100956571B1 (en) | Cell processing methods, systems and computer program products for spreadsheets | |
| US5418902A (en) | Electronic spreadsheet system producing generalized answers including formulas | |
| US6610106B1 (en) | Expression editor | |
| US20030204481A1 (en) | Method and system for visually constructing XML schemas using an object-oriented model | |
| US20070033519A1 (en) | Method and system for the graphical modeling of data and calculations of a spreadsheet | |
| US20060080594A1 (en) | Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet | |
| JP2008140410A (en) | Method and system for generating computer program | |
| US20090058859A1 (en) | Construction of decision logic with graphs | |
| Pfahler et al. | Visualizing evolving software cities | |
| US20020054155A1 (en) | Data module design system | |
| US7752574B2 (en) | System, method and article for displaying data distributions in data trees | |
| Kim et al. | AppBuilder for DSSTools: an application development environment for developing decision support systems in Prolog | |
| Ivaneshkin | A new approach to operating with undirected trees | |
| de Sousa Jr et al. | A step forward in semi-automatic metamodel matching: Algorithms and tool | |
| Randolph et al. | A generalised spreadsheet verification methodology | |
| Bottoni et al. | Visual conditional attributed rewriting systems in visual language specification | |
| Rao et al. | AC2--Towards Understanding Architectural Changes in Rapid Releases | |
| Johanna | Generating Coding Exercises for Language Concepts by Searching, Simplifying, and Annotating Existing Code | |
| Kishikawa et al. | A Visualization Tool for Relationship between Source Code and Parse Tree Using VR | |
| Georgelis | Multiperspective visualization of genealogy data | |
| JP2001013864A (en) | Answer correction device, answer correction method, and recording medium storing the program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: IBM CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WISNIEWSKI, ROBERT W.;REEL/FRAME:009368/0879 Effective date: 19980804 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| REMI | Maintenance fee reminder mailed | ||
| FPAY | Fee payment |
Year of fee payment: 12 |
|
| SULP | Surcharge for late payment |
Year of fee payment: 11 |
|
| AS | Assignment |
Owner name: LINKEDIN CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:035201/0479 Effective date: 20140331 |