web-dev-qa-db-ja.com

IMPORTRANGE関数内でINDIRECTを使用する方法は?

次のような別のGoogleスプレッドシートから値を動的に取得するには、ヘルプが必要です。FILE1には、G列に0または1値があります。 FILE2のB7。

INDIRECTは、次のように行番号としてB7を使用して列Gからの動的なビットフェッチを解決できることを学びました。

=INDIRECT("G"&B7)

ただし、IMPORTRANGEと一緒に動作させることはできません。

=IMPORTRANGE("KEY";indirect("Sheet1!G")&B7)
=IMPORTRANGE("KEY", "Sheet1!G"; indirect(&B7))

上記の例は、私に式の間違った解釈エラーを与えます。これはGoogleスプレッドシートで実現できますか?

5
user1151640

importrangeの2番目の引数は、セル参照ではなくstringでなければなりません。コマンドindirectは文字列を取り、必要なものではないセル参照を返します。使うだけ

=IMPORTRANGE("KEY"; "Sheet1!G"&B7) 

違いを明確にするには:

  • 文字列:"B4""Sheet1!A3""Sheet1!A"&E2
  • セル参照:B4indirect("Sheet1!A3")indirect("Sheet1!A"&E2)
4
user79865

簡潔な答え

IMPORTRANGE内にINDIRECTのような関数をネストする代わりに、 FILTER または INDEX などの別の関数内にIMPORTRANGEを配置します。

OPの場合、式は次のようになります。

=INDEX(IMPORTRANGE(spreadsheet_key,"Sheet1!G:G"),B7)

説明

IMPORTRANGE には2つの引数が必要です。

  • spreadsheet_Key
  • range_string

range_stringは、A1表記で適切に構成された参照である文字列でなければなりません。セルまたは範囲の参照が可能ですが、参照されるセル/範囲の値は文字列でなければなりません。

OPが提供する例は、INDIRECTが期待どおりに機能しないことに加えて、文字列の構築に失敗しました。文字列の構成の詳細は、特定の質問で説明する必要があると思います。

FILTERは単一または複数の値を返す可能性があり、少なくとも2つの引数が必要です。

  • 参照または配列
  • 調子

INDEXは単一の値を返し、少なくとも2つの引数が必要です。

  • 参照または配列
  • 行、オプション、デフォルト1。
  • 列、オプション、デフォルトは0)
2
Rubén

同じことをしたいが、セル名の代わりにシート名を交換したいユーザーの場合、次の式を使用できます。

 = IMPORTRANGE( "KEY"、A4& "!E2:E")

... A4には、他のスプレッドシートで参照する特定のシートの名前が含まれ、E2:Eは、他のスプレッドシートからインポートする範囲です。

1
paulhastings0