WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Methods for composing formulas in an electronic spreadsheet system    
United States Patent5603021   
Link to this pagehttp://www.wikipatents.com/5603021.html
Inventor(s)Spencer; Percy L. (Scotts Valley, CA); Boye; Steven R. (Los Gatos, CA); Montgomery; Max E. (Santa Cruz, CA); Watson; Michael J. (Scotts Valley, CA)
AbstractAn electronic spreadsheet system of the present invention includes a Formula Composer having a preferred interface and methods for assisting a user with composing spreadsheet formulas. The Composer provides the user with simultaneous formula outline and subexpression (text) views of a given formula. Using the formula outline view, the user may isolate a particular portion (subexpression) of a formula for editing. The Formula Composer also provides a Formula Expert, which is displayed by the system upon the user selecting a spreadsheet function in a formula being edited. In addition to providing specific information about the selected spreadsheet function, the Formula Expert provides input fields which are specific for the arguments of the selected function. Moreover, the Formula Expert includes mode expressions or "templates" for assisting users in inputting correct argument information. Using pattern matching technique, the system may employ the templates for eliminating common user input mistakes. Methods are described for synchronizing the various views of the Formula Composer, so that a modification to the formula being edited by the user in one view is automatically and immediately propagated to the other views. In this fashion, all views remain synchronized during formula editing, thus allowing the user to easily switch among the views.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5603021
Methods for composing formulas in an electronic spreadsheet system - US Patent 5603021 Drawing
Methods for composing formulas in an electronic spreadsheet system
Inventor     Spencer; Percy L. (Scotts Valley, CA); Boye; Steven R. (Los Gatos, CA); Montgomery; Max E. (Santa Cruz, CA); Watson; Michael J. (Scotts Valley, CA)
Owner/Assignee     Borland International, Inc. (Scotts Valley, CA)
Patent assignment
All assignments
Publication Date     February 11, 1997
Application Number     08/300,813
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 2, 1994
US Classification     707/4 715/853
Int'l Classification     G06F 017/30
Examiner     Black; Thomas G.
Assistant Examiner     Lintz; Paul R.
Attorney/Law Firm     Smart; John A.
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/600 395/650 395/700 395/500 395/155 395/157 395/159 364/490
Patent Tags     methods composing formulas electronic spreadsheet
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5481473
Kim
716/5
Jan,1996

[0 after 0 votes]
5454106
Burns
707/4
Sep,1995

[0 after 0 votes]
5408660
Kitadate
717/144
Apr,1995

[0 after 0 votes]
5335345
Frieder

Aug,1994

[0 after 0 votes]
5317688
Watson
715/707
May,1994

[0 after 0 votes]
5191646
Naito
715/853
Mar,1993

[0 after 0 votes]
5175814
Anick
715/835
Dec,1992

[0 after 0 votes]
5157768
Hoeber
715/711
Oct,1992

[0 after 0 votes]
5155806
Hoeber
715/711
Oct,1992

[0 after 0 votes]
5146583
Matsunaka
716/3
Sep,1992

[0 after 0 votes]
5123087
Newell
715/862
Jun,1992

[0 after 0 votes]
5040131
Torres
715/810
Aug,1991

[0 after 0 votes]
5029113
Miyoshi
715/705
Jul,1991

[0 after 0 votes]
4992972
Brooks

Feb,1991

[0 after 0 votes]
4972328
Wu
706/59
Nov,1990

[0 after 0 votes]
4970678
Sladowski
715/531
Nov,1990

[0 after 0 votes]
4964077
Eisen
715/707
Oct,1990

[0 after 0 votes]
4905138
Bourne
717/139
Feb,1990

[0 after 0 votes]
4899276
Stadler
715/705
Feb,1990

[0 after 0 votes]
4890257
Anthias
715/807
Dec,1989

[0 after 0 votes]
4806919
Nakayama
715/790
Feb,1989

[0 after 0 votes]
4789962
Berry
715/715
Dec,1988

[0 after 0 votes]
4648062
Johnson
715/708
Mar,1987

[0 after 0 votes]
4622013
Cerchio
434/118
Nov,1986

[0 after 0 votes]
4459678
McCaskill
715/700
Jul,1984

[0 after 0 votes]
5179654
Richards
715/708
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In an electronic spreadsheet system for modeling user-specified information in a data model comprising a plurality of formulas entered by a user, each of said formulas evaluating to a result, a method for assisting the user with correctly entering formulas, the method comprising:

(a) storing syntax rules specifying valid syntax for formulas;

(b) receiving user input for entering a formula;

(c) parsing said user input, based on said syntax rules, into at least one formula node, said at least one node storing a subexpression of the formula;

(d) creating, based on said at least one formula node, an outline view of the formula; and

