在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);
}
根据数据何时被放入电子表格(如果在打开之前完成),您可以在工具脚本编辑器资源当前项目的触发器则,由于结果不会改变,您可以让它每隔一分钟左右执行一次。
业余警报:我为自己做了一个绕过欺骗的方法。我有一个查询搜索框,有些人会将其他工作表中的值粘贴到其中。问题是,它用这些粘贴处理了其他条件格式,并更改了查询搜索框的格式。
- 我在单元格A2中创建了一个默认文本:"**"请不要在此处粘贴数据**"
- 然后我在B1中创建了一个数组公式:=iferor(arrayformula(A1:B2))
- 我只是用与背景相同的颜色隐藏了B1中的文本(后来我隐藏了那一行)
因此,我在B2中有一个默认值,我的员工可以合法地覆盖它。B1的"错误"是隐藏的且不相关。
这是解决一个小问题的简单方法。