【问题标题】:#REF! error on moving rows with ArrayFormula#参考!使用 ArrayFormula 移动行时出错
【发布时间】:2019-10-20 08:40:46
【问题描述】:

#REF! ArrayFormula 中行移动时出错

当我在其列在第 1 行中有一个数组公式的工作表中移动行(单击并拖动)时,似乎数组公式中的值被复制为“值”。 ArrayFormula 变成#REF!

在本例中,我在单元格 T1 中有一个数组公式。 当我将第 5 行(例如)移动到第 11 行时,我有这个:

错误数组结果未展开,因为它会覆盖其中的数据 T11.

  • 在单元格 T1 我有#REF!
  • 在单元格 T11 中我现在有一个值
  • 该列的其余部分现在为空白

但是,排序工作正常。

如何在第 1 行使用 ArrayFormula 移动行而不产生任何#REF! 错误???

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas


    【解决方案1】:

    解决方法是暂时禁用 ARRAYFORMULA,方法是删除 = 符号或在 前面插入 ' >= 签名 - 然后进行行交换,然后再次修复数组公式。

    第二种解决方法是在移动行后删除静态值,这样数组公式就可以展开,而不是发布 #REF! 错误。

    第三个选项包括一个脚本,它将删除给定的范围。

    function moveValuesOnly() { var ss = SpreadsheetApp.getActiveSpreadsheet();
                                var source = ss.getRange('Sheet1!B10');
                                source.copyTo(ss.getRange('Sheet1!AO3:AO'), 
                                {contentsOnly: true}); }

    或:

    function clearArrays() {
      var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
      var rangesToClear = ['AO3:AO', 'AR4:AR8'];
      for (var i=0; i < rangesToClear.length; i++) { 
        sheet.getRange(rangesToClear[i]).clearContent();
      }
    }

    【讨论】:

    • 感谢您的回复,至少我明白这不是“我的错”!事实上,这不是最好的选择,因为其他人也在工作表上工作......;(到目前为止,我的选择是有一个脚本定期删除列的内容以重置它们,但“问题”是荒谬的,不应该我猜会发生......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多