Google sheets 有没有办法一次自动运行一个公式?
假设我有一张桌子: 量 项目 价值 取回的项目 暗示 5. 肉 变量 肉 ... 使用onEdit: 您可以使用应用程序脚本(单击Google sheets 有没有办法一次自动运行一个公式?,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,假设我有一张桌子: 量 项目 价值 取回的项目 暗示 5. 肉 变量 肉 ... 使用onEdit: 您可以使用应用程序脚本(单击Tools>scripteditor,复制下面的函数并保存项目) (要使其正常工作,请创建一个新列(G),该列将用于存储有关是否存在以前的副本的信息。然后您可以将其隐藏。) 此函数将在用户每次编辑电子表格时执行,并将使用执行以下操作: 检查编辑的列是否对应于项,并且编辑的列是否是所需的工作表(您提供的电子表格中的列C和工作表配方卡) 如果是这种情况,请检查值列(D)
Tools>scripteditor
,复制下面的函数并保存项目)
(要使其正常工作,请创建一个新列(G
),该列将用于存储有关是否存在以前的副本的信息。然后您可以将其隐藏。)
此函数将在用户每次编辑电子表格时执行,并将使用执行以下操作:
- 检查编辑的列是否对应于
,并且编辑的列是否是所需的工作表(您提供的电子表格中的列项
和工作表C
)配方卡
- 如果是这种情况,请检查
列(值
)是否等于D
,列变量
是否等于某个字符串(在下面的示例中称为G
)避免将来的更新
- 如果是这种情况,请将值从
设置为C
,并将E
写入列避免未来更新
G
function onEdit(e) {
const range = e.range;
const sheet = range.getSheet();
const rowIndex = range.getRow();
const colIndex = range.getColumn();
const avoidUpdateColumn = 7;
const itemColumn = 3;
const valueColumn = 4;
const fetchedItemColumn = 5;
const copyValue = "Variable"; // Do not copy if column doesn't have this value
const avoidUpdateValue = "Avoid future updates"; // Do not copy if column has this value
const sheetName = "Recipe Cards";
if (colIndex === itemColumn && sheet.getName() === sheetName) {
const numCols = sheet.getLastColumn()-colIndex+1;
const rowValues = sheet.getRange(rowIndex, colIndex, 1, numCols).getValues()[0];
if (rowValues[valueColumn-itemColumn] === copyValue && rowValues[numCols-1] !== avoidUpdateValue) {
sheet.getRange(rowIndex, fetchedItemColumn).setValue(rowValues[0]);
sheet.getRange(rowIndex, avoidUpdateColumn).setValue(avoidUpdateValue);
}
}
}