0

これについて他にもいくつかのスポットを見つけましたが、答えはありませんでした(または、うまくいけば物事が変わった古い答え)。

私は単に(スクリプトを介して)Google Sheetセルに数式を入れて、完全に更新/再計算したいだけです。問題は、式が次のように値の配列を返すことです。

SORT(TRANSPOSE(QUERY(A2:B299,"Select count(A) pivot(B)")),2,FALSE)

必要なセルに数式を配置してそのセルを選択するまで、すべてを機能させることができます。しかし、手動で CTRL+E を押して配列を埋める必要があります (これは、私のビール コレクション内の各醸造所に属するボトルの数の要約です)。

調査で見つけたすべての「フラッシュ」および再計算コマンドを試しましたが、式を「取る」ものは何もありません。別の方法として、ブルート フォース ソリューションを探しました。つまり、自分でキーを押したかのようにセルに CTRL+E を送信します。 「キーボード」コマンド。

「refreshBrewerTable()」を呼び出すボタンの背後にある Google Script コードを次に示します。

function refreshBrewerTable() {
  return refreshQuery(9, 13, "B", 2, "FALSE");
}

function refreshQuery(rootrow, rootcol, pivotColumn, sortColumn, sortAsc) {
  var range = sheet.getRange(rootrow, rootcol, sheet.getLastRow(), rootcol + 1)
  range.clearContent();
  range = sheet.getRange(rootrow, rootcol);
  range.setFormula('=SORT(TRANSPOSE(QUERY(A2:' + pivotColumn + sheet.getLastRow().toString() + ',"Select count(A) pivot(' + pivotColumn + ')")),' + sortColumn.toString() + ',' + sortAsc + ')');
  sheet.setActiveSelection(range.getCell(1, 1).getA1Notation());
  return true;
}

何か案は?基本的には、壁に新しいビール瓶を追加するときに、このピボットされた要約データを更新するボタンが必要です。

4

2 に答える 2

0

これが必要なことに関して、私はちょっとばかだったと思います。

これは既にスクリプトから実行されているため、すべての CONTINUE() 式を「ルート」セル (クエリが含まれているセル) の右下までセルに手動で追加するだけです。他の場所で UNIQUE() 関数を使用して、個別の醸造所がいくつあるのか (またはピボットしようとしているものは何でも) を教えてくれれば、どこまで処理を進めることができるかについても賢く知ることができます。CTRL+E が行うことはこれだけです。CONTINUE() 式を必要なところまで埋めます。

とにかく、すべてが機能するようになり、すべての CONTINUE() セルに値が入力されると、CTRL+E を押すプロンプトが「ルート」セルから消えます。

于 2014-04-24T13:32:32.450 に答える