自定义公式数据验证

Custom Formula Data Validation

我们可以在一个范围内设置以下数据验证规则以防止重复输入吗?

=COUNTIF(B:B,B6)<2

上述数据验证中的自定义公式停止了 B 列中第 6 行以下的重复条目,因此第 15 列的规则为:

=COUNTIF(B:B,B15)<2

我们可以在 GAS 中以编程方式执行此操作吗?

解决方案:

Data Validation Builder 可以定义跨范围的数据验证规则:

示例代码:

function myFunction() {
  var cell = SpreadsheetApp.getActive().getRange("B6:B");
  var rule = SpreadsheetApp.newDataValidation().requireFormulaSatisfied("=COUNTIF(B:B,B6)<2").build();
  cell.setDataValidation(rule);
}

样本Sheet:

P.S。如果要拒绝重复值,可以将 .setAllowInvalid(false) 添加到规则定义中。