IP Library › Granted Patent US 11,366,960
Granted Patent B2
US 11,366,960 · App. 16/983,088 · Granted Jun 21, 2022

Data analysis expressions

Inventors: Howard J. Dickerman (Bellevue, WA); Marius Dumitru (Sammamish, WA); Akshai Mirchandani (Redmond, WA); Yutong (Jeffrey) Wang (Bellevue, WA); Amir Netz (Bellevue, WA); Paul J. Sanders (Mercer Island, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F40/18
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,366,960
App. No.
16/983,088
Filed
Aug 3, 2020
Granted
Jun 21, 2022
Kind
B2
Art Unit
2144
USPC
715/219
Abstract

Methods and systems are disclosed for receiving and processing data analysis expressions. A particular method includes receiving a data analysis expression at a pivot table of a spreadsheet. The data analysis expression is executed for a particular cell of the pivot table by determining a context associated with the particular cell, calculating a value of the data analysis expression based on the context, and outputting the calculated value at the particular cell.

Claims (35)

1. A method performed by a computing device comprising:

receiving a data analysis expression associated with a first cell in a first column of a first table, wherein the data analysis expression uses as input a second column of the first table and a third column of a second table, wherein first table is different from the second table;

calculating a value of the data analysis expression, the value associated with the first cell and in a particular row of the first column, wherein the value is calculated using both (i) first data in the particular row of the second column and (ii) second data retrieved from the third column of the second table, wherein the second data is selected using a filter context associated with the particular row and based on a relationship between the first table and the second table; and

outputting the value at the first cell in the first table.

2. The method of claim 1 , wherein the first table is a multi-dimensional cube data structure.

3. The method of claim 2 , wherein the multi-dimensional cube data structure is an online analytical processing (“OLAP”) cube data structure.

4. The method of claim 1 , wherein the data analysis expression includes a user-defined formula.

5. The method of claim 1 , further comprising automatically re-executing the data analysis expression in response to a pivot operation of a pivot table, wherein the first table is a pivot table.

6. The method of claim 1 , wherein a reference to the second column resolves to the second column when the reference is used in a column calculation, and wherein a reference to the second column resolves to a value stored at a particular row of the second column when the reference is used in a scalar calculation.

7. The method of claim 1 , wherein the data analysis expression includes a formula to be aggregated over rows of at least one data table.

8. A computer-readable hardware storage medium storing instructions, that when executed by a computing device, cause the computing device to:

receive a data analysis expression associated with a first column of a first table;

determine a relationship between a second column of the first table and a third column of a second table using the data analysis expression, wherein first table is different from the second table;

calculate a value of the data analysis expression, the value associated with a spreadsheet cell in the first column and in a particular row of the first column, wherein the value is calculated using both (i) first data in the particular row of the second column and (ii) second data retrieved from the third column of the second table, wherein the second data is selected using a filter context associated with the particular row and based on the relationship; and

output the value at the spreadsheet cell in the first table.

9. The computer-readable hardware storage medium of claim 8 , further storing instructions, that when executed by the processor, cause the processor to:

receive a selection of a subset of rows of the first table; and

automatically re-execute the data analysis expression for the selected subset of rows.

10. The computer-readable hardware storage medium of claim 8 , wherein the data analysis expression includes a user-defined formula.

11. The computer-readable hardware storage medium of claim 8 , wherein the data analysis expression includes a formula to be aggregated over rows of at least one data table.

12. The computer-readable hardware storage medium of claim 11 , wherein the data analysis expression includes at least one aggregation selected from the group consisting of:

a sum pivot table aggregation, an average pivot table aggregation, a minimum pivot table aggregation, a maximum pivot table aggregation, and a count pivot table aggregation, wherein the at least one aggregation may be performed for a plurality of expressions other than the data analysis expression.

13. The computer-readable hardware storage medium of claim 8 , wherein the relationship includes a related column that is an index column of the first table, an index column of the second table, or any combination thereof.

14. A method executing on one or more computing devices, the method causing the one or more computing devices to:

receive a data analysis expression associated with a first column of a first table, wherein the data analysis expression operates in conjunction with a relationship between a second column of a second table and a third column of a third table, wherein first table, the second table, and the third table are different from each other;

calculate a value of the data analysis expression, the value associated with a cell in a particular row of the first column, wherein the value is calculated using both (i) first data retrieved from the particular row of the second table and (ii) second data retrieved from the third table based on the relationship and based on a filter context associated with the particular row; and

output the calculated value at the cell in the first table.

15. The method of claim 14 , wherein at least one table is from a data structure that comprises an online analytical processing (“OLAP”) cube.

16. The method of claim 14 , wherein the method further causes the one or more computers to:

receive a selection of a subset of the particular row of the first table; and

automatically re-execute the data analysis expression for the subset of the particular row of the first table.

17. The method of claim 14 , wherein the data analysis expression includes a formula.

18. The method of claim 17 , wherein the data analysis expression includes a formula associated with at least one aggregation, wherein the at least one aggregation is selected from the group consisting of: a sum pivot table aggregation, an average pivot table aggregation, a minimum pivot table aggregation, a maximum pivot table aggregation, and a count pivot table aggregation.

19. The method of claim 14 , wherein the data analysis expression includes at least one time-based function from dateadd, datesbetween, datesinperiod, or parallelperiod.

20. The method of claim 14 , wherein the data analysis expression includes a related table function, a relatedtable table function, a filter table function, a distinct table function, a values table function, an all table function, an allexcept table function, an allnoblankrow table function, or any combination thereof.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: DICKERMAN, HOWARD J.; DUMITRU, MARIUS; MIRCHANDANI, AKSHAI; WANG, YUTONG JEFFREY; NETZ, AMIR; SANDERS, PAUL J.
To: MICROSOFT CORPORATION
Reel/Frame 054163/0209 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2020
From: DICKERMAN, HOWARD J.; DUMITRU, MARIUS; MIRCHANDANI, AKSHAI; WANG, YUTONG (JEFFREY)
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053806/0841 →
Continuity (4)
Continuation 15592991 · May 11, 2017
Continuation 14997138 · Jan 15, 2016
Continuation 12576254 · Oct 9, 2009
Related Publication 20210019472A1 · Jan 21, 2021