web-dev-qa-db-ja.com

別の関数内からIMPORTRANGEを呼び出す

多数の個別のスプレッドシートがあり、他の各シートからデータを取得する概要スプレッドシートを作成しています。また、COUNTUNIQUE式をそのデータに適用する必要があります。概要スプレッドシートのセルに次のように入力するだけの場合

=COUNTUNIQUE(importRange("key","G2:G"))

数式は機能しません。 1の値が表示され、データのプル元であるスプレッドシートへのアクセス要求はありません。

ただし、最初にimportRange("key","G2:G")と入力すると、スプレッドシートにアクセスするためのリクエストが表示され、承認後にデータが入力されます。その後、COUNTPORTIQUE関数をIMPORTRANGEに追加すると、正しく機能します。ただし、別のシートでこれを行う必要があります。そうしないと、スプレッドシートの他の部分が上書きされるため、範囲をインポートできないというエラーが表示されます。

これを回避する方法はありますか?

4
Nick5a1

確かに、importrangeの最初の呼び出しは別の関数内にネストすることはできません。承認の要求は「バブルアップ」しません(最初はこれはGoogle側のエラーだと思っていましたが、単一のコマンドを組み合わせてその中にいくつかのimportrangeがあるため、そのような場合に認証ダイアログを提供するのは非常に複雑です)。

ただし、承認を処理するために別のシートは必要ありません。スプレッドシートへの最初の呼び出しをimportRange("key","A1")の単一セルリクエストにするだけです。次に、これを必要なcountuniqueに置き換えることができます。または、キーを含む列と、承認目的の単一セルリクエストを含む別の列を使用できます。

2
user79865