# US 10,372,808 B1 · Passing functional spreadsheet data by reference

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,808 B1
- Document ID: US10372808B1
- Status: Granted
- Kind: B1
- Application number: 13/711,819
- Filed: 2012-12-12
- Granted: 2019-08-06
- Earliest claimed: 2012-12-12
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Joseph J. Kaptur; Zachary E. Lloyd
- Web page: https://patentgrep.com/patent/US10372808B1

## CPC

- G06F 40/18: of spreadsheets (form-filling G06F40/174)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and apparatus for passing functional spreadsheet data by reference is provided. Passing functional spreadsheet data by reference may include identifying information associated with a first cell of a first sheet of an electronic spreadsheet, the information associated with the first cell including a formula, the formula including a function call, the function call including an argument, the argument indicating a cell identifier associated with a second cell of the electronic spreadsheet; identifying information associated with the second cell, the information associated with the second cell including a function identifier; determining, by a processor in response to instructions stored on a tangible non-transitory computer readable medium, a result of the formula based on the function identifier; and transmitting information including the result of the formula for display in the first cell.

## Claims

### Claim 1

A method of passing functional spreadsheet data by reference in an electronic spreadsheet, the method comprising:
identifying information associated with a first cell of a first sheet of the electronic spreadsheet, the information associated with the first cell including a formula, the formula including a first function call, the first function call including an argument comprising a plurality of formula elements, the plurality of formula elements comprising a cell identifier associated with a second cell, wherein the second cell is one of a plurality of cells in the first sheet or the second cell is one of a plurality of cells in a second sheet of the electronic spreadsheet;
identifying a value of the second cell, the value of the second cell being a text string corresponding to a function name, the function name corresponding to a name of a second function call for use in the argument of the first function call;
determining, by a processor in response to instructions stored on a tangible non-transitory computer readable medium, a result of the formula by steps comprising:
performing the first function call to convert the text string into the second function call that includes at least some of the plurality of formula elements, wherein performing the first function call to convert the text string into the second function call comprises:
modifying a dynamic calculation graph of the formula to include a new edge and a new subtree; and
evaluating the new edge and the new subtree; and
performing the second function call; and
transmitting, to a user device, information including the result of the formula for display in the first cell.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first function call is an EVAL function and the argument includes both the cell identifier and a string.

### Claim 3 (depends on 1)

The method of claim 1, wherein the plurality of formula elements includes the cell identifier and a string.

### Claim 4 (depends on 3)

The method of claim 3, wherein determining the result of the formula includes generating a part of the formula by concatenating the function name and the string.

### Claim 5 (depends on 3)

The method of claim 3, wherein the plurality of formula elements includes a second cell identifier associated with a third cell that includes a part of a third cell identifier, and wherein determining the result of the formula includes identifying the third cell based on the part of the third cell identifier and the string.

### Claim 6 (depends on 3)

The method of claim 3, wherein the plurality of formula elements includes a second cell identifier associated with a range of cells, and wherein determining the result of the formula includes calculating a result of calling the second function call indicated by the function name for each cell in the range of cells using a value of the respective cell as an argument to the second function call indicated by the function name.

### Claim 7

An apparatus for use in processing data represented as an electronic spreadsheet, the apparatus comprising:
a memory; and
a processor configured to execute instructions stored in the memory to:
identify information associated with a first cell of a first sheet of the electronic spreadsheet, the information associated with the first cell including a formula, the formula including a first function call, the first function call including an argument comprising a plurality of formula elements, the plurality of formula elements comprising a cell identifier associated with a second cell;
identify a value of the second cell, the value of the second cell being a text string corresponding to a function name, the function name corresponding to a name of a second function call for use in the argument of the first function call, wherein the text string is a discrete value or a result of a formula that evaluates to a string;
determine a result of the formula by executing instructions to:
perform the first function call to convert the text string into the second function call that includes at least some of the plurality of formula elements, wherein to perform the first function call to convert the text string into the second function call comprises to:
modify a dynamic calculation graph of the formula to include a new edge and a new subtree; and
evaluate the new edge and the new subtree; and
perform the second function call; and
transmit information including the result of the formula for display in the first cell.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the first function call is an EVAL function and the argument includes both the cell identifier and a string.

### Claim 9 (depends on 7)

The apparatus of claim 7, wherein the processor is configured to execute instructions stored in the memory to determine the result of the formula by generating a part of the formula by concatenating the function name and the string.

### Claim 10 (depends on 7)

The apparatus of claim 7, wherein the plurality of formula elements includes a second cell identifier associated with a third cell that includes a part of a third cell identifier, and wherein the processor is configured to execute instructions stored in the memory to determine the result of the formula by identifying the third cell based on the part of the third cell identifier and the string.

### Claim 11 (depends on 7)

The apparatus of claim 7, wherein the plurality of formula elements includes a second cell identifier associated with a range of cells, and wherein the processor is configured to execute instructions stored in the memory to determine the result of the formula by calculating a result of calling the second function call indicated by the function name for each cell in the range of cells using a value of the respective cell as an argument to the second function call indicated by the function name.

### Claim 12 (depends on 7)

The apparatus of claim 7, wherein the processor is configured to execute instructions stored in the memory to transmit the information including the result of the formula for display in the first cell to a user device.
