次のような別の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スプレッドシートで実現できますか?
importrange
の2番目の引数は、セル参照ではなくstringでなければなりません。コマンドindirect
は文字列を取り、必要なものではないセル参照を返します。使うだけ
=IMPORTRANGE("KEY"; "Sheet1!G"&B7)
違いを明確にするには:
"B4"
、"Sheet1!A3"
、"Sheet1!A"&E2
B4
、indirect("Sheet1!A3")
、indirect("Sheet1!A"&E2)
IMPORTRANGE内にINDIRECTのような関数をネストする代わりに、 FILTER または INDEX などの別の関数内にIMPORTRANGEを配置します。
OPの場合、式は次のようになります。
=INDEX(IMPORTRANGE(spreadsheet_key,"Sheet1!G:G"),B7)
IMPORTRANGE には2つの引数が必要です。
range_stringは、A1表記で適切に構成された参照である文字列でなければなりません。セルまたは範囲の参照が可能ですが、参照されるセル/範囲の値は文字列でなければなりません。
OPが提供する例は、INDIRECTが期待どおりに機能しないことに加えて、文字列の構築に失敗しました。文字列の構成の詳細は、特定の質問で説明する必要があると思います。
FILTERは単一または複数の値を返す可能性があり、少なくとも2つの引数が必要です。
INDEXは単一の値を返し、少なくとも2つの引数が必要です。
同じことをしたいが、セル名の代わりにシート名を交換したいユーザーの場合、次の式を使用できます。
= IMPORTRANGE( "KEY"、A4& "!E2:E")
... A4には、他のスプレッドシートで参照する特定のシートの名前が含まれ、E2:Eは、他のスプレッドシートからインポートする範囲です。