これは絶対に機能します。2012年には互換性がなかったかもしれませんが、確かに2018年には機能します。正しく使用すれば、2012年にも機能したと思います。
INDIRECT関数は、TEXTを範囲参照に変換しようとします。そのTEXTは有効な参照である必要があります。
名前付き範囲はすでに範囲参照です。参照から参照を取得する必要はありません。これが、OPの例がINDIRECTを使用せずに機能する理由です。より可能性の高い実装は、OPからの値 "DefinedName"、またはセル内の任意の名前付き範囲がある場合です。次に、そのセルを間接的にポイントして、プレーンな古いテキストを見つけます。次に、そのテキストを範囲参照に変換します。
INDIRECTの数式を使用して、参照を変更することもできます。一般的なアプローチは、セルにシート名を入れてから、INDIRECTを使用してさまざまなシートからデータをプルすることです。これは主に、数式をコピーして貼り付け、シート(またはセル)参照を新しいターゲットに動的に調整する場合に役立ちます。
設定
3つの空白のワークシート(Sheet1、Sheet2、およびSheet3)が含まれているはずの空白のワークブックから始めます。含まれていない場合は、その時点に到達します。次に、次の基本事項を入力します。シート1
セルA1、「範囲参照」と入力
セルA2、「シートからの合計」と入力します
セルB1に「Sheet2!A1:A4」と入力します(「=」がないことに注意してください。このテキストは範囲参照です)。
セルC1に、「THIRD_SHEET」と入力します(このテキストは、1秒で作成する名前付き範囲に相当します)。
次に、Sheet2で、
セルA1、1を入力
セルA2、2を入力
セルA3、3を入力
セルA4、4を入力
Sheet3で
セルA1〜A4は、それぞれ100〜400に入ります。
次に、Sheet3のセルA1〜A4を参照する「THIRD_SHEET」という名前の範囲を作成します。
Sheet1:セルB2で試して、数式を入力します: "= SUM(INDIRECT(B1))"
その数式をセルC2にコピーします。
結果:
INDIRECTは、列見出しのテキストを使用して、有効な範囲参照を指し示します。これは単なるイラストです。名前付き範囲とテキスト範囲を組み合わせて使用することはおそらくないでしょう。「Sheet1!A1:A4」と書き出すのはあまりきれいではありませんが、標準の数式を使用してテキスト参照に到達することができます。
B2の式を変更してみてください
: "= SUM(INDIRECT(" Sheet "&COLUMN()))&"!A1:A4 "))"
次に、それをセルC2にコピーします。
結果
まあ、同じです。セルA1:A4からのSUMは、それぞれシート2と3から返されます。ただし、今回は列ヘッダーは使用されておらず、範囲参照は、文字列結合「&」演算子とCOLUMN番号を使用してINDIRECT呼び出し自体でアセンブルされています。
名前付き範囲も同じように使用できます。理解しておくべき重要なことは、間接括弧内のすべては、最初に有効なTEXT範囲参照に解決される必要があるということです。
お役に立てば幸いです。