そこで、チェックボックス付きのラジオボタンチューザーテーブルを作成して、必要な行を選択できるようにしました。これにより、この行の値が結果セルに表示されます...
これが基本原則です。
このように、どのチェックボックスをクリックしても、そのセルの値は0(FALSE)ではなく1(TRUE)になり、SUMPRODUCT
数式を使用すると、すべての行にブールチェックボックスが乗算されるため、チェックボックスがチェックされていない場合、プロダクションはゼロになり、チェックボックスがチェックされている場合、値は残ります。
B8のこの例では、次のようになります。
B8 = A2*B2 + A3*B3 + A4*B4 = 0*3 + 1*8 + 0*12 = 8
値が数値である限り、これはうまく機能します。
今、私は同じことをしようとしていますが、文字列値を使用しています..
このようなもの:
何か案が?
IF
を使用して、対応する列Bを取得します=ARRAYFORMULA(TEXTJOIN(",",1,IF(A2:A4,B2:B4,)))
チェックボックスとGoogleApps Scriptを使用しました。ここで、列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");
}
}
}