我正在尝试使用现有的zapier集成自动化复制公式功能。
对于符合特定条件的新电子邮件,zapier会在a / b / c列中向下复制email / message_original / date_time。在D列中,我有一个公式,我想自动应用于所有新行 - 您可以看到第18行D列是空白的,因为它尚未应用。
我遇到谷歌推出我的公式行的问题 - 我试过,数组公式等等......没有成功。
Zapier Google Sheet:
答案 0 :(得分:1)
答案 1 :(得分:1)
你可以通过多步骤来实现这一目标。
你的zap的第一步是从外部来源提取数据。
zap的第二步是使用来自外部来源的信息填充您的Google表格(就像您现在正在做的那样)。
然后添加第三步:Google表格>更新电子表格行。
对于Row,选择"使用自定义值(高级)",然后选择" ID"从上一步开始。
然后,对于" message_updated",从Google表格粘贴您的公式。您只需要将任何单元格引用更新为动态。因此,例如,如果您的公式引用" B5"你需要改变它来代替参考" B"然后使用Zapier引用" ID"从zap第2步开始。看起来有点像这样:
Relative cell reference in Zapier
你必须分两步这样做,因为在Zapier中对它进行相对引用之前,该行必须存在。
答案 2 :(得分:1)
因为我也在寻找一种解决方案,所以找不到答案。我最终创建了一个Google脚本,该脚本从上一行复制了所有行公式。 (您可以使用getFormulasR1C1()完成此操作,为您提供相对版本),然后将其包装为可调用的doGet(),以便下一步可以使用zapier webhook。 在发布->发布->部署为Web应用程序下部署应用程序。确保范围是所有人,因为Zapier Web挂钩将运行此范围。
function doGet(e) { // the zap will call here - use webhook and GET and make sure to set send as JSON to NO.
//The paramater is called row so in query params in Zapier but "row" and in the value the row number you want to update
var update = updateformulas( e.parameter.row);
var appData = {
"heading": "Update",
"DidUpdate": update // tell the zap if we updated somethine
};
var JSONString = JSON.stringify(appData);
var JSONOutput = ContentService.createTextOutput(JSONString);
JSONOutput.setMimeType(ContentService.MimeType.JSON);
return JSONOutput
}
function updateformulas(row,sheet = SpreadsheetApp.openById("<add target spreadsheet id>" ).getActiveSheet() ) {
var update = false;
var maxcols = sheet.getLastColumn();
if (row>0 ||maxcols>0) {
var range = sheet.getRange(row-1,1,1,maxcols);
var formulas = range.getFormulasR1C1(); // get all formulas from the PREVIOUS row
for ( i=0; i<maxcols ;i++ ) {
if (formulas[0][i]) { // if there was a formula in that column
sheet.getRange(row,i+1).setFormulaR1C1(formulas[0][i]); // set the formula for the current row
update = true;
}
}
}
return update
答案 3 :(得分:0)
我已经与arrayformula
一起工作了。
OP提到这不适用于他们,但也许最近两年对Zapier或Google Sheets API的更新已经改变了这一点。
Zapier docs确实提到,工作表上的击打可能需要3分钟才能触发,因此可以给公式留出足够的时间进行抄写。
我用一个简单的公式=arrayformula(B2:B&C2:C)
进行了测试,发现新条目上的Zap总是从arrayformula列中选取正确的值