(e) displaying said outline view to the user.

2. The method of claim 1, wherein step (e) comprises:

for each of said at least one formula node, displaying its subexpression as a node on a hierarchical outline.

3. The method of claim 1, further comprising:

receiving a user request for selecting one of said nodes; and

displaying in an edit field the subexpression stored by the selected node.

4. The method of claim 3, further comprising:

receiving user input at the edit field for modifying the subexpression; and

updating the outline view of the formula based on the modified subexpression.

5. The method of claim 3, further comprising:

computing a result for the subexpression; and

displaying said computed result to the user.

6. The method of claim 5, further comprising:

if a result cannot be correctly computed, displaying an error value as the result for the subexpression.

7. The method of claim 6, wherein said error value is a spreadsheet "ERR" value.

8. The method of claim 1, wherein step (c) includes:

tokenizing said user input into a sequence of opcodes; and

scanning said sequence of opcodes for building a tree of formula nodes.

9. The method of claim 1, wherein step (c) includes:

displaying as a node of the outline view each subexpression of said at least one formula node; and

displaying a folder icon next to some of the nodes of the ouline for indicating to the user that the nodes can be expanded and collapsed.

10. A data processing system for creating syntactically-correct formulas from data entered by a user, each of said formulas evaluating to a result, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid formulas;

input means for receiving user input for entering a particular formula comprising a plurality of subexpressions;

means for parsing said input into a plurality of formula nodes for representing said plurality of subexpressions, based on said rules, each formula node storing a subexpression of said particular formula; and

means for presenting to the user said subexpressions in outline format, by presenting an outline comprising said plurality of formula nodes.

11. A data processing system for creating syntactically-correct formulas from data entered by a user, each of said formulas evaluating to a result, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid formulas;

input means for receiving user input for entering said formulas;

means for parsing said input into a plurality of subexpressions, based on said rules, wherein said means for parsing comprises:

means for compiling said user input into a sequence of opcodes, and

means for creating a tree of formula nodes based on said sequence of opcodes; and

means for presenting to the user said subexpressions in outline format.

12. The system of claim 11, wherein said sequence of opcodes comprises a binary representation of the formula, said binary representation being stored in Reverse-Polish Notation (RPN) format.

13. The system of claim 11, wherein said means for creating a tree of formula nodes includes:

a stack memory for storing on a stack a first formula node which is dependent on a second formula node; and

means for removing said first formula node from the stack when opcode corresponding to said second formula node is encountered in the sequence of opcodes, said means storing a reference from said first node to said second node.

14. A data processing system for creating syntactically-correct formulas from data entered by a user, each of said formulas evaluating to a result, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid formulas, wherein said means for storing information specifying valid formulas includes:

means for storing templates for built-in functions, and

means for comparing user input against said templates, for identifying a particular one of the built-in functions;

input means for receiving user input for entering said formulas;

means for parsing said input into a plurality of subexpressions, based on said rules; and

means for presenting to the user said subexpressions in outline format.

15. The system of claim 14, wherein some of the built-in functions have more than one template, so that the system can identify particular forms of user input common to a given built-in function.

16. A data processing system for creating syntactically-correct formulas from data entered by a user, each of said formulas evaluating to a result, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid formulas;

input means for receiving user input for entering said formulas;

means for parsing said input into a plurality of subexpressions, based on said rules; and

means for presenting to the user said subexpressions in outline format, wherein said means for presenting said subexpressions in outline format includes:

means for displaying said subexpressions in collapsible outline format, so that level of detail displayed can be varied by the user.

17. The system of claim 16, further comprising:

input means for selecting a particular subexpression from the outline format; and

edit means for displaying the particular subexpression in an edit field, so that it can be edited in isolation from other subexpressions of the formula.

18. The system of claim 16, further comprising:

input means for selecting a particular subexpression of the outline format for expansion into individual tokens which comprise the subexpression.

19. The system of claim 16, further comprising:

input means for selecting a particular subexpression from the outline format;

means for computing a result for said particular subexpression; and

means for indicating to the user an error in the particular subexpression, if a correct result cannot be computed.

20. An information system for entering syntactically-correct subexpressions from data entered by a user, the subexpressions combining to form a formula, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid subexpressions;

input means for receiving user input for entering subexpressions for a particular formula being created;

means for parsing said user input into a plurality of formula nodes for representing said plurality of subexpressions, based on said information specifying valid subexpressions, each formula node storing a subexpression of said particular formula; and

means for presenting the formula being created as a formula outline comprising said plurality of formula nodes.

21. The system of claim 20, wherein said input means for receiving user input includes:

an input device;

a display device for displaying an edit field; and

