Google sheets 我哪里做错了?onEdit-谷歌表单脚本定稿

Google sheets 我哪里做错了?onEdit-谷歌表单脚本定稿,google-sheets,Google Sheets,我只是想对我的剧本做一些额外的补充。 在“显示SCM类别”页上 选择E4下拉列表时 如果“更新”,则 F1将成为文本“Col1” 如果是“SCM类别”,则 F1变为文本“Col4” 如果是“公司”,那么 F1将成为文本“Col6” 我在脚本末尾加了几行,但我不太明白我错在哪里。 这样我就可以使用这个函数了 =query({'Newest at Top'!A1:N}, "select * where Col4 contains '"&B1&"' order by '"&F

我只是想对我的剧本做一些额外的补充。

在“显示SCM类别”页上 选择E4下拉列表时

如果“更新”,则 F1将成为文本“Col1”

如果是“SCM类别”,则 F1变为文本“Col4”

如果是“公司”,那么 F1将成为文本“Col6”

我在脚本末尾加了几行,但我不太明白我错在哪里。 这样我就可以使用这个函数了

=query({'Newest at Top'!A1:N}, "select * where Col4 contains '"&B1&"' order by '"&F1&"',Col1,Col5",0)
也就是说,这样我就可以用“&F1&”指定要排序的列

脚本是:

function onEdit(e) {
    var sheets = ['Sanshiro', 'Yujiro', 'Josh', 'Suil', 'Martin','Show SCM Category'],
        cols = [1, 6],
        writeCols = [15, 11],
        ind = cols.indexOf(e.range.columnStart);
    if (sheets.indexOf(e.source.getActiveSheet()
        .getName()) === -1 || ind === -1 || !e.value) return;
    if (ind === 0 && e.value === 'Update') {
        e.range.setValue(new Date());
    } else if (ind === 1) {
        if (e.range.offset(0, 5)
            .getValue() === '') e.range.offset(0, 5)
            .setValue(2);
        if (e.range.offset(0, 9)
            .getValue() === '') e.range.offset(0, 9)
            .setValue(new Date());
       if (e.range.offset(0, -5)
            .getValue() === '') e.range.offset(0, -5)
            .setValue(new Date());
    }
     else if (ind === 1 && e.value === 'Updated') {
        e.range.setValue(Col1); }
       else if (ind === 1 && e.value === 'SCM Category') {
        e.range.setValue(Col4);}
             else if (ind === 1 && e.value === 'Company') {
        e.range.setValue(Col6);
}}
或者可能有一种更简单的方法来实现这一点,类似于=if ISTEXT


非常感谢任何帮助

你可以用公式来做。在F1中,请尝试:

=iferror(vlookup(E1, {"Updated","Col1"; "SCM Category" ,"Col4"; "Company" , "Col6" },2,0))

注意:在查看您的电子表格时,我注意到E1中的下拉列表,这就是为什么我在公式中使用E1而不是您问题中引用的E4单元格。

再次感谢JPV!你真是这方面的高手。你是创造性的解决方法,继续给人留下深刻印象!多亏了你们的支持,我的整个办公室都在工作中收获了合作桌作为信息来源的好处:再次感谢你们,祝你们一切顺利!