Jump to content

Documentation/Calc 関数/INDIRECT

From The Document Foundation Wiki
This page is a translated version of the page Documentation/Calc Functions/INDIRECT and the translation is 100% complete.


Function name:

INDIRECT

Category:

Spreadsheet

Summary:

文字列が表現する参照を作成します。単一のセルまたはセル範囲を参照できます。また、必要に応じて、ファイル名の有無にかかわらず、ワークシート参照を含めることもできます。

オプションの引数は、入力文字列が Calc A1 または Excel R1C1 のどちらの数式構文を使用するかを制御します(詳細については、数式のヘルプページを参照してください)。

ADDRESS 関数は、対象のセルの参照をテキスト文字列の形式で動的に取得するために使用されます。結果の文字列を INDIRECT 関数に渡して、セルの内容を取得できます。ただし、INDIRECT 関数に渡される文字列は、必ずしも ADDRESS 関数である必要はなく、他の方法で作成または構築できます。

Syntax:

INDIRECT(参照; [; A1])

Returns:

指定された引数に基づいて、1つ以上のセルへの参照を返します。

Arguments:

参照はテキスト文字列、または参照の文字列表現であるテキスト文字列を含むセルへの参照です。

A1 は論理値、または論理値を含むセルへの参照であり、参照で使用する文字列の数式構文を指定します。
A1 に 0 または FALSE を指定した場合は、Excel R1C1 の数式構文が使用されます。
A1 を省略するか、他の(数値)値を指定した場合は、Calc A1 の数式構文が使用されます。

  • A1 が数値以外(および論理値以外)の場合、INDIRECT は #VALUE! エラーを返します。
  • 参照A1 引数の組み合わせが有効な参照に対応しない場合、INDIRECT は #REF! エラーを返します。
  • INDIRECT 関数の呼び出しが外部リンクに関連している場合、スプレッドシートを開いたときに、外部リンクの自動更新が無効になっていることを警告するメッセージが表示されることがあります。同時に、影響を受けるセルにエラー:540 が表示されます。これらのリンクの更新を有効にするには、更新の許可 ボタンをクリックします。

Additional details:

  • INDIRECT は 揮発性関数 です。これは、データ ▸ 計算 ▸ 再計算 を選択するか F9 を押すか、または任意の入力イベントでセルが更新されると、 INDIRECT によって返された参照が更新されることを意味します。
  • Calcの ADDRESS 関数と INDIRECT 関数は密接に関連しています。ADDRESS 関数はセル参照をテキストとして返します。これを引数として INDIRECT 関数に渡すと、参照されているセルの内容を取得できます。
  • ADDRESS 関数によって生成された文字列を INDIRECT 関数に渡す場合は、2つの関数の A1 引数の設定が同じであることを確認してください。2つの関数が異なる数式構文を想定している場合、エラーが発生する可能性があります。
  • バージョン1.2より前のODFでは、INDIRECT 関数の仕様には、Calc A1Excel R1C1 の数式構文を区別するための A1 引数が含まれていませんでした。ODF 1.0/1.1 形式でドキュメントを保存すると、INDIRECT 関数の呼び出しは変換されずに保存されます。これにより、これらの関数呼び出しに連鎖したエラーが発生する可能性があります。
  • Microsoft Excelでは、一部のセル参照の表示が Calc とは異なるため、この関数は必ずしも移植可能ではありません。たとえば、数式 =INDIRECT("Sheet2.A1") はCalc(ワークシート名の区切り記号はドット".")で有効ですが、Excelで必要な形式は =INDIRECT("Sheet2!A1") (ワークシート名の区切り記号は感嘆符"!")です。
  • 文字列関数から計算された間接アドレスを使用する Excel スプレッドシートを開く場合、シートアドレスは自動的に変換されません。たとえば、=INDIRECT("'[filename]sheetname'!"&B1) の Excel アドレスは、=INDIRECT("'filename#sheetname'."&B1) の Calc アドレスに変換されません。

Examples:

例題用のデータ
A B C D
1 1 2 6 =INDIRECT("R[2]C[-1]"; 0)
2 3 4 5
3 7 B2
4 "myCellRange": A1:B2   名前付きの範囲
Formula Description Returns
=INDIRECT("B2") =B2 と同等です。テキスト文字列を囲む引用符が使用されていることに注意してください。 4
=INDIRECT("B" & "2") =B2 と同等です。 4
=INDIRECT(D3) =B2 と同等です。引用符がないことに注意してください。引数はセル参照です。 4
=INDIRECT(B2) 引用符がないことに注意してください。参照されたセルにはセルのアドレスを表すテキスト文字列が含まれていないため、結果はエラーになります。 #REF!
=INDIRECT("B2"; 99) =B2 と同等です。引数 A1 は 0 以外の数値であり、省略された場合と同等です。 4
=SUM(INDIRECT("A1:B2")) まず、セル範囲 A1:B2 への参照を返します。したがって、数式はこれらのセル内の 4 つの数値の合計を返します。 10
=SUM(INDIRECT("myCellRange")) まず、セル範囲 A1:B2 への参照を返します。したがって、数式はこれらのセル内の 4 つの数値の合計を返します。 10
=INDIRECT("R2C3"; 0) テキスト文字列を囲む引用符が使用され、引数 A1 の値がゼロであることに注意してください。セル R2C3 (C2)の内容を返します。 5
=INDIRECT("R[2]C[-1]"; 0)

セル D1 に数式が入力されています。

A1 引数は 0 であるため、R[2]C[-1]R1C1-式 構文で評価されます。この場合、セル C3 への参照を生成するために、セル D1 (下に2行、横に-1列)に対して相対的に評価されます。 7
=SUM(INDIRECT("a1:" & ADDRESS(1;3))) セル A1 から、行 1 と列 3 でアドレスが定義されているセルまでの範囲のセルを合計します(C1)。 9

Related LibreOffice functions:

ADDRESS

COLUMN

ROW

ODF standard:

Section 6.14.7, part 2

Related (or similar) Excel functions:

INDIRECT