我只是想对我的脚本做一些额外的补充。 https://docs.google.com/spreadsheets/d/1I6mDHrXdbvzJwnODPtBEafyBp2tux56NZRHAfB-S9_E/edit?usp=sharing
在表格'显示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 ......?
任何帮助都非常感谢!!
答案 0 :(得分:0)
你可以用公式做到这一点。在F1中,尝试:
=iferror(vlookup(E1, {"Updated","Col1"; "SCM Category" ,"Col4"; "Company" , "Col6" },2,0))
注意:看看你的电子表格,我注意到E1中的下拉,这就是为什么我在公式中使用E1代替E4(你问题中引用的单元格)。