索引匹配 Return 倒数第二个非数字条目
Index Match to Return Second To Last Non-Numerical Entry
我的团队每周必须在 google 表格中填写他们的日程安排,基本上我正在尝试这样做,如果他们 select “维护”,我可以自动拉他们的 last/previously 填写条目。
到目前为止我得到了这个:
=if(D23="Maintain",(INDEX('Form Responses'!$E:$R,MATCH($C23,'Form Responses'!$B:$B)-1)),(INDEX('Form Responses'!$E:$R,MAX(IF('Form Responses'!$B:$B=C23,ROW(C:C))))))
但“真实”部分不是 return 右行(有或没有“-1”)。
名称“JC”应该显示响应中第 32 行的数据 sheet,“NA”应该 return 第 40 行的数据。
“-1”应该 Index/Match 具有该特定名称的倒数第二个条目,但我无法判断它是否正常工作。
“真实”部分我做错了什么?
避免复制数据库的另一种解决方案。
提交新回复时,如果指定Maintain
,此函数将检索相同Name
的最后回复并复制已输入的数据。这样做可以让你连续几天保持during。
// this function needs to be triggered
function onFormSubmit(e) {
var responses = e.namedValues;
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getActiveRange().getRow();
if (responses["Maintain/New"] == 'Maintain') {
var data = sheet.getDataRange().getValues().filter(r => r[1] == responses["Name"]).sort(function (a, b) {
return b[0] - a[0];
});
if (data.length > 1) {
data = data.splice(1, 1).flat()
data.splice(0, 3)
sheet.getRange(row,4,1,data.length).setValues([data])
}
}
}
删除 E3:R 范围内的所有内容并在 E3 中使用:
=ARRAYFORMULA(IFNA(IF(D3:D="Maintain",
VLOOKUP(C3:C, QUERY(SORT('Form Responses'!B2:R, ROW('Form Responses'!B2:B), 0),
"where not Col2 = 'Maintain' and Col1 is not null", 0), COLUMN(D:Q), 0),
VLOOKUP(C3:C, SORT('Form Responses'!B2:R, ROW('Form Responses'!B2:B), 0), COLUMN(D:Q), 0))))
我的团队每周必须在 google 表格中填写他们的日程安排,基本上我正在尝试这样做,如果他们 select “维护”,我可以自动拉他们的 last/previously 填写条目。
到目前为止我得到了这个:
=if(D23="Maintain",(INDEX('Form Responses'!$E:$R,MATCH($C23,'Form Responses'!$B:$B)-1)),(INDEX('Form Responses'!$E:$R,MAX(IF('Form Responses'!$B:$B=C23,ROW(C:C))))))
但“真实”部分不是 return 右行(有或没有“-1”)。
名称“JC”应该显示响应中第 32 行的数据 sheet,“NA”应该 return 第 40 行的数据。
“-1”应该 Index/Match 具有该特定名称的倒数第二个条目,但我无法判断它是否正常工作。
“真实”部分我做错了什么?
避免复制数据库的另一种解决方案。
提交新回复时,如果指定Maintain
,此函数将检索相同Name
的最后回复并复制已输入的数据。这样做可以让你连续几天保持during。
// this function needs to be triggered
function onFormSubmit(e) {
var responses = e.namedValues;
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getActiveRange().getRow();
if (responses["Maintain/New"] == 'Maintain') {
var data = sheet.getDataRange().getValues().filter(r => r[1] == responses["Name"]).sort(function (a, b) {
return b[0] - a[0];
});
if (data.length > 1) {
data = data.splice(1, 1).flat()
data.splice(0, 3)
sheet.getRange(row,4,1,data.length).setValues([data])
}
}
}
删除 E3:R 范围内的所有内容并在 E3 中使用:
=ARRAYFORMULA(IFNA(IF(D3:D="Maintain",
VLOOKUP(C3:C, QUERY(SORT('Form Responses'!B2:R, ROW('Form Responses'!B2:B), 0),
"where not Col2 = 'Maintain' and Col1 is not null", 0), COLUMN(D:Q), 0),
VLOOKUP(C3:C, SORT('Form Responses'!B2:R, ROW('Form Responses'!B2:B), 0), COLUMN(D:Q), 0))))