Google 工作表公式中的单选按钮

Radio button in Google Sheets formula

所以我创建了一种带有复选框的单选按钮选择器 table,这样我就可以选择我想要的那一行,并将该行的值带到结果单元格...

这是基本原则:

这样,无论我点击哪个复选框,该单元格的值都会变为 1 (TRUE) 而不是 0 (FALSE),并且使用 SUMPRODUCT 公式,每一行都乘以布尔复选框,因此如果checkbox不勾选,production归零,checkbox勾选则值保留

在 B8 的这个例子中,我得到:

B8 = A2*B2 + A3*B3 + A4*B4 = 0*3 + 1*8 + 0*12 = 8

只要值是数字就可以正常工作..

现在我正在尝试做同样的事情,但使用字符串值..

像这样:

有什么想法吗?

解决方案:

  • 使用IF得到对应的Col B
  • 加入结果数组

样本:

=ARRAYFORMULA(TEXTJOIN(",",1,IF(A2:A4,B2:B4,)))

我使用了复选框和 Google Apps 脚本,其中 A (1) 列和 B (2) 列包含复选框。例如:

function onEdit(evt) {

    var range = evt.range;
    var val = range.getValue();
    var row = range.getRow();
    var col = range.getColumn();

    // -------------------------------------
    // --- Cannot be both add and delete ---
    // -------------------------------------
    if (col == 1) {
        if (val) {
            SpreadsheetApp.getActiveSheet().getRange(row,2).setValue('FALSE'); 
        }
    }
    else if (col == 2) {
        if (val) {
            SpreadsheetApp.getActiveSheet().getRange(row,1).setValue('FALSE'); 
        }
    }
}

我想分享我的代码。也请 运行 onStart() 来设置单选框。

function onEdit(e) {

  // radio button
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var gsheetrange = gsheet.getDataRange().getValues();  
  var rowcount = gsheetrange.length; // find end of row

  for(var i = 0; i <= rowcount; i++) { // start from 0. 
      if (i==gedited){
      gsheet.getRange(gedited, 2).setValue("true"); 
   }
   else
   {
    gsheet.getRange(i, 2).setValue("false"); 
   }
  }
}