means for updating the formula outline based on input received at said edit field which affects a particular subexpression, by updating the formula node which stores the particular subexpression.

22. The system of claim 21, wherein said input device comprises a keyboard device.

23. The system of claim 21, wherein said input device comprises a pointing device.

24. An information system for entering syntactically-correct subexpressions from data entered by a user, the subexpressions combining to form a formula, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid subexpressions;

input means for receiving user input for entering subexpressions for a formula being created, wherein said input means for receiving user input includes:

an input device,

a display device for displaying an edit field, and

means for updating the formula outline based on input received at said edit field; and

means for presenting the formula being created as a formula outline;

wherein said means for updating the formula outline includes:

means for deleting a portion of the formula outline corresponding to a subexpression which has been deleted from the formula in response to said input received at said edit field;

means for parsing said input received at said edit field; and

means for updating the formula outline to display an outline representation illustrating a new subexpression which has been added to the formula, based on the parsed input.

25. An information system for entering syntactically-correct subexpressions from data entered by a user, the subexpressions combining to form a formula, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid subexpressions:

input means for receiving user input for entering subexpressions for a formula being created;

means for presenting the formula being created as a formula outline;

pattern matching means for comparing user input against function templates stored in the memory, so that a particular function can be identified in the user input; and

means for displaying function input fields for an identified function, said input fields for receiving user input for specific parameters of the identified function.

26. The system of claim 25, wherein each said template comprises a function name, information describing parameters to the function, and help information about the function.

27. The system of claim 26, wherein said information describing parameters to the function includes information designed to minimize common user input errors.

28. The system of claim 20, further comprising:

means for isolating a particular subexpression from the formula outline, said means for isolating operating in response to user input for selecting with an input device a formula node from the formula outline which stores said particular subexpression; and

means for displaying said isolated particular subexpression in an edit field, so that the user can edit the subexpression apart from other subexpressions which comprise the formula.

29. An information system for entering syntactically-correct subexpressions from data entered by a user, the subexpressions combining to form a formula, the system comprising:

a computer having a processor and a memory;

means for storing in said memory information specifying valid subexpressions;

input means for receiving user input for entering subexpressions for a formula being created;

means for presenting the formula being created as a formula outline;

error detection means for detecting an error in a particular subexpression which has been entered for a formula; and

error indication means for indicating on the formula outline the particular subexpression which is in error.

30. In a system for processing formulas entered by a user, the formulas including built-in functions having parameters for receiving user-supplied information, an improved method for entering a formula comprising:

(a) storing for each function information describing correct syntax for entering functions, wherein said information describing a correct syntax includes for each function a function name and information describing parameters for the function;

(b) entering a formula having at least one function;

(c) receiving user input for selecting a particular function in said entered formula;

(d) identifying said selected function by comparing it against said information describing a correct syntax for entering the function;

(e) if said selected function is identified in step (d), displaying input fields for parameters of said selected function;

(f) receiving user input at said input fields; and

(g) completing entry for the formula by substituting the user input of step (f) into said selected function;

wherein said information describing parameters for the function comprise a template for that function, and wherein at least some of the functions have multiple templates, so that common input formats for a given function can be detected automatically by the system.

31. In a system for processing formulas entered by a user, the formulas including built-in functions having parameters for receiving user-supplied information, an improved method for entering a formula comprising:

(a) storing for each function information describing correct syntax for entering functions;

(b) entering a formula having at least one function;

(c) receiving user input selecting a particular function in said entered formula;

(d) identifying said selected function by comparing it against said information describing a correct syntax for entering the function;

(e) if said selected function is identified in step (d), displaying input fields for parameters of said selected function;

(f) receiving user input at said input fields;

(g) completing entry for the formula by substituting the user input of step (f) into said selected function;

(h) displaying a list of range names proximate the input fields, each of said range names specifying a particular set of information cells which can serve as input to a function;

(i) receiving a request from the user for selecting one of the range names from the list while editing an input field; and

(j) copying the selected range name into the input field being edited.

32. In a system for processing formulas entered by a user, the formulas including built-in functions having parameters for receiving user-supplied information, an improved method for entering a formula comprising:

(a) storing for each function information describing correct syntax for entering functions;

(b) entering a formula having at least one function;

(c) receiving user input selecting a particular function in said entered formula;

(d) identifying said selected function by comparing it against said information describing a correct syntax for entering the function;

(e) if said selected function is identified in step (d), displaying input fields for parameters of said selected function;

(f) receiving user input at said input fields;

(g) completing entry for the formula by substituting the user input of step (f) into said selected function;

(h) performing a substring match between the selected function and said information describing a correct syntax for entering the function;

(i) assigning a score to each match, based on correlation between substrings; and

(j) determining a correct syntax based on a match having a highest score.

