是否可以在 Google 电子表格的验证框中将条件验证规则用作自定义公式?
Is it possible to use a conditional validation rule as a custom formula in validation box in Google Spreadsheet?
我想在 D 列中设置验证(请参阅 [1] 下面 link 处发布的电子表格),这样它只显示 A 列(A3: A) 或 B (B3:B)(但不是两列的所有项目都放在一起)取决于放在 Col.C.
中的服务
因此,如果有人将 "Typing Services" 放入 C3,则单元格 D3 的验证仅包含 A 列 (A3:A) 的所有项目。同样,如果有人将 "Translation Services" 放入 C3,则单元格 D3 的验证仅包含 B 列 (B3:B) 的所有项目.
我相信 D 列验证框中的自定义公式可以做到。但是,我无法制作它。
感谢您的解决方案!
这应该可以满足您的要求。将此添加到您的脚本编辑器:
function onEdit(event){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getSheetByName("custom formula in validation")
var sheet = event.source.getActiveSheet().getName();
var lr=event.source.getActiveSheet().getLastRow()
var editedCell = event.range.getSheet().getActiveCell();
var editVal=event.range.getSheet().getActiveCell().getValue()
var editRow=event.range.getSheet().getActiveCell().getRow()
if(sheet=="custom formula in validation" && editedCell.getColumn() ==3){
if(editVal=="Typing Services"){
var validation=s.getRange(3, 1, lr,1)
var cell= s.getRange(editRow,4,1,1)
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(validation).build();
cell.setDataValidation(rule);
}
if(editVal=="Translation Services"){
var validation=s.getRange(3, 2, lr,1)
var cell= s.getRange(editRow,4,1,1)
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(validation).build();
cell.setDataValidation(rule);
}}}
这是我的测试电子表格的一部分:
https://docs.google.com/spreadsheets/d/10lQnZ3m6wJYAC29ylZEM1Yj2vCzKljcE9zGZNn-bRiQ/edit?usp=sharing
我想在 D 列中设置验证(请参阅 [1] 下面 link 处发布的电子表格),这样它只显示 A 列(A3: A) 或 B (B3:B)(但不是两列的所有项目都放在一起)取决于放在 Col.C.
中的服务因此,如果有人将 "Typing Services" 放入 C3,则单元格 D3 的验证仅包含 A 列 (A3:A) 的所有项目。同样,如果有人将 "Translation Services" 放入 C3,则单元格 D3 的验证仅包含 B 列 (B3:B) 的所有项目.
我相信 D 列验证框中的自定义公式可以做到。但是,我无法制作它。
感谢您的解决方案!
这应该可以满足您的要求。将此添加到您的脚本编辑器:
function onEdit(event){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getSheetByName("custom formula in validation")
var sheet = event.source.getActiveSheet().getName();
var lr=event.source.getActiveSheet().getLastRow()
var editedCell = event.range.getSheet().getActiveCell();
var editVal=event.range.getSheet().getActiveCell().getValue()
var editRow=event.range.getSheet().getActiveCell().getRow()
if(sheet=="custom formula in validation" && editedCell.getColumn() ==3){
if(editVal=="Typing Services"){
var validation=s.getRange(3, 1, lr,1)
var cell= s.getRange(editRow,4,1,1)
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(validation).build();
cell.setDataValidation(rule);
}
if(editVal=="Translation Services"){
var validation=s.getRange(3, 2, lr,1)
var cell= s.getRange(editRow,4,1,1)
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(validation).build();
cell.setDataValidation(rule);
}}}
这是我的测试电子表格的一部分:
https://docs.google.com/spreadsheets/d/10lQnZ3m6wJYAC29ylZEM1Yj2vCzKljcE9zGZNn-bRiQ/edit?usp=sharing