【问题标题】:fix for moving rows in google-spredsheet breaks array formula修复在谷歌电子表格中移动行会破坏数组公式
【发布时间】:2015-03-27 23:17:37
【问题描述】:

我在谷歌表格中有一个用于整个列的数组公式,例如C1中的以下公式

ArrayFormula(A1:A+B1:B)

并且A列和B列都有数据。

如果我要抓取一排并将其移动到另一个位置。只要我移动它,该行 C 列中的相应值就会被粘贴为硬值并破坏整个数组公式。

有没有办法解决这个问题?

【问题讨论】:

    标签: google-spreadsheet-api array-formulas


    【解决方案1】:

    不幸的是,没有简单的解决方法。对于数组,公式通常与值的位置相关联,因为结果会根据数组中每个值的位置而变化。因此,移动任何东西都会导致公式失真。

    解决它的唯一(简单)方法是通过剪切复制粘贴方法移动您的值,而不是拖动整行。或者(对于更强大但更复杂的实现)在您的工作表中为 Custom Functions 编写一个脚本,该脚本将执行必要的计算,并且在您移动值时不会受到影响,因为它从预先定义的单元格位置获取输入脚本。

    【讨论】:

      【解决方案2】:

      找到解决方法。

      我正在进行手动排序,这改变了我的 ARRAYFORMULA() 的行,但与拖放“特殊行”的结果相同。

      但是,您将不得不使用两张纸。

      • 假设在您的原始数据表(sheet 1)中,您在两列(A 和 B)上有数据,并且您想在 C 列上使用 ARRAYFORMULA(),例如在你的例子中。

      • 保持sheet 1“原样”,创建另一个工作表(sheet 2)并在左上角的单元格中输入:

        ={A1:B}
        
      • 工作表 2 的 C 列,顶部下方的一个单元格(为页眉留出空间),输入:

        =ARRAYFORMULA(A2:A+B2:B)
        

      然后您可以在 sheet 1 中对数据进行任意排序,ARRAYFORMULA() 将始终在 sheet 2 中工作 ?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-06
        相关资源
        最近更新 更多