それはそうですシンプルですが、私は仕事にそれを得ることができません。私はたくさんの記事を検索して近づきましたが、葉巻はありません。すべてのマネージャーのタブを作成するコードを作成しましたが、これは問題なく機能しました。次に、QUERY関数を使用して、すべてのマネージャーのデータを格納する最初のタブから、個々のマネージャーのデータを分割します。ただし、各タブの各QUERY関数に各マネージャー名を入力するのではなく、個々のマネージャー用に作成したシート/タブ名を参照したいと思います。
これは機能します:
=QUERY(StaffDetail!A1:E338,"SELECT B,C,E,A WHERE A = 'Doe, Jane'",1)
スクリプトエディタにコードを入れてシート名を呼び出す関数を作成し、それをQUERY式に入れてみました。しかし、それは機能しません。
function sheetName() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}
動作しません:
=QUERY(StaffDetail!A1:E338,"SELECT B,C,E,A WHERE A = sheetName()",1)
なぜ動かないのかわかりません。INDIRECTや他のいくつかについて読んだのですが、これは同じシートにあるので、それは必要ないと思いますか?どんな助けでも大歓迎です。ありがとうございました!
カスタム関数は戻りますSheet
が、クエリ式はを受け入れます'Sheet'
。
複数のことを試しましたが、CONCATだけが機能しているように見えました(連結も機能します)。
2つの変更:
カスタム数式を次のように変更します。
function sheetName() {
return `'${SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName()}'`;
}
そしてそれはアクティブなシートであると'Sheet1'
仮定して戻りSheet1
ます。
Googleスプレッドシートの数式を次のように変更します。
=QUERY(StaffDetail!A1:E338, CONCAT("SELECT B,C,E,A WHERE A =", sheetName()),1)
参照:
テンプレートリテラルを使用して、関数がを返すようにしました'Sheet'
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加