我是GAS的新手,我正在尝试复制我在Excel中为我的撑船组编写的一些VBA代码,因此可以在google工作表中使用它。 gyst是......
var ss = SpreadsheetApp.getActiveSpreadsheet(),
sel = ss.getSheetByName('selections'),
trn = ss.getSheetByName('transactions');
function calcPayout(a,b,inv) {
var data = sel.getRange("B3:B");
// find a in data, then return offset(0,2) as div1
// find b in data, then return offset(0,2) as div2
return div1 * div2 * inv
}

虽然我想自动化它,与我创建的Excel s / s一样工作,我也很高兴使用UDF,如上面的代码片段所示。
在VBA我使用以下内容做同样的事情......
div1 = trn.Cells(i + 2, 11) // finds 'a' instead of user entering 'a'
div1 = data.Find(what:=div1).Offset(0, 2).Value
div2 = trn.Cells(i + 2, 12)
If opt2 = Empty Then GoTo calcLegReturn // calcReturn does 'return' calc
div2 = data.Find(what:=div2).Offset(0, 2).Value

任何人都可以帮助我吗?如果需要this is a sample google表格的样子。
答案 0 :(得分:0)
我不知道'偏移'是什么意思,但无论如何我在你的表中写了一些公式。
在transactions
表格中,您可以B:B
从=value(right(B3,3))
获取ID。在I3
上说明这一点,然后您可以在selections
表格中=match(I3, selections!B:B, 0)
查找该ID。它会返回匹配的行,因此=index(selections!D:D, match(I3, selections!B:B, 0))
会为您提供“偏移量”(D:D
表格中的selections
)。说这是J3
,然后您可以=J3 * product(C3:F3)
中的G3
获得付款。检查您的表单,看看这是否符合您的意图。