Kale: 一个转换安全的电子表格系统
摘要
本文介绍了Kale,这是一个电子表格原型,通过限制引用类型来防止因引用表结构变化导致的错误,用户研究表明其在减少错误方面效果显著。
<p><a href="https://lobste.rs/s/tkrcrg/kale_transformation_safe_spreadsheet">评论</a></p>
查看缓存全文
缓存时间: 2026/09/01 11:47
# Kale:一个支持结构转换的电子表格系统 来源:https://arxiv.org/html/2608.26345 Jacob Yim 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:加州大学圣地亚哥分校 Ajinkya Bokade 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:Salesforce公司 Mounika Padala 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:Apple公司 Julia Epshtein 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:马萨诸塞大学阿默斯特分校 Priyanka Bhatia 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:Meta公司 Piyush Chauhan 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:Eukarya公司 Simran Gill 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:Apple公司 Aniket Gupta 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:加州大学圣地亚哥分校 Grishma Gurbani 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:加州大学圣地亚哥分校 Vaibhav Khetan 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:Apple公司 Arushi Munjal 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:加州大学圣地亚哥分校 Jeffery Tung 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:加州大学圣地亚哥分校 Joanna Yang 邮箱:[[email protected]](mailto:[email protected]) 隶属机构:加州大学圣地亚哥分校 ###### 摘要 电子表格公式可以引用任意大小的矩形区域。当用户更改被引用表格的结构时,电子表格系统会更新引用以指向新的区域。不幸的是,这个新区域可能与用户的预期不同,从而在电子表格中引入错误。我们描述了一项用户研究表明,标准的引用语义容易出错,给用户带来显著风险。我们介绍了Kale,一个原型系统,通过限制可表达的引用类型来消除此类错误引入的风险。我们证明Kale可以被用户有效地用于完成在传统电子表格系统中容易出错的任务。最后,我们描述了一项语料库研究,评估Kale中的引用限制可能对用户产生的影响程度。 ###### 关键词 电子表格,电子表格错误,终端用户编程 ## 1 引言 电子表格很可能是世界上最流行的编程语言(Scaffidi等人,2005),全球可能有数亿用户(Gislason,2018)。它们在几乎所有行业(包括商业、金融、经济和科学)中都用于至关重要的工作。不幸的是,许多电子表格存在错误,可能导致用户得出不正确的结论。多项研究表明,大约95%的电子表格包含错误(Panko,2015)。电子表格错误已经导致了重大的经济和科学成本。例如,摩根大通2012年的“伦敦鲸”灾难就源于一个电子表格错误,给该公司造成了62亿美元的损失(摩根大通公司,2013)。大约五分之一包含补充Excel基因列表的遗传学论文被发现包含错误的基因名称转换(Ziemann等人,2016)。 大多数先前关于电子表格错误的研究都集中在输入错误公式的可能性上。在这项工作中,我们为电子表格错误的*不同*原因提供了经验证据,据我们所知,此前尚未对此进行研究。当被公式引用的电子表格表格在结构上被修改时(例如,插入一行),引用公式会被电子表格系统自动更新。例如,如果一个公式引用表格的单元格B2,并且用户在表格顶部插入一行,则该公式随后会更新为引用单元格B3。这种行为旨在保留公式的语义,因为之前位于单元格B2中的任何数据现在将位于单元格B3中。但电子表格引用是引用单元格中的*数据*,还是引用单元格的*几何位置*?在前面的例子中,它们引用的是数据;如果它们引用的是几何位置,它们在更改后仍应指向相同的坐标。 考虑公式`SUM(B2:C3)`,它引用一个2x2的单元格矩形,假设用户将单元格C3拖放到一个新位置。公式保持不变,但由于单元格C3现在为空,其计算结果可能不同。在这种情况下,引用显然指向*几何位置*,而非数据。我们将此问题称为*引用不稳定性*:在电子表格结构更改时,引用不稳定,这可能导致先前正确的电子表格中引入错误。 请参阅图注 图1:Kale在我们的工资单任务中的视图。底部显示了一个电子表格表格;上方是显示可用工作表的标签页和一组可用操作的按钮。 Kale(如图1所示)是一种新颖的原型电子表格系统,通过重新构想电子表格引用的语法和语义来提高安全性。在Kale中,引用可以指向单个单元格、整行或整列,但不能指向跨行或列的区域,也不能指向任意的矩形范围。通过这样做,Kale避免了传统电子表格系统中存在的根本性引用不稳定性问题。Kale提供了一个关键的安全属性,而传统电子表格不具备此属性:*通过结构转换保留被引用的数据*。也就是说,当插入、删除或排列行或列时,引用受影响单元格中数据的公式在转换后将继续引用相同的数据。此外,当公式本身被移动时,它将引用与之前相同的数据,或者根据公式作者的意图引用相同的相对偏移量。此属性在传统电子表格中并不成立。 Kale旨在消除传统电子表格系统带来的风险:转换可能会通过破坏公式作者关于公式引用哪些数据的假设而在公式中引入错误。每次转换都存在风险,我们将其索引为R1、R2等。 **R1:插入操作与区域相邻会产生歧义。** 当在被引用区域的紧邻上方或下方插入行或列时,引用是否应更新以包括新行或列可能并不明确。如果新行或列代表与附近项类似的另一个实例,则未包含新项即表示错误。Sheets、Excel和Numbers不会扩展引用以包含新的相邻行,但Excel会在引用单元格中发出警告。 **R2:排序操作会排列被引用的数据。** 排序会排列表格中的行,而不会更新对已排序表格的任何引用。如果作者意图让公式引用排序操作移动的某行中的数据,那么排序就会破坏该公式。 **R3:移动单元格会更改引用。** 移动行或列会导致以被移动行或列为起点或终点的引用被更新。例如,如果一个公式引用`B2:B3`,用户将第3行移动到第4行下方,则该公式现在引用`B2:B5`,突然包含了之前位于索引4的那一行中的数据。在Excel中,此操作通过剪切/粘贴触发;在Numbers和Sheets中,则通过拖放触发。 **R4:名称并不总是随数据一起移动。** 单元格可以被命名。当发生结构更改时,名称是否会随之移动可能并不明确。在Excel和Sheets中,当单元格被剪切和粘贴时,名称会随值一起移动,但在单元格被排序时则不会。 **R5:引用默认为相对引用。** 当公式单元格被复制粘贴或拖动填充时,任何生成的公式都会自动调整为其新位置。例如,如果单元格B1中的一个公式引用单元格A1(其左侧的单元格),并被向下拖动填充到单元格B2,则新公式现在引用单元格A2。如果作者意图让这个新公式引用与被复制公式*相同*的单元格,这种行为就会创建一个错误。图2展示了一个演示此错误变体的场景。要避免此错误,作者必须显式编写绝对引用;在Excel、Sheets和Numbers中,这是通过使用美元符号`$`来标记绝对行和列引用来完成的(例如`$A$1`)。 请参阅图注 (a) 用户使用单元格A2中的汇率将单元格B2中的值转换为CAD。 请参阅图注 (b) 用户向下拖动填充公式。 请参阅图注 (c) 生成公式的值意外为0。 请参阅图注 (d) 仔细检查后,用户发现新公式不再引用预期的汇率。 图2:在Excel中,默认情况下引用是相对的,当用户意图使用绝对引用时会导致错误。 令人困惑的是,尽管传统电子表格区分*相对*和*绝对*引用,但这种区分并未解决风险R1-R4。在Excel、Sheets和Numbers中,绝对与相对的区别*仅*影响通过复制粘贴或拖动填充创建的公式所引用的单元格;它对当被引用表格的结构被修改时公式如何更新没有影响。例如,如果一个公式包含绝对引用`$B$2`,并且该公式被复制粘贴到其原始位置下方的一个单元格,则该公式仍会引用`$B$2`。相反,如果引用是相对的(`B2`),则它随后会引用`B3`。但当第2行被拖放到新位置时,绝对引用和相对引用的处理方式相同:原始公式可能随后引用`$B$7`(例如,如果数据的新位置是第7行)。在Kale中,*绝对*和*相对*的术语被重新定义,以便在表格重组时捕获引用应有的语义。 我们描述了一项用户研究,比较了Kale与传统电子表格。我们要求参与者使用Google Sheets或Kale完成四项任务。每项任务与第1节中描述的风险子集相关联。该研究的重点是评估当参与者被分配可能破坏公式的任务时,他们是否确实以引入错误的方式转换了他们的文档。对于确实引入了错误的参与者,我们评估他们是否注意到并能成功修复这些错误。 由于Kale限制了可表达的引用类型,因此存在一种可能性,即电子表格通常用于解决的某些常见问题无法在Kale中解决。我们描述了一项评估Kale限制影响的研究,方法是手动移植EUSES电子表格语料库中随机选择的60个电子表格。我们成功地将所有电子表格转换为使用Kale的引用方法。尽管如此,由于这些限制,我们认为Kale是一项设计探索,展示了控制不安全引用的潜在益处;未来放宽其中一些限制的系统在实际使用中可能更具可用性。 本文描述了以下贡献: 1. 一个新电子表格系统Kale,它通过新的电子表格引用语法和语义,防止用户引入上述错误(第2节)。 2. 一项用户研究(第4节),表明当传统电子表格(Google Sheets)的用户重构文档时,他们经常会引入潜在的电子表格错误。相比之下,用户更常能使用Kale成功完成这些任务。 3. 一项语料库研究(第5节),表明大多数现有电子表格可以在Kale中表示。 ## 2 Kale电子表格系统 ### 2.1 设计 Kale的设计旨在防止由电子表格结构更改引起的引用不稳定性所产生的错误。与传统电子表格不同,Kale不允许引用任意矩形范围。相反,引用可以指向单个单元格、整列或整行。与具有极大网格的传统电子表格系统不同,Kale表格被组织为*表格*,类似于Apple的Numbers电子表格系统中的表格。在本文的其余部分,单词*表格*将用于指代单元格网格,无论该网格是具有可配置范围(如Numbers)还是极大范围(如Sheets或Excel)。 在Kale中,表格有一个标题行,用于定义列的名称。行索引从0开始,第0行是标题行*下方*的那一行。标题行不能被引用。图1显示了评估中工资单任务的一个示例。 Kale支持以下引用类型;示例假设存在一个名为`Col`的可引用列: - 单单元格引用引用被引用单元格中的内容,并在单元格移动时更新为指向新位置。这些可以是绝对的(例如,`Col[0]`引用`Col`列中的第0个索引)或相对的(例如,`Col[+1]`引用`Col`列中位于引用公式下方一行的单元格)。 - 列引用引用被引用列中的所有非标题单元格。例如,`SUM(Col)`对`Col`列中的所有非标题单元格求和。 - 行引用引用被引用行中的所有单元格:`SUM([0])`对索引为0的行中的所有单元格求和。 Kale对*绝对*和*相对*的新定义使用户能够在编写公式时编码其意图。如果一个公式引用某行(由于行插入、删除、排序操作或拖放操作而被移动),新的被引用行取决于引用是绝对的还是相对的。 如果引用是绝对的(例如,`Col[0]`),并且被引用行被移动,则之后该引用指向被移动行的新位置。如果是相对的(例如,`Col[+1]`),则该引用指向与之前相同的相对偏移量,引用的是不同的数据。绝对引用用唯一ID表示,Kale为每个表格的每一行分配唯一ID。因此,当行被插入、删除或排列时,使用绝对引用的公式将继续引用与更改前相同的行。 Kale的公式语法是传统的,它支持中缀算术运算符和带有括号分隔的逗号分隔参数列表的函数调用。由于引用语法和语义的创新性,我们在图3中展示了引用语法。引用语法旨在最大化表达能力。除了支持表示为字面数字的相对和绝对行偏移量外,Kale还支持作为任意表达式的相对偏移量。例如,`Col[+1+1]`是对名为`Col`的列中当前行下方两行的相对引用。这解决了与传统`OFFSET`函数类似的需求,该函数根据给定的单元格坐标偏移计算出的行数和列数。不支持计算出的绝对索引,因为当用户指定绝对索引时,Kale必须在解析时将它们解析为行ID。 ``` 相对行引用 ::= `Col` `\=` `'[' '-' 表达式 ']'` ∣ `'|'` `'[' '+' 表达式 ']'` 绝对行引用 ::= `Col` `\=` `'[' INT ']'` 相对单元格或列引用 ::= `Col` `\=` IDENT ∣ `'|'` IDENT `\=` `'['` ... ```
相似文章
电子表格AI暴露了一个与聊天机器人不同的问题
本文讨论了在电子表格中使用AI时独特的可靠性挑战,错误可能隐藏在公式和上下文中,并主张专注于狭窄、可验证的任务,而非广泛的表格理解。
我的电子表格使用规则
Dr. Drang 分享了他使用电子表格的规则,主要建议不要使用它们,并基于他分析工程公司 Excel 数据的经验解释了例外情况。
TabClaw:用于电子表格操作和表格推理的交互式自进化智能体
TabClaw 是一个开源的交互式 AI 智能体,用于电子表格操作和表格推理,利用 LLM 自动化数据分析,支持多表格推理,并通过记忆和技能提取适应个人偏好。
超越静态规则:Text-to-SQL 中潜在漏洞的自动发现
提出 SAGE 框架,通过生成漏洞假设并迭代验证,自动揭示基于 LLM 的 Text-to-SQL 生成中的潜在失效模式。实验表明,SAGE 揭示了模型的显著脆弱性,且发现的模式可在模型间迁移,初步微调显示出有前景的修复效果。
@reach_vb: Codex 在 Excel 和 Google Sheets 中创建和操作表格方面非常出色!我曾让它创建复杂的透视表…
Codex 在创建和操作 Excel 和 Google Sheets 方面表现出色,包括复杂的透视表和仪表盘,无需专业技能。