谷歌表单:仅在特定条件下覆盖单元格的值



在Google Sheets中,我希望用单元格A1的值自动覆盖单元格B1的值,除非A1中的值为100。

小区A1从外部源动态更新。

有人能给我一些指导吗?

提前感谢您抽出时间。

C

如果您有一个默认值,如果A1=100,您想用它来替换B1,那么您可以在B1 中使用以下公式

=if(A1<>100,A1,"default value")

否则,目前无法在谷歌表单中保持B1中的值不变。尽管在Excel中,这将是"迭代计算"的情况。

这在普通公式中是不可能的,因为它们无法在更新单元格之前记住值。

我仍然不完全确定数据是如何进入电子表格的,但下面的函数将把所有不为100的值从A1:A100复制到B1:B100

function conditionalUpdate(){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet7");
  var newData = ss.getRange("A1:A100").getValues();
  var oldData = ss.getRange("B1:B100").getValues();
  for (var row = 0; row < newData.length; ++row) {
    if (newData[row][0] != 100) {
      oldData[row][0] = newData[row][0];
    }
  }
  ss.getRange("B1:B100").setValues(oldData);
}

根据数据何时被放入电子表格(如果在打开之前完成),您可以在工具脚本编辑器资源当前项目的触发器则,由于结果不会改变,您可以让它每隔一分钟左右执行一次。

业余警报:我为自己做了一个绕过欺骗的方法。我有一个查询搜索框,有些人会将其他工作表中的值粘贴到其中。问题是,它用这些粘贴处理了其他条件格式,并更改了查询搜索框的格式。

  1. 我在单元格A2中创建了一个默认文本:"**"请不要在此处粘贴数据**"
  2. 然后我在B1中创建了一个数组公式:=iferor(arrayformula(A1:B2))
  3. 我只是用与背景相同的颜色隐藏了B1中的文本(后来我隐藏了那一行)

因此,我在B2中有一个默认值,我的员工可以合法地覆盖它。B1的"错误"是隐藏的且不相关。

这是解决一个小问题的简单方法。

最新更新