33. In an electronic spreadsheet system for modeling user-specified information in a data model, said data model comprising information cells storing user-supplied data and user-supplied formulas operative on said data, some of said cells having user-supplied range names, a method for assisting the user with correctly entering formulas, the method comprising:

(a) receiving user input for entering a formula;

(b) displaying said user input in an edit field;

(c) displaying a drop-down list of range names proximate said edit field;

(d) receiving a user request selecting a particular range name from said list of range names; and

(e) completing entry for the formula by copying the particular range name into said formula being entered.

34. The method of claim 33, wherein step (d) comprises:

positioning a screen cursor over a desired range name; and

generating a signal from an input device while said cursor is positioned over the desired range name.
 Description Submit all comments and votes
 


COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of information processing by digital computers and, more particularly, to the entry and processing of information by application programs, particularly electronic spreadsheets.

Before computers, numerical analyses, particularly financial ones, were usually prepared on an accountant's columnar pad or spreadsheet, with pencil and calculator in hand. By organizing data into columns and rows, spreadsheets afford the rapid assimilation of information by a reader. The task of preparing a spreadsheet on paper, however, is not quite so fast. Instead, the process tends to be very slow, as each entry must be tediously calculated and entered into the spreadsheet. Since all calculations are the responsibility of the preparer, manually prepared spreadsheets are also prone to error. Hence, preparation of spreadsheets by hand is slow, tedious, and unreliable.

With the advent of microcomputers, a solution was forthcoming in the form of "electronic spreadsheets." Better known simply as "spreadsheets," these software programs provide a computerized replacement for the traditional financial modeling tools: the accountant's columnar pad, pencil, and calculator. In some regards, spreadsheet programs are to those tools what wordprocessors are to typewriters. Spreadsheets offer dramatic improvements in ease of creating, editing, and using financial models.

A typical spreadsheet program configures the memory of a computer to resemble the column/row or grid format of an accountant's columnar pad, thus providing a visual calculator for a user. Because this "pad" exists dynamically in the computer's memory, however, it differs from paper pads in several important ways. Locations in the electronic spreadsheet, for example, must be communicated to the computer in a format which it can understand. A common scheme for accomplishing this is to assign a number to each row in a spreadsheet, and a letter to each column. To reference a location at column A and row 1 (i.e., the upper-left hand corner), for example, the user types in "A1". In this manner, the spreadsheet defines an addressable storage location or "cell" at each intersection of a row with a column.

Data entry into an electronic spreadsheet occurs in much the same manner that information would be entered on an accountant's pad. After a screen cursor is positioned at a desired location, the user can enter alphanumeric information. Besides holding text and numeric information, however, spreadsheet cells can store special instructions or "formulas" specifying calculations to be performed on the data stored in spreadsheet cells. In this fashion, cell references can serve as variables in an equation, thereby allowing precise mathematical relationships to be defined between cells.

A particular advantage of electronic spreadsheets is the ability to create a multitude of "what if" scenarios from a single data model. This ability stems largely from the spreadsheet formulas, which are the means by which a user tells an electronic spreadsheet system how to manipulate and analyze one's data. After a set of mathematical relationships has been entered into a worksheet, the spread of information can be "recalculated" using different sets of assumptions, with the results of each recalculation appearing relatively quick. Performing this operation manually, with paper and pencil, would require recalculating every relationship in the model with each change made. Expectedly, electronic spreadsheets have quickly displaced their pencil-and-paper counterparts for modeling user information.

The structure and operation of a spreadsheet program, including spreadsheet formulas and "macros," are documented in the technical, trade, and patent literature. For an overview, see e.g., Cobb, D., Using 1-2-3, Que Corp., 1985; and Campbell, M., Quattro Pro 4.0 Handbook, 4th Ed., 1992. The disclosures of each of the foregoing references are hereby incorporated by reference.

Spreadsheet formulas are fundamental to the creation and operation of a spreadsheet data model. During creation of a particular spreadsheet or worksheet model, a user enters formulas in worksheet cells the same way he or she enters values and labels. Typically, a formula begins with a number or with a special character (e.g., +, -, (, @, ., #, or $) to distinguish the entry from raw data. More particularly, formulas are constructed from one or more of four basic components: operators, values, cell references, and @-functions. Each of these will be briefly reviewed.

Operators, which indicate how user data are to be combined and manipulated, typically include well-known operators such as -, +, *, /, and the like. Values are the information (e.g., numeric, logical, or text) which formulas are to act upon. To include a value in a formula, the user simply types it as he or she desires it to appear.

Cell references, on the other hand, allow a user to employ a value in one's current formula that is derived from another cell. For instance, if a cell having an address of B3 contains the value of 10, the formula