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");
}
}
}
所以我创建了一种带有复选框的单选按钮选择器 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");
}
}
}