是否可以在 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 列验证框中的自定义公式可以做到。但是,我无法制作它。

感谢您的解决方案!

[1]https://docs.google.com/spreadsheets/d/1XdcKbxKvIOSFK37zwULZns6giE9ounHPS5iHrRFkvIk/edit#gid=697587372[1]

这应该可以满足您的要求。将此添加到您的脚本编辑器:

 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