复选框限制最大编号根据Google表格中的单元格值进行选择

时间:2020-05-06 06:18:50

标签: google-sheets google-sheets-formula google-sheets-api google-sheets-macros

请帮助我

我需要限制最大编号列中的复选框/复选框选择。 1.最大编号部门选择的限制。 2.勾选框的选择限制由每个部门的单元格值控制

样本文件附在这里 enter link description here

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以在“数据”>“脚本编辑器”中使用此脚本。 这将在每次编辑后检查第14列(即工作表中的N列)中有多少个复选框为true。如果达到极限(我将其设置为10),则会在第14列设置保护,您只能更改它。还将整个列的backgroundcolor设置为红色,表示除您之外,其他任何人都不能更改它。

function onEdit(e) {
  
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Full List'); 
  var lr = sheet.getLastRow();
  var range = sheet.getRange(1, 14,lr,1); //column 14 is column N in your sheet
  var data = range.getValues();
  
  var count = 0;
  
  for(var i = 0; i < data.length; i++)
  {
    
    if( data[i] == 'true')
    {
      count++;
    }
  }
  
  var rangeColum = e.range;//The range of cells edited
  
  var columnOfCellEdited = rangeColum.getColumn();//Get column number
  
  if (count >= 10 && columnOfCellEdited == 14) //you can change the number 10 into any number you want to set the max to
  {
    range.protect().setDescription('reached max number of checks');
    range.setBackground('#f4c7c3')
  } 
}

使用Apps脚本参考中的Class Protection

答案 1 :(得分:0)

您可以在R后面添加一列,然后将其隐藏。 在该列中,您可以输入R2:= COUNTIF(N:N; TRUE)。这将计算一次TRUE(选择复选框)的频率。 然后,您可以添加条件格式(请参见下图),如果达到最大检查次数,则将整列变为红色。在此示例中,我将其最大化为等于或大于10。

它并没有限制人们选择更多的框,但是颜色应该足够多。 如果您确实想阻止其他人添加更多支票,则应考虑使用Google App脚本。

add a conditional format