Spreadsheet Program Synthesis for Example-Based Data Entry

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users face inefficiencies in manually entering and propagating data in spreadsheets, leading to excessive resource usage and complexity, especially for non-programmers, and existing automated solutions are often inefficient or require significant user intervention.

Innovation Solution

A system that automatically synthesizes programs in a spreadsheet programming language, using dynamic programming algorithms to generate outputs based on user inputs, with complexity and confidence thresholds to ensure efficient resource use and accurate results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If users manually enter data into spreadsheet cells, then data can be populated in the spreadsheet, but user time and computer storage resources are excessively consumed

Engineering Contradiction:
Improvedata entry efficiencyVSAvoiduser time for data entry
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system automatically synthesizes programs that extract data from source tables and populate target cells in the spreadsheet, enabling the system to serve itself rather than requiring manual user intervention for data entry operations

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system pre-defines functions in the spreadsheet programming language that can be automatically combined to create data extraction and population programs, preparing the computational framework in advance to eliminate manual data entry steps

Inventive Principle:
Principle #10Preliminary action

2Reliability

If users manually propagate data changes across the spreadsheet, then data consistency is maintained, but excessive user time and computational resources are consumed

Engineering Contradiction:
Improvedata consistencyVSAvoidtime to propagate changes
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The synthesized program automatically monitors and propagates data changes across all relevant cells in the spreadsheet, making the system self-correcting rather than requiring manual intervention to maintain data consistency

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system establishes automatic feedback loops where changes in source data are detected and automatically propagated to all dependent cells, ensuring real-time data consistency without user intervention

Inventive Principle:
Principle #23Feedback

3Extent of automation

If non-programmer users attempt to use spreadsheet functions to obtain data programmatically, then data automation is achieved, but the complexity of the programming language creates barriers to use

Engineering Contradiction:
Improveprogrammatic data acquisitionVSAvoidusability for non-programmers
Core Design Contradiction:
Extent of automationVSEase of operation

Solution Approach 1:

The system introduces an automatic program synthesis intermediary that translates user-friendly specifications into complex spreadsheet programs, shielding non-programmer users from the underlying programming language complexity while achieving automated data acquisition

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates simplified copies or abstractions of the programming interface that are easier for non-programmers to use, while the automatic synthesis engine handles the translation to actual executable spreadsheet programs

Inventive Principle:
Principle #26Copying

4Extent of automation

If users manually craft programs to obtain data from spreadsheet functions, then data extraction is automated, but excessive time and computational resources are consumed during program creation

Engineering Contradiction:
Improvedata extraction automationVSAvoidtime to craft programs
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The system pre-defines and pre-compiles a library of spreadsheet functions and their combinations, preparing the computational building blocks in advance so that program synthesis can quickly assemble solutions without requiring users to manually craft programs from scratch

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The automatic program synthesis system serves itself by autonomously analyzing data requirements and generating appropriate programs without requiring manual user intervention in the program creation process

Inventive Principle:
Principle #25Self-service

5Adaptability or versatility

If users write their own programs to obtain data, then custom data extraction is achieved, but the programs may be inefficient and consume excess processing and memory resources

Engineering Contradiction:
Improvecustom data extraction capabilityVSAvoidprocessing and memory resources
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The system automatically optimizes program parameters such as function selection, argument ordering, and execution timing to minimize computational resource consumption while maintaining the required data extraction functionality

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system replaces inefficient manual program writing with an automatic synthesis engine that generates optimized programs, substituting the mechanical process of manual coding with an automated intelligent system that produces resource-efficient solutions

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS12626054B2User interface(s) related to synthesizing programs in a spreadsheet programming language
Publication Date: 2026.05.12 GOOGLE LLC
  • US12626054B2 patent drawing
  • US12626054B2 patent drawing
  • US12626054B2 patent drawing

AI summary

Techniques are described herein for automatically synthesizing programs that include one or more functions in a spreadsheet programming language. A method includes: receiving first user input in a first cell in a spreadsheet; automatically synthesizing a program using the first user input in the first cell as a first example, where the program includes at least one function in a spreadsheet programming language and, when the program is executed, the program generates output that matches the first example; determining at least one additional cell in the spreadsheet that is related to the first cell; determining that a display triggering condition is satisfied; and in response to the determining that the display triggering condition is satisfied, displaying, in each of the at least one additional cell, an output of the program corresponding to the additional cell.