IP Library Granted Patent US 11,423,218
Granted Patent B2
US 11,423,218 · App. 17/118,187 · Granted Aug 23, 2022

Abstraction of formulas into reusable functions

Inventors: Michelle Elena Keslin (Kirkland, WA); Christopher John Gross (Seattle, WA); Joseph Mcdaid (Seattle, WA); Andrew James Becker (Saxapahaw, NC); Su-Piao Bill Wu (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F40/18G06F16/93G06F40/103
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,423,218
App. No.
17/118,187
Granted
Aug 23, 2022
Kind
B2
Abstract

A formula abstraction system is described. The system includes detecting a user-generated formula in a cell of a spreadsheet document, generating a graphical user interface that queries entries of a custom function based on the user-generated formula, forming the custom function by abstracting the user-generated formula to the custom function based on the entries, and storing the custom function in a function library of the spreadsheet document. The custom function applies the user-generated formula in a user-selected cell of the spreadsheet document.

Claims (72)

1. A computer-implemented method comprising:

detecting a user-generated formula in a cell of a spreadsheet document;

identifying an argument that is not specified in the user-generated formula, the argument indicating a variable name from the spreadsheet document, the user-generated formula indicating an operation on a value of the variable name without identifying the variable name;

generating a graphical user interface that queries entries of a custom function based on the user-generated formula;

forming the custom function by abstracting the user-generated formula to the custom function based on the entries and the argument; and

storing the custom function in a function library of the spreadsheet document, the custom function being configured to apply the user-generated formula in a user-selected cell of the spreadsheet document.

2. The computer-implemented method of claim 1 , comprising:

detecting an event indicating a reuse of the user-generated formula,

wherein generating the graphical user interface is in response to detecting the event.

3. The computer-implemented method of claim 2 , wherein the event is based on detecting a user selecting the cell, copying a content of the cell, and pasting the content of the cell in another cell.

4. The computer-implemented method of claim 2 , wherein the event is based on:

identifying a first cell comprising the custom function;

identifying a second cell adjacent to the custom function;

detecting that the second cell is empty; and

detecting that the second cell is selected by the user.

5. The computer-implemented method of claim 1 , comprising:

populating an argument entry in the graphical user interface with the variable name.

6. The computer-implemented method of claim 1 , wherein the entries of the custom function comprises a label entry, an argument entry, and a formula entry,

wherein the label entry identifies a name of the custom function,

wherein the argument entry identifies a name of an argument that indicates a variable in the user-generated formula, and

wherein the formula entry identifies the user-generated formula.

7. The computer-implemented method of claim 6 , further comprising:

receiving the name of the custom function from a user of the spreadsheet document via the graphical user interface;

receiving the name of the argument from the user of the spreadsheet document via the graphical user interface; and

updating the user-generated formula by replacing the variable with the name of the argument.

8. The computer-implemented method of claim 6 , further comprising:

identifying a header of a row or column corresponding to the variable;

forming the name of the argument based on a label of the header; and

updating the user-generated formula by replacing the variable with the name of the argument.

9. The computer-implemented method of claim 6 , wherein the variable represented by the name of the argument is based on a first cell corresponding to a second cell selected by the user, the first cell comprising a value, the second cell comprising the custom function operating on the value of the first cell.

10. The computer-implemented method of claim 1 , further comprising:

communicating the custom function and the spreadsheet document from a first user to a second user;

modifying the custom function based on entries from the second user; and

updating the custom function in the spreadsheet document of the first user based on the entries from the second user.

11. A computing apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the apparatus to:

detect a user-generated formula in a cell of a spreadsheet document;

identify an argument that is not specified in the user-generated formula, the argument indicating a variable name from the spreadsheet document, the user-generated formula indicating an operation on a value of the variable name without identifying the variable name;

generate a graphical user interface that queries entries of a custom function based on the user-generated formula;

form the custom function by abstracting the user-generated formula to the custom function based on the entries and the argument; and

store the custom function in a function library of the spreadsheet document, the custom function being configured to apply the user-generated formula in a user-selected cell of the spreadsheet document.

12. The computing apparatus of claim 11 , comprising:

detect an event indicating a reuse of the user-generated formula,

wherein generating the graphical user interface is in response to detecting the event.

13. The computing apparatus of claim 12 , wherein the event is based on detecting a user selecting the cell, copy a content of the cell, and pasting the content of the cell in another cell.

14. The computing apparatus of claim 12 , wherein the event is based on:

identify a first cell comprising the custom function;

identify a second cell adjacent to the custom function;

detect that the second cell is empty; and

detect that the second cell is selected by the user.

15. The computing apparatus of claim 11 , wherein the instructions further configure the apparatus to:

populating an argument entry in the graphical user interface with the variable name.

16. The computing apparatus of claim 11 , wherein h entries of the custom function comprise a label entry, an argument entry, and a formula entry,

wherein the label entry identifies a name of the custom function,

wherein the argument entry identifies a name of an argument that indicates a variable in the user-generated formula, and

wherein the formula entry identifies the user-generated formula.

17. The computing apparatus of claim 16 , wherein the instructions further configure the apparatus to:

receive the name of the custom function from a user of the spreadsheet document via the graphical user interface;

receive the name of the argument from the user of the spreadsheet document via the graphical user interface; and

update the user-generated formula by replacing the variable with the name of the argument.

18. The computing apparatus of claim 16 , wherein the instructions further configure the apparatus to:

identify a header of a row or column corresponding to the variable;

form the name of the argument based on a label of the header; and

update the user-generated formula by replacing the variable with the name of the argument.

19. The computing apparatus of claim 16 , wherein the variable represented by the name of the argument is based on a first cell corresponding to a second cell selected by the user, the first cell comprising a value, the second cell comprising the custom function operate on the value of the first cell.

20. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

detect a user-generated formula in a cell of a spreadsheet document;

identify an argument that is not specified in the user-generated formula, the argument indicating a variable name from the spreadsheet document, the user-generated formula indicating an operation on a value of the variable name without identifying the variable name;

generate a graphical user interface that queries entries of a custom function based on the user-generated formula;

form the custom function by abstracting the user-generated formula to the custom function based on the entries and the argument; and

store the custom function in a function library of the spreadsheet document, the custom function being configured to apply the user-generated formula in a user-selected cell of the spreadsheet document.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE EXECUTION DATE FOR THE 3RD INVENTOR PREVIOUSLY RECORDED AT REEL: 054967 FRAME: 0805. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 10, 2021
From: KESLIN, MICHELLE ELENA; GROSS, CHRISTOPHER JOHN; MCDAID, JOSEPH; BECKER, ANDREW JAMES; WU, SU-PIAO BILL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 058094/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2021
From: KESLIN, MICHELLE ELENA; GROSS, CHRISTOPHER JOHN; MCDAID, JOSEPH; BECKER, ANDREW JAMES; WU, SU-PIAO BILL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 054967/0805 →
Continuity (1)
Related Publication 20220188505A1 · Jun 16, 2022
Cited By (2)
US 12,437,148 US 12,541,642