在电子表格编程语言中合成程序的制作方法


电子表格编程语言中合成程序


背景技术:



1.电子表格应用可以实施包括各种函数的电子表格编程语言,该各种函数对电子表格中的单元格或单元格范围中的数据和/或对其它输入进行操作以产生各种输出。电子表格编程语言中的函数的非限制性示例包括求和、计数、平均值、长度、串接、最大值、最小值以及查函数。
2.用户可以将数据手动地键入到能够以编程方式获得的电子表格中。例如,用户可以将姓氏手动键入到第一表格中的列中,这能够通过使用电子表格编程语言中的函数从存储全名的第二表格中的列提取姓氏来替代获得。然而,这种手动途径可能是对用户时间和计算机存储资源的低效使用,这是由于其能够导致过多的数据键入、客户端装置使用以及相同数据在电子表格中多个地方的重复。附加地,当底层数据在一个位置中改变(例如,用户的姓氏改变)时,这种改变必须手动地传播到电子表格中使用该数据的所有地方。
3.不是程序员或有经验的电子表格应用用户的用户可能不知道或不习惯使用电子表格编程语言中的函数,这些函数可以用于以编程方式获得数据来填充电子表格中的某些单元格。附加地,用户可能不理解如何将电子表格编程语言中的多个函数组合在一起以形成程序来获得数据以填充电子表格中的某些单元格。其它用户可能能够编写其自己的使用电子表格编程语言中的多个函数来获得数据的程序,但是与用于获得相同数据的更高效的解决方案相比,用户编写的程序可能是需要额外的处理和存储器资源的低效解决方案。此外,手动地制作程序通常能够花费大量时间(例如,识别适当的(多个)函数、用于进行试错等)并且因此,能够导致过度使用用于手动地制作程序的客户端装置的功率资源和/或其它运算资源。当客户端装置具有相对较小的显示器和/或软件键盘时,这种情况可能会加剧,该显示器和/或软件键盘这两者能够延长制作程序所需的时间量。


技术实现要素:



4.本文公开的实施方式涉及自动合成程序,该程序包括电子表格编程语言中的至少一个函数并且在被执行时生成与一个或多个用户提供的输出示例匹配的输出。例如,电子表格中的第一单元格中的用户输入能够用作第一示例,并且底层电子表格编程语言中包括第一候选程序集合的多个候选程序能够被自动合成,使得第一候选程序集合中的每个程序在被执行时生成与第一示例匹配的输出。然后能够基于一个或多个准则来对候选程序进行排名,并且能够选择排名最高的程序并且将其与第一单元格相关联地进行存储,例如作为对用户输入的替换。
5.在一些实施方式中,电子表格中的第二单元格中的用户输入能够用作第二示例,并且自动合成的多个候选程序可以包括第二候选程序集合,该第二候选程序集合在被执行时生成与第二示例匹配的输出。在基于预定准则来对候选程序进行排名之前,能够从候选程序移除不包括在第一候选程序集合和第二候选程序集合这两者中的候选程序。以这种方式,从候选程序中排除不产生根据两个用户提供的示例的输出的任何自动合成程序。在其它实施方式中,电子表格中的附加单元格中的用户输入能够用作附加示例,并且还能够从
候选程序中排除不产生根据附加示例的输出的自动合成程序。
6.在一些实施方式中,能够识别电子表格中与第一单元格相关的附加单元格,并且能够与附加单元格中的每一个相关联地存储排名最高的程序。例如,能够将电子表格中的特定表中的列中的附加单元格识别为与特定表中的列中的第一单元格相关,并且能够与列中的附加单元格中的每一个相关联地存储排名最高的程序。
7.在一些实施方式中,自动合成程序可以使用来自电子表格中的一个或多个表中存在的一个或多个其它单元格(例如,数据源单元格)的数据作为输入。在其它实施方式中,自动合成程序能够使用来自外部数据源(诸如企业知识库)的数据作为输入。外部数据源能够包括在与电子表格相关联的外部数据源映射中,该外部数据源映射包括对外部数据源的引用(例如,统一资源定位符或其它链路)。
8.在一些实施方式中,能够确定第一示例的数据类型,并且避免执行具有与第一示例的数据类型不匹配的输出数据类型的程序。因此,能够通过避免调用无法生成与用户提供的示例匹配的输出的程序来节省系统资源。
9.在一些实施方式中,能够将第一示例的数据类型确定为数值数据类型,并且能够避免执行具有与数值数据类型不匹配的输出数据类型的程序。在其它实施方式中,能够将第一示例的数据类型确定为日期数据类型,并且能够避免执行具有与日期数据类型不匹配的输出数据类型的程序。
10.在一些实施方式中,能够从电子表格中的数据源单元格或从外部数据源获得程序输入数据,并且能够确定程序输入数据的数据类型。能够避免执行具有与程序输入数据的数据类型不匹配的输入数据类型的程序。因此,能够通过避免调用无法利用程序输入数据中包括的数据类型作为输入的程序来节省系统资源。
11.在一些实施方式中,能够确定可接受的输出值的范围,并且能够避免执行具有落在可接受的输出数据值的范围之外的输出数据值的程序。因此,能够通过避免调用无法生成落在值的可接受范围内的输出的程序来节省系统资源。
12.在一些实施方式中,具有更加频繁使用的函数的候选程序的排名能够高于具有不太频繁使用的函数的候选程序。例如,能够基于来自历史电子表格数据的函数的使用频率(例如,在手动编写时的使用频率)将分数分配给候选程序中的每个函数;并且能够基于分配给候选程序中的函数中的每一个的分数来确定候选程序的总分数。然后能够基于总分数对候选程序进行排名。因此,包括更加频繁使用的(多个)函数的候选程序的排名可以更高,并且因此,更有可能会被选择、利用以及呈现给用户。候选程序的更加频繁使用的(多个)函数能够更容易被用户理解,这能够导致对这些程序的运算效率更高的审查和/或编辑。
13.在一些实施方式中,较短的,例如使用函数的总数目较少的候选程序的排名能够在使用函数的总数目较大的候选程序前面。在其它实施方式中,较简单的,例如使用嵌套函数级别的数量较少的候选程序的排名能够在使用嵌套函数级别的数量较大的候选程序前面。因此,能够通过避免使用过度复杂的程序来节省系统资源。
14.在一些实施方式中,能够获得电子表格的语料库(例如,由特定公司或组织的用户创建的电子表格的类集),并且能够分析电子表格的语料库以获得多个程序习语,每个程序习语包括电子表格编程语言中的多个函数。能够自动合成附加候选程序并且将其包括在根据第一示例的第一候选程序集合中,其中附加候选程序中的每一个包括程序习语中的一个
或多个,并且在被执行时生成与第一示例匹配的输出。在其它实施方式中,除了程序习语之外,附加候选程序还能够包括电子表格编程语言中的函数。附加地,在其它实施方式中,除了分析电子表格的语料库之外或代替分析电子表格的语料库,能够分析在线资源以获得多个程序习语。
15.在一些附加或可替代实施方式中,能够接收包括在电子表格中的第一单元格中提供的用户输入的第一示例和包括在电子表格中的第二单元格中提供的用户输入的第二示例。能够自动合成根据第一示例的第一程序集合和根据第二示例的第二程序集合。第一程序集合中的每个程序在被执行时生成与第一示例匹配的输出,并且第二程序集合中的每个程序在被执行时生成与第二示例匹配的输出。然后能够通过确定第一程序集合与第二程序集合的交集来生成候选程序。然后能够对候选程序进行排名,能够确定多个候选程序中排名最高的程序,并且能够用排名最高的程序替换在电子表格中的第一单元格中提供的用户输入和在电子表格中的第二单元格中提供的用户输入。
16.应了解,本文更详细地描述的前述概念和附加概念的所有组合都被预期作为本文所公开的主题的一部分。例如,出现在本公开的结尾处的所要求保护的主题的所有组合都被预期作为本文所公开的主题的一部分。
附图说明
17.图1示意性地描绘了根据各种实施方式的可以实施本公开的所选择的各方面的示例环境。
18.图2描绘了图示用于实践本公开的所选择的各方面的示例方法的流程图。
19.图3描绘了图示用于实践本公开的所选择的各方面的示例方法的另一流程图。
20.图4描绘了根据各种实施方式的本文所描述的技术的示例应用。
21.图5图示了计算装置的示例架构。
具体实施方式
22.图1示意性地描绘了根据各种实施方式的可以实施本公开的所选择的各方面的示例环境100。图1中或图中的其它地方所描绘的任何计算装置可以包括逻辑(诸如执行存储在存储器中的计算机可读指令的一个或多个微处理器(例如,中央处理单元或“cpu”、图形处理单元或“gpu”))或其它类型的逻辑,诸如专用集成电路(“asic”)、现场可编程门阵列(“fpga”)等。图1中所描绘的一些系统(诸如电子表格系统110)可以使用一个或多个服务器计算装置实施,该服务器计算装置有时被称为“云基础设施”,但这不是必需的。
23.在实施方式中,环境100可以包括电子表格系统110,该电子表格系统110实施可以通过瘦客户端接口(诸如网络浏览器(例如,基于网络的电子表格应用))或程序接口中的任一个从各种客户端(包括可以包括在环境100中的客户端130-1、
……
、130-n)访问的电子表格应用。在实施方式中,由电子表格系统110实施的电子表格应用可以是软件即服务(saas)电子表格应用。电子表格系统110和客户端130-1、......、130-n可以经由计算机网络160通信,该计算机网络160可以是任何合适的网络,包括局域网(lan)、广域网(wan)或互联网的任何组合。除了其它方面,电子表格系统110可以包括程序合成器120,该程序合成器120被配置成进行本公开的所选择的各方面以便自动合成程序,该程序包括电子表格编程语言中
的一个或多个函数,以用于使用客户端130-1、......、130-n中的一个或多个创建、修改和/或查看的电子表格中。
24.客户端130-1、......、130-n中的每一个可以是例如用户计算装置,该用户计算装置由用户用来经由电子表格应用用户界面访问电子表格应用,诸如由电子表格系统110例如通过网络浏览器提供的saas电子表格应用。在示例中,客户端130-1、
……
、130-n可以是与个人或实体或组织(诸如企业(例如,财务机构、银行等)、非营利组织、俱乐部、大学、政府机构或使用电子表格应用的任何其它组织)相关联的用户计算装置。例如,企业可以运行电子表格应用程序来创建、修改和/或查看一个或多个电子表格以管理财务记录、企业记录、客户列表等。
25.在各种实施方式中,环境100可以包括客户端130-1、
……
、130-n可以经由计算机网络160或另一网络访问的电子表格语料库140-1、
……
、140-n。电子表格语料库140-1、......、140-n中的每一个可以包括由客户端130-1、......、130-n中的一个或多个,例如使用电子表格系统110创建的多个电子表格。在示例中,电子表格语料库140-1、
……
、140-n可以包括由与特定实体或组织相关联的客户端130-1、
……
、130-n中的一个或多个的用户创建、编辑或查看的电子表格集合。
26.作为示例,程序合成器120可以被配置成利用输入到电子表格中的一个或多个单元格中的数据,以便帮助客户端130-1、
……
、130-n自动合成程序,该程序包括电子表格编程语言中的一个或多个函数以用于电子表格中。例如,程序合成器120可以被配置成使得能够在无需任何人工干预的情况下自动合成包括电子表格编程语言中的一个或多个函数的程序,并且可选地,经由电子表格应用用户界面将自动合成程序的输出呈现给客户端130-1、
……
、130-n的用户,并且可选地,经由电子表格应用用户界面将自动合成程序本身呈现给客户端130-1、......、130-n的用户以进行审查和/或编辑。
27.在各种实施方式中,环境100可以包括外部数据源150-1、
……
、150-m,该外部数据源存储客户端130-1、
……
、130-n和/或电子表格系统110的程序合成器120可以经由计算机网络160或另一网络访问的数据。在实施方式中,外部数据源150-1、
……
、150-m中的数据可以用作对由程序合成器120自动合成的程序的输入。
28.图2是图示了根据本文中公开的实施方式的自动合成包括电子表格编程语言中的一个或多个函数的程序的示例方法200的流程图。为了方便起见,参考进行操作的系统描述了流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如电子表格系统110的一个或多个组件。此外,虽然方法200的操作以特定顺序示出,但这并不旨在作为限制。可以重新排序、省略或添加一个或多个操作。
29.在框210处,系统可以接收包括在电子表格中的(多个)单元格中提供的输入的(多个)示例。在实施方式中,在框210处,电子表格系统110的程序合成器120可以接收包括在电子表格中的第一单元格中提供的输入的第一示例。在示例中,电子表格系统110的程序合成器120可以响应于用户经由显示在客户端130-1、
……
、130-n中的一个上的电子表格应用用户界面在电子表格中的第一单元格(例如,b2)中提供姓氏作为输入而接收姓氏(例如,“lastnameone”)作为第一示例。
30.仍参考框210,电子表格系统110的程序合成器120可以可选地接收一个或多个附加示例,诸如包括在电子表格中的第二单元格中提供的输入的第二示例。在实施方式中,程
序合成器120可以接收任何数目的示例。在示例中,电子表格系统110的程序合成器120可以响应于用户经由显示在客户端130-1、
……
、130-n中的一个上的电子表格应用用户界面在电子表格中的第二单元格(例如,b3)中提供姓氏作为输入而接收另一姓氏(例如,“lntwo”)作为第二示例。
31.仍参考图2,在框220处,系统可以自动合成多个候选程序,该多个候选程序包括根据(多个)示例的(多个)候选程序集合。在实施方式中,在框220处,电子表格系统110的程序合成器120可以使用基于动态编程的搜索算法来自动合成根据在框210中接收到的第一示例的第一候选程序集合。在实施方式中,第一候选程序集合中的每个候选程序可以包括电子表格编程语言中的至少一个函数,并且在执行候选程序时,候选程序生成与第一示例匹配的输出。
32.仍参考框220,在实施方式中,每个候选程序在被执行时可以使用存储在电子表格中的一个或多个数据源单元格中的数据和/或来自外部数据源150-1、
……
、150-m中的一个或多个的数据作为程序输入数据。例如,在自动合成候选程序时,程序合成器120可以从外部数据源150-1、
……
、150-m中的一个或多个获得程序输入数据,然后使用程序输入数据作为对候选程序中的一个或多个的输入(例如,作为对候选程序中使用的电子表格编程语言中的一个或多个函数的输入)。在实施方式中,外部数据源可以包括企业知识库、数据库、其它电子表格、和/或任何其它数据源。在实施方式中,外部数据源150-1、
……
、150-m可以包括在与电子表格相关联并且包括对外部数据源150-1、
……
、150-m的引用(例如,路径、统一资源定位符、链路等)的外部数据源映射中。在实施方式中,程序合成器120可以使用基于采样的搜索技术来处理非常大的表和知识库。
33.在实施方式中,针对给定用户,由程序合成器120使用的外部数据源150-1、
……
、150-m能够包括(或限于)与用户的账户链接的企业知识库。在示例中,针对第一用户,程序合成器120能够使用组织的所有企业知识库,但针对第二用户,基于与用户的账户的链路,程序合成器120能够仅使用组织的企业知识库的子集。在实施方式中,与用户的账户的链路可以包括在外部数据源映射中和/或可以基于用户对数据库的许可/权限。
34.在实施方式中,程序合成器120能够首先搜索外部数据源150-1、
……
、150-m中包括的个人和/或企业数据库以识别或定位程序输入数据,并且在个人和/或企业数据库中未识别(定位)程序输入数据的情况下仅搜索外部数据源150-1、
……
、150-m中包括的其它通用数据库。
35.继续先前示例,电子表格系统110的程序合成器120可以自动合成第一候选程序集合,该第一候选程序集合生成与在框210处作为第一示例(“lastnameone”)接收到的姓氏匹配的输出。候选程序中的一个或多个可以使用存储在电子表格的另一单元格中的数据(例如,存储在单元格(例如,单元格a2)中的数据,该单元格位于将全名存储在与同第一示例对应的第一单元格相同的行中的列(例如,列a)中)作为程序输入数据。在示例中,可以将程序输入数据“firstnameone lastnameone”存储在单元格a2中。
36.第一候选程序集合中包括的第一候选程序可以是使用电子表格编程语言中的返回字符串长度的“len”函数的程序、使用电子表格编程语言中的返回字符串在文本中首次出现的位置的“find”函数的程序、以及使用电子表格编程语言中的从指定字符串的末尾返回子字符串的“right”函数的程序。例如,程序right(a2,len(a2)-find("",a2))可以包括
在框210处合成的第一候选程序集合中。当执行第一候选程序时,使用“firstnameone lastnameone”作为程序输入数据,返回“lastnameone”作为输出,因此第一候选程序生成与第一示例匹配的输出。
37.第一候选程序集合中包括的第二候选程序可以是使用电子表格编程语言中的“right”函数的程序。例如,程序right(a2,11)可以包括在框210处合成的第一候选程序集合中。当执行第二候选程序时,使用“firstnameone lastnameone”作为程序输入数据,返回“lastnameone”作为输出,因此第二候选程序生成与第一示例匹配的输出。
38.仍参考框220,在实施方式中,响应于电子表格系统110的程序合成器120在框210处接收到一个或多个附加示例,程序合成器120可以使用基于动态编程的搜索算法来自动合成根据附加示例中的每一个的附加候选程序集合。在实施方式中,程序合成器120可以合成与在框210处接收到的示例的数目匹配的若干候选程序集合。例如,由程序合成器120在框210处接收到第二示例的情况下,程序合成器120可以使用基于动态编程的搜索算法来自动合成根据在框210处接收到的第二示例的第二候选程序集合。附加地,由程序合成器120在框210处接收到第三示例的情况下,程序合成器120可以使用基于动态编程的搜索算法来自动合成根据在框210处接收到的第三示例的第三候选程序集合,依此类推。
39.继续先前示例,电子表格系统110的程序合成器120可以自动合成第二候选程序集合,该第二候选程序集合生成与在框210处作为第二示例接收到的姓氏(“lntwo”)匹配的输出。候选程序中的一个或多个可以使用存储在电子表格的另一单元格中的数据(例如,存储在单元格(例如,单元格a3)中的数据,该单元格位于将全名存储在与同第二示例对应的第二单元格相同的行中的列(例如,列a)中)作为程序输入数据。在示例中,可以将程序输入数据“fntwo lntwo”存储在单元格a3中。
40.第二候选程序集合中包括的第一候选程序可以是使用电子表格编程语言中的返回字符串长度的“len”函数的程序、使用电子表格编程语言中的返回字符串在文本中首次出现的位置的“find”函数的程序、以及使用电子表格编程语言中的从指定字符串的末尾返回子字符串的“right”函数的程序。例如,程序right(a3,len(a3)-find("",a3))可以包括在框210处合成的第二候选程序集合中。当执行第一候选程序时,使用“fntwo lntwo”作为程序输入数据,返回“lntwo”作为输出,因此第二候选程序集合中包括的第一候选程序生成与第二示例匹配的输出。
41.第二候选程序集合中包括的第二候选程序可以是使用电子表格编程语言中的“right”函数的程序。例如,程序right(a3,5)可以包括在框210处合成的第二候选程序集合中。当执行第二候选程序时,使用“fntwo lntwo”作为程序输入数据,返回“lntwo”作为输出,因此第二候选程序集合中包括的第二候选程序生成与第二示例匹配的输出。
42.仍参考框220,在实施方式中,电子表格系统110的程序合成器120可以合成候选程序,其中函数数目随着在框210处接收到的示例数目的增加而逐渐增多。在示例中,在框210处仅接收一个示例的情况下,程序合成器120可以在合成候选程序时仅使用left、right以及mid函数,但在框210处接收两个示例的情况下,程序合成器120可以在合成候选程序时使用if和情况变换函数。
43.仍参考框220,在实施方式中,电子表格系统110的程序合成器120在自动合成包括根据(多个)示例的(多个)候选程序集合的多个候选程序时可以确定示例的数据类型,并且
避免执行具有与示例的数据类型不匹配的输出数据类型的程序。在示例中,程序合成器120可以将第一示例的数据类型确定为数值数据类型,并且程序合成器120可以避免执行具有与数值数据类型不匹配的输出数据类型的程序。在另一示例中,程序合成器120可以将第一示例的数据类型确定为日期数据类型,并且程序合成器120可以避免执行具有与日期数据类型不匹配的输出数据类型的程序。
44.仍参考框220,在实施方式中,电子表格系统110的程序合成器120在自动合成包括根据(多个)示例的(多个)候选程序集合的多个候选程序时可以从电子表格中的数据源单元格或从外部数据源150-1、
……
、150-m中的一个获得程序输入数据,确定程序输入数据的数据类型,并且避免执行具有与程序输入数据的数据类型不匹配的输入数据类型的程序。
45.仍参考框220,在实施方式中,电子表格系统110的程序合成器120在自动合成包括根据(多个)示例的(多个)候选程序集合的多个候选程序时可以确定可接受的输出数据值的范围(例如针对月中的一天为1到31),并且避免执行具有落在可接受的数据输出值的范围之外的输出数据值的程序。
46.仍参考框220,在实施方式中,电子表格系统110的程序合成器120可以获得电子表格语料库140-1、
……
、140-n中的一个或多个,并且分析电子表格语料库140-1、
……
、140-n中的一个或多个以获得多个程序习语(例如,预定义程序),每个程序习语包括电子表格编程语言中的多个函数。在其它实施方式中,电子表格系统110的程序合成器120可以分析一种或多种在线资源(例如,网站、教程、外部数据源150-1、
……
、150-m中的一个或多个等)以获得多个程序习语。在实施方式中,在自动合成包括根据(多个)示例的(多个)候选程序集合的多个候选程序时,程序合成器120可以自动合成附加候选程序,该附加候选程序包括候选程序集合中的每一个中的至少一个程序习语并且可选地包括电子表格编程语言中的一个或多个附加函数。在示例中,程序合成器120可以自动合成根据第一示例的第一候选程序集合中的附加候选程序,其中附加候选程序中的每一个在被执行时生成与第一示例匹配的输出。
47.仍参考框220,在实施方式中,响应于由电子表格系统110的程序合成器120在框210处接收到一个或多个附加示例,并且在合成根据在框210处接收到的示例中的每一个的候选程序集合之后,程序合成器120可以移除不包括在所有候选程序集合中的候选程序。例如,如果程序合成器120在框210处接收到两个示例,那么程序合成器120可以移除不包括在根据第一示例的第一候选程序集合和根据第二示例的第二候选程序集合这两者中的候选程序。同样,如果程序合成器120在框210处接收到三个示例,那么程序合成器120可以移除不包括在根据第一示例的第一候选程序集合、根据第二示例的第二候选程序集合、以及根据第三示例的第三第二候选程序集合中的每一个中的候选程序。
48.仍参考框220,在实施方式中,为了确定特定候选程序是否包括在所有候选程序集合中,程序合成器120可以确定仅在用于程序输入数据的单元格方面不同的候选程序是相同候选程序。例如,程序合成器120可以确定第一候选程序集合中包括的候选程序right(a2,len(a2)-find("",a2))与第二候选程序集合中包括的候选程序right(a3,len(a3)-find("",a3))相同。
49.仍参考框220,在其它实施方式中,程序合成器120可以在确定特定候选程序是否包括在所有候选程序集合中之前概括候选程序中使用的程序输入。例如,程序合成器120可
以概括候选程序right(a2,len(a2)-find("",a2))到right(a[当前行],len(a[当前行])-find("",a[当前行])),并且可以概括候选程序right(a3,len(a3)-find("",a3))到right(a[当前行],len(a[当前行])-find("",a[当前行])),其中[当前行]是电子表格中的当前行的占位符。
[0050]
继续先前示例,电子表格系统110的程序合成器120可以确定候选程序right(a[当前行],len(a[当前行])-find("",a[当前行]))是存在于第一候选程序集合和第二候选程序集合这两者中的唯一候选程序,然后从在框220处生成的候选程序集合移除所有其它候选程序。在其它实施方式中,程序合成器120可以确定候选程序right(a[当前行],11)和right(a[当前行],5)不存在于第一候选程序集合和第二候选程序集合这两者中,然后从在框220处生成的候选程序集合移除这些候选程序。
[0051]
仍参考图2,在框230处,系统可以对多个候选程序进行排名。在实施方式中,在框230处,电子表格系统110的程序合成器120可以对在框220处自动合成的多个候选程序进行排名。在实施方式中,程序合成器120可以将具有更加频繁使用的函数的候选程序排名高于具有不太频繁使用的函数的候选程序(例如,基于历史电子表格数据)。
[0052]
仍参考框230,在示例中,针对在框220中生成的在从在框220处生成的候选程序集合移除了不存在于所有集合中的任何候选程序之后剩余的候选程序中的每一个,程序合成器120可以将分数分配给候选程序中的(多个)函数的每一个。在示例中,可以将相对较高的分数分配给候选程序中在电子表格语料库140-1、
……
、140-n中的一个或多个中更加频繁使用的函数,并且将相对较低的分数分配给候选程序中在电子表格语料库140-1、
……
、140-n中的一个或多个中不太频繁使用的函数。程序合成器120然后可以针对候选程序中的每一个,基于分配给候选程序中的(多个)函数的每一个的分数来确定候选程序的总分数。例如,程序合成器120可以通过对分配给候选程序中(多个)函数中的每一个的分数求平均值来确定总分数。可替代地,程序合成器120可以基于分配给候选程序中(多个)函数中的每一个的分数中的最低分数来确定总分数。程序合成器120然后可以基于总分数对多个候选程序进行排名。
[0053]
仍参考框230,在其它实施方式中,程序合成器120可以将使用函数的总数较少的候选程序排名在使用函数的总数较多的候选程序前面。在其它实施方式中,程序合成器120可以将使用嵌套函数级别的数目较少的候选程序的排名在使用嵌套函数级别的数目较大的候选程序前面。在其它实施方式中,程序合成器120可以将使用特定用户或组织先前使用的函数的候选程序排名在使用特定用户或组织先前未使用的函数的候选程序前面。在其它实施方式中,程序合成器120可以基于分解输入和输出字符串的基于字符类别的令牌化机制对候选程序进行排名。在其它实施方式中,程序合成器120可以将产生令牌化输出的候选程序排名高于不产生令牌化输出的候选程序。
[0054]
仍参考框230,在其它实施方式中,程序合成器120可以基于程序输入数据源对候选程序进行排名。例如,程序合成器120可以将从组织内的电子表格或知识库获得程序输入数据的候选程序排名高于从通用知识库获得程序输入数据的候选程序。在另一示例中,程序合成器120可以将从更加频繁访问的源获得程序输入数据的候选程序排名高于从不太频繁访问的源获得程序输入数据的候选程序。在其它实施方式中,程序合成器120可以使用任何其它准则或准则的组合对在框220处生成的候选程序进行排名。
[0055]
仍参考图2,在框240处,系统可以与和(多个)示例相关联的电子表格中的(多个)单元格相关联地存储多个候选程序中排名最高的程序。在实施方式中,在框240处,电子表格系统110的程序合成器120可以与电子表格中的第一单元格(即,与在框210处接收到的第一示例相关联的单元格)相关联地存储在框230处的多个候选程序当中排名最高的候选程序。在实施方式中,在框240处,可以在显示在客户端130-1、
……
、130-n上的用户界面上显示关于自动合成程序(例如,关于在框230处确定的排名最高的程序)的提示,并且在框240处存储排名最高的程序可以响应于用户指示接受自动合成程序(例如,通过选择提示中的按钮或通过输入键盘快捷键)而进行。
[0056]
仍参考框240,在实施方式中,程序合成器120可以使在第一单元格(即,第一示例)中(例如,由用户)提供的输入被排名最高的程序替换。在实施方式中,虽然程序合成器120可以用排名最高的程序替换在第一单元格中提供的输入,但在第一单元格中显示的值(例如,在显示在客户端130-1、
……
、130-n上的用户界面上)可以保持不变,这是由于排名最高的程序的输出与先前(例如,由用户)在单元格中提供的输入匹配。
[0057]
继续先前示例,程序合成器120可以确定程序right(a[当前行],len(a[当前行])-find("",a[当前行]))为框230处排名最高的程序,并且程序合成器120可以与电子表格中第一单元格(即,b2,其为与在框210处接收到的第一示例相关联的单元格)相关联地存储程序right(a[当前行],len(a[当前行])-find("",a[当前行])),从而替换在第一单元格中提供的输入(“lastnameone”)。虽然用排名最高的程序right(a[当前行],len(a[当前行])-find("",a[当前行]))替换在第一单元格(即,b2)中提供的输入“lastnameone”,但在示例中,该程序可以输出“lastnameone”,因此在第一单元格中显示的值可以保持不变。
[0058]
仍参考框240,在实施方式中,响应于由电子表格系统110的程序合成器120在框210处接收到一个或多个附加示例,电子表格系统110的程序合成器120可以与电子表格中关联于附加示例的单元格相关联地存储在框230处多个候选程序当中排名最高的候选程序。例如,在程序合成器120在框210处接收到第二示例的情况下,程序合成器120可以与电子表格中第二单元格(即,与在框210处接收到的第二示例相关联的单元格)相关联地存储在框230处多个候选程序中排名最高的候选程序。
[0059]
仍参考框240,在实施方式中,程序合成器120可以使在电子表格中与附加示例(例如,第二示例等)相关联的单元格中(例如,由用户)提供的输入被排名最高的程序替换。在实施方式中,虽然程序合成器120可以用排名最高的程序替换在电子表格中与附加示例相关联的单元格中提供的输入,但在与附加示例相关联的单元格中显示的值(例如,在显示在客户端130-1、
……
、130-n上的用户界面上)可以保持不变,这是由于排名最高的程序的输出与先前(例如,由用户)在单元格中提供的输入匹配。
[0060]
仍参考图2,在框250处,系统可以确定电子表格中与关联于(多个)示例的(多个)单元格相关的(多个)附加单元格。在实施方式中,在框250处,电子表格系统110的程序合成器120可以确定电子表格中与关联于在框210处接收到的(多个)示例的(多个)单元格相关的一个或多个附加单元格。
[0061]
仍参考框250,在实施方式中,程序合成器120可以基于电子表格中的特定表的相同列中包括的单元格来确定一个或多个附加单元格,作为与示例相关联的单元格。在其它实施方式中,程序合成器120可以基于电子表格中的特定表的相同行中包括的单元格来确
定一个或多个附加单元格,作为与示例相关联的单元格。在其它实施方式中,程序合成器120可以使用任何其它准则(例如,电子表格中的列或行的标题或标签、现有数据等)来确定与关联于示例的单元格相关的一个或多个附加单元格。
[0062]
仍参考图2,在框260处,系统可以与电子表格中与关联于(多个)示例的(多个)单元格相关的(多个)附加单元格相关联地存储排名最高的程序。在实施方式中,在框260处,电子表格系统110的程序合成器120可以与在框250处确定的(多个)附加单元格中的每一个相关联地存储在框230处多个候选程序中排名最高的候选程序。
[0063]
图3是图示了根据本文公开的实施方式的自动合成包括电子表格编程语言中的一个或多个函数的程序的示例方法300的流程图。为了方便起见,参考进行操作的系统描述了流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如电子表格系统110的一个或多个组件。此外,虽然方法300的操作以特定顺序示出,但这并不旨在作为限制。可以重新排序、省略或添加一个或多个操作。
[0064]
在框310处,系统可以接收包括在电子表格中的第一单元格中提供的用户输入的第一示例和包括在电子表格中的第二单元格中提供的用户输入的第二示例。在实施方式中,在框310处,电子表格系统110的程序合成器120可以接收包括在电子表格中的第一单元格中提供的使用输入的第一示例和包括在电子表格中的第二单元格中提供的用户输入的第二示例。
[0065]
仍参考图3,在框320处,系统可以自动合成根据第一示例的第一程序集合和根据第二示例的第二程序集合。在实施方式中,在框320处,电子表格系统110的程序合成器120可以使用基于动态编程的搜索算法来自动合成根据在框310处接收到的第一示例的第一程序集合,并且自动合成根据在框310处接收到的第二示例的第二程序集合。在实施方式中,在执行程序时由程序合成器120自动合成的第一程序集合中的每个程序生成与在框310处接收到的第一示例匹配的输出,并且在执行程序时由程序合成器120自动合成的第二程序集合中的每个程序生成与在框310处接收到的第二示例匹配的输出。在实施方式中,第一程序集合中的程序和第二程序集合中的程序可以使用存储在电子表格中的一个或多个单元格中的数据和/或来自外部数据源150-1、
……
、150-m中的一个或多个的数据作为程序输入数据。
[0066]
仍参考图3,在框330处,系统可以通过确定第一程序集合和第二程序集合的交集来生成候选程序。在实施方式中,在框330处,电子表格系统110的程序合成器120可以通过确定在框320处自动合成的第一程序集合和第二程序集合的交集来生成候选程序。在实施方式中,在确定第一程序集合和第二程序集合的交集之前,程序合成器120可以概括程序中(例如,在第一程序集合和第二程序集合中)使用的程序输入(例如,如相对于框220所描述的)。在实施方式中,程序合成器120然后可以将存在于第一程序集合和第二程序集合这两者中的程序确定为交集。
[0067]
仍参考图3,在框340处,系统可以对候选程序进行排名。在实施方式中,在框340处,电子表格系统110的程序合成器120可以对在框330处生成的候选程序进行排名。在实施方式中,程序合成器120可以基于相对于框230描述的任何准则或基于任何其它准则或准则的组合对候选程序进行排名。
[0068]
仍参考图3,在框350处,系统可以确定候选程序中的排名最高的程序。在实施方式
中,在框350处,电子表格系统110的程序合成器120可以确定在框340处排名的候选程序中排名最高的程序。
[0069]
仍参考图3,在框360处,系统可以用排名最高的程序替换在电子表格中的第一单元格中提供的用户输入和在电子表格中的第二单元格中提供的用户输入。在实施方式中,在框360处,电子表格系统110的程序合成器120可以用在框350处确定的排名最高的程序替换在框310处接收到的、在电子表格中的第一单元格中提供的用户输入以及在框310处接收到的、在电子表格中的第二单元格中提供的用户输入。
[0070]
仍参考框360,在实施方式中,虽然程序合成器120可以用排名最高的程序替换在第一单元格中提供的用户输入,但在第一单元格中显示的值(例如,在显示在客户端130-1、
……
、130-n上的用户界面上)可以保持不变,这是由于排名最高的程序的输出与先前(例如,由用户)在第一单元格中提供的输入匹配。附加地,在实施方式中,虽然程序合成器120可以用排名最高的程序替换在第二单元格中提供的用户输入,但在第二单元格中显示的值(例如,在显示在客户端130-1、
……
、130-n上的用户界面上)可以保持不变,这是由于排名最高的程序的输出与先前(例如,由用户)在第二单元格中提供的输入匹配。
[0071]
仍参考图3,在框370处,系统可以确定电子表格中与第一单元格和第二单元格相关的(多个)附加单元格。在实施方式中,在框370处,电子表格系统110的程序合成器120可以确定电子表格中与关联于在框310处接收到的第一示例的第一单元格和关联于在框310处接收到的第二示例的第二单元格相关的(多个)附加单元格。
[0072]
仍参考图3,在框380处,系统可以与电子表格中与第一单元格和第二单元格相关的(多个)附加单元格相关联地存储排名最高的程序。在实施方式中,在框380处,电子表格系统110的程序合成器120可以与电子表格中与在框370处确定的第一单元格和第二单元格相关的(多个)附加单元格相关联地存储排名最高的程序。
[0073]
图4描绘了可以如何自动合成包括电子表格编程语言中的一个或多个函数的程序的示例。在底部处,描绘了图形用户界面(“gui”)400,该图形用户界面可以由电子表格应用用户用于查看、创建或编辑电子表格(例如,“电子表格1”)。在该示例中,电子表格1包括全名列(a)和姓氏列(b)。全名列可以包括各种全名。
[0074]
在一些实施方式中,响应于用户将数据(例如,姓氏,诸如“lastnameone”)输入到第二行420中的姓氏列(b)中,电子表格系统110的程序合成器120可以接收由用户在电子表格中的第一单元格(b2)中提供的输入作为第一示例(例如,如相对于图2的框210所描述)。附加地,在一些实施方式中,响应于用户将数据(例如,姓氏,诸如“lntwo”)输入到第三行430中的姓氏列(b)中,电子表格系统110的程序合成器120可以接收由用户在电子表格中的第二单元格(b3)中提供的输入作为第二示例(例如,如相对于图2的框210所描述)。
[0075]
仍参考图4,在一些实施方式中,在自动合成多个候选程序(例如,如相对于图2的框220所描述)并且对多个候选程序进行排名(例如,如相对于图2的框230所描述)之后,电子表格系统110的程序合成器120可以与电子表格中的第一单元格(b2)和第二单元格(b3)相关联地存储排名最高的程序(例如,如相对于图2的框240所描述)。在实施方式中,响应于接收到对单元格(诸如第二单元格(b3))的选择,可以在gui 400中的公式栏410中显示与单元格相关联地存储排名最高的程序(例如,=right(a3,len(a3)

find("",a3)))。
[0076]
仍参考图4,在一些实施方式中,电子表格系统110的程序合成器120可以确定电子
表格中与关联于示例(即,b2和b3)的单元格相关的附加单元格(即,第三行440中的b4和第四行450中的b5)(例如,如相对于图2的框250所描述)。在一些实施方式中,在确定电子表格中与关联于示例的单元格相关的附加单元格之后,电子表格系统110的程序合成器120可以与附加单元格(即,第三行440中的b4和第四行450中的b5)相关联地存储排名最高的程序(例如,如相对于图2的框260所描述)。
[0077]
图4的场景仅用于说明性目的。可以使用本文描述的技术针对任何数目的应用自动合成程序。
[0078]
图5是可以可选地用于进行本文描述的技术的一个或多个方面的示例计算装置510的框图。计算装置510通常包括经由总线子系统512与若干外围装置进行通信的至少一个处理器514。这些外围装置可以包括存储子系统524,其包括例如存储器子系统525和文件存储子系统526,用户界面输出装置520、用户界面输入装置522以及网络接口子系统516。输入和输出装置允许与计算装置510的用户交互。网络接口子系统516提供到外部网络的接口并且耦合到其它计算装置中的对应接口装置。
[0079]
用户界面输入装置522可以包括键盘、定点装置(诸如,鼠标、轨迹球、触摸板或图形平板)、扫描仪、包含到显示器中的触摸屏、音频输入装置(诸如,语音识别系统、麦克风)、和/或其它类型的输入装置。一般而言,术语“输入装置”的使用旨在包括将信息输入到计算装置510中或通信网络上的所有可能类型的装置和方式。
[0080]
用户界面输出装置520可以包括显示子系统、打印机、传真机或非视觉显示器(诸如音频输出装置)。显示子系统可以包括阴极射线管(crt)、平板装置(诸如,液晶显示器(lcd))、投影装置、或用于创建可视图像的某一其它机制。显示子系统还可以诸如经由音频输出装置来提供非视觉显示器。一般而言,术语“输出装置”的使用旨在包括将信息从计算装置510输出到用户或另一机器或计算装置的所有可能类型的装置和方式。
[0081]
存储子系统524存储提供本文描述的模块中的一些或全部的功能性的编程和数据构造。例如,存储子系统524可以包括进行图2和图3的方法的所选择的各方面并且实施图1描绘的各种组件的逻辑。
[0082]
这些软件模块通常由处理器514单独或与其它处理器组合执行。存储子系统524中包括的存储器子系统525能够包括若干存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)530和存储固定指令的只读存储器(rom)532。文件存储子系统526能够为程序和数据文件提供永久性存储装置,并且可以包括硬盘驱动器、软盘驱动器连同相关联的可移动介质、cd-rom驱动器、光学驱动器或可移动介质盒。实施某些实施方式的功能性的模块可以由文件存储子系统526存储在存储子系统524中,或存储在可由(多个)处理器514访问的其它机器中。
[0083]
总线子系统512提供用于让计算装置510的各种组件和子系统按预期彼此通信的机制。尽管将总线子系统512示意性地示出为单条总线,但总线子系统的替代实施方式可以使用多条总线。
[0084]
计算装置510能够具有不同类型,包括工作站、服务器、计算集、刀片式服务器、服务器或任何其它数据处理系统或计算装置。由于计算机和网络的不断变化的性质,因此对图5描绘的计算装置510的描述仅旨在作为用于说明一些实施方式的目的的具体示例。计算装置510具有比图5描绘的计算装置更多或更少的组件的许多其它配置是可能的。
[0085]
通过提供用于自动合成程序的方法和系统,实施方式可以解决过多的数据输入、客户端装置使用以及相同数据在电子表格中的多个地方中重复的问题。特定地,一些实施方式可以通过提供用于自动合成程序的方法和系统来改进计算机的功能,这些程序包括电子表格编程语言中的至少一个函数,并且在被执行时生成与一个或多个用户提供的输出示例匹配的输出。因此,通过使用改进计算机相关的技术的规则,实施方式允许计算机进行先前不能由计算机进行的功能。另外,实施方式使用根据定义而根植于计算机技术(例如电子表格编程语言、电子表格用户界面等)的技术。
[0086]
虽然本文中已经描述和说明了若干实施方式,但可以利用用于进行功能和/或获得结果和/或本文描述的优点中的一个或多个的各种其它构件和/或结构,并且这种变型和/或修改中的每一个都被认为在本文描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料以及配置意图作为例示性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的一个或多个特定应用。本领域的技术人员将认识到或能够仅使用常规实验来确证本文描述的具体实施方式的许多等效物。因此,应理解,前述实施方式仅通过示例的方式呈现,并且在所附权利要求书及其等效物的范围内,可以以不同于具体描述和要求保护的方式来实践实施方式。本公开的实施方式涉及本文描述的每个单独特征、系统、物品、材料、套件和/或方法。此外,两个或更多个这种特征、系统、物品、材料、套件和/或方法的任何组合在这种特征、系统、物品、材料、套件和/或方法并非相互矛盾的情况下被包括在本公开的范围内。

技术特征:


1.一种由一个或多个处理器实施的方法,所述方法包括:接收包括在电子表格中的第一单元格中提供的输入的第一示例;自动合成多个候选程序,所述多个候选程序包括根据所述第一示例的第一候选程序集合,其中,所述第一候选程序集合中的每个候选程序包括电子表格编程语言中的至少一个函数,并且当执行所述候选程序时,所述候选程序生成与所述第一示例匹配的输出;对所述多个候选程序进行排名;以及与所述电子表格中的所述第一单元格相关联地存储所述多个候选程序中的排名最高的程序。2.根据权利要求1所述的方法,进一步包括接收包括在所述电子表格中的第二单元格中提供的输入的第二示例,以及其中,自动合成的所述多个候选程序进一步包括根据所述第二示例的第二候选程序集合,其中,所述第二候选程序集合中的每个候选程序包括所述电子表格编程语言中的至少一个函数,并且当执行所述候选程序时,所述候选程序生成与所述第二示例匹配的输出。3.根据权利要求2所述的方法,进一步包括:在对所述多个候选程序进行排名之前,从所述多个候选程序移除所述第一候选程序集合和所述第二候选程序集合两者中未包括的候选程序。4.根据前述权利要求中的任一项所述的方法,进一步包括:确定所述电子表格中与所述第一单元格相关的至少一个附加单元格;以及与所述电子表格中与所述第一单元格相关的所述至少一个附加单元格中的每一个相关联地存储所述排名最高的程序。5.根据前述权利要求中的任一项所述的方法,进一步包括从所述电子表格中的至少一个数据源单元格获得程序输入数据,其中,所述第一候选程序集合中的至少一个候选程序在被执行时使用从所述电子表格中的所述至少一个数据源单元格获得的所述程序输入数据作为输入。6.根据前述权利要求中的任一项所述的方法,进一步包括从至少一个外部数据源获得程序输入数据,其中,所述第一候选程序集合中的至少一个候选程序在被执行时使用从所述至少一个外部数据源获得的所述程序输入数据作为输入。7.根据权利要求6所述的方法,其中,所述至少一个外部数据源包括企业知识库。8.根据权利要求6所述的方法,其中,所述至少一个外部数据源包括在外部数据源映射中,所述外部数据源映射与所述电子表格相关联并且包括对多个外部数据源的引用。9.根据前述权利要求中的任一项所述的方法,其中,在自动合成包括根据所述第一示例的所述第一候选程序集合的所述多个候选程序时:确定所述第一示例的数据类型,以及避免执行具有与所述第一示例的所述数据类型不匹配的输出数据类型的程序。10.根据权利要求9所述的方法,其中:将所述第一示例的所述数据类型确定为数值数据类型或日期数据类型,以及避免执行具有与所述数值数据类型或所述日期数据类型不匹配的输出数据类型的程序。
11.根据前述权利要求中的任一项所述的方法,其中,在自动合成包括根据所述第一示例的所述第一候选程序集合的所述多个候选程序时:从所述电子表格中的数据源单元格或从外部数据源获得程序输入数据,确定所述程序输入数据的数据类型,以及避免执行具有与所述程序输入数据的所述数据类型不匹配的输入数据类型的程序。12.根据前述权利要求中的任一项所述的方法,其中,在自动合成包括根据所述第一示例的所述第一候选程序集合的所述多个候选程序时:确定可接受的输出数据值的范围,以及避免执行具有落在所述可接受的输出数据值的范围之外的输出数据值的程序。13.根据前述权利要求中的任一项所述的方法,其中,在对所述多个候选程序进行排名时,具有更加频繁使用的函数的候选程序的排名高于具有不太频繁使用的函数的候选程序。14.根据权利要求13所述的方法,其中,对所述多个候选程序进行排名包括:针对所述多个候选程序中的每一个候选程序:基于所述函数的使用频率将分数分配给所述候选程序中的多个函数中的每一个函数;以及基于分配给所述候选程序中的所述多个函数中的每一个函数的所述分数来确定所述候选程序的总分数;以及基于所述总分数对所述多个候选程序进行排名。15.根据权利要求1至12中的任一项所述的方法,其中,在对所述多个候选程序进行排名时,使用较少总数目的函数的候选程序的排名在使用较大总数目的函数的候选程序前面。16.根据权利要求1至12中的任一项所述的方法,其中,在对所述多个候选程序进行排名时,使用较少数目的嵌套函数级别的候选程序的排名在使用较大数目的嵌套函数级别的候选程序前面。17.根据前述权利要求中的任一项所述的方法,进一步包括:获得电子表格的语料库;分析所述电子表格的语料库以获得多个程序习语,每个程序习语包括所述电子表格编程语言中的多个函数;以及自动合成根据所述第一示例的所述第一候选程序集合中的附加候选程序,其中:所述附加候选程序中的每一个包括所述多个程序习语中的至少一个,并且当执行所述候选程序时,所述候选程序生成与所述第一示例匹配的输出;以及所述附加候选程序中的一个或多个进一步包括所述电子表格编程语言中的至少一个函数。18.根据前述权利要求中的任一项所述的方法,进一步包括:分析至少一个在线资源以获得多个程序习语,每个程序习语包括所述电子表格编程语言中的多个函数;以及自动合成根据所述第一示例的所述第一候选程序集合中的附加候选程序,其中,所述
附加候选程序中的每一个包括所述多个程序习语中的至少一个,并且当执行所述候选程序时,所述候选程序生成与所述第一示例匹配的输出。19.一种由一个或多个处理器实施的方法,所述方法包括:接收包括在电子表格中的第一单元格中提供的用户输入的第一示例和包括在所述电子表格中的第二单元格中提供的用户输入的第二示例;自动合成根据所述第一示例的第一程序集合和根据所述第二示例的第二程序集合,其中,所述第一程序集合中的每个程序在所述程序被执行时生成与所述第一示例匹配的输出,并且所述第二程序集合中的每个程序在所述程序被执行时生成与所述第二示例匹配的输出;通过确定所述第一程序集合和所述第二程序集合的交集来生成多个候选程序;对所述多个候选程序进行排名;确定所述多个候选程序中的排名最高的程序;以及用所述排名最高的程序替换在所述电子表格中的所述第一单元格中提供的所述用户输入和在所述电子表格中的所述第二单元格中提供的所述用户输入。20.一种包括指令的计算机程序产品,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至19中的任一项所述的方法。21.一种包括指令的计算机可读存储介质,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至19中的任一项所述的方法。22.一种系统,所述系统包括处理器、计算机可读存储器、一个或多个计算机可读存储介质以及共同地存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令能够执行以执行根据权利要求1至19中的任一项所述的方法。

技术总结


本文描述了用于自动合成包括电子表格编程语言中的一个或多个函数的程序的技术。一种方法包括:接收包括在电子表格中的第一单元格中提供的输入的第一示例;自动合成多个候选程序,所述候选程序包括根据所述第一示例的第一候选程序集合,其中所述第一候选程序集合中的每个候选程序包括电子表格编程语言中的至少一个函数,并且当执行所述候选程序时,所述候选程序生成与所述第一示例匹配的输出;对所述多个候选程序进行排名;以及与所述电子表格中的所述第一单元格相关联地存储所述多个候选程序中的排名最高的程序。程序中的排名最高的程序。程序中的排名最高的程序。


技术研发人员:

里沙巴

受保护的技术使用者:

谷歌有限责任公司

技术研发日:

2021.06.09

技术公布日:

2022/12/29

本文发布于:2024-09-23 18:27:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/49390.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   多个   示例   电子表格
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议