- ベストアンサー
エクセル 名前定義の範囲について
エクセル 名前定義の範囲について質問です。 始まり・終わりの行を示す特定の文字列を設定し、 それを元に自動で範囲の行数を変化させるようなことはできませんでしょうか。 例)A列に、行範囲を示す文字列を記述。 B列以降が実際の範囲となる。 A 1 この行から 2 3 4 5 6 この行まで 7 というように記述されていた場合、 「この行から」「この行まで」という文字列の位置を元に、 名前定義の範囲が自動で「B1:C6」となるような方法を探しています。 「この行から」の位置をA3に変更した場合、 名前定義された範囲も、自動で「B3:C6」に変化して欲しいのです。 ただし、文字列を元に変化するのは行だけで、列の範囲は固定で構いません。 極力マクロを使用しない方法で、有効なものがございましたら ご指導のほどよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
おはようございま~す。。。♪ セル範囲を可変にする式は、他にもありますが。。 =INDEX($B:$B,MATCH("この行から",$A:$A,0)):INDEX($C:$C,MATCH("この行まで",$A:$A,0)) この式を名前定義してみてください。。。 ただし、2つの文字列が入力されてないと エラーになります。 ★MATCH関数の部分はどこかのセルに、2つの行番号を入れて そのセルを参照してもいいですネ!! ご参考にどうぞ。。。 。。。Ms.Rin~♪♪
その他の回答 (1)
- Masa2072
- ベストアンサー率51% (94/182)
INDIRECT関数を利用します。 A3にB1:B6と入力しておき、名前定義でA3に計算範囲という名前を定義したとします。 A4に=SUM(INDIRECT(計算範囲)) と入力すると =SUM(B1:B6)と同じ結果になります。 もちろんA3をB1:C6とすると計算範囲も変わります。 ご希望と若干違いますがこのような方法もあります。 もちろん名前を付ける必要もなく計算範囲という名前の代わりに、直接A3としてもOKです。
お礼
早速のご解答ありがとうございます。 INDIRECT関数の使い方、非常に勉強になりました。 この方法とrin01さんの仰った方法を組み合わせれば、 名前定義する必要もなくなり、使い勝手がさらによくなりそうですね。 重ね重ね、ありがとうございました!
お礼
早速のご解答ありがとうございます。 rin01さんの仰った方法で、やりたかったことが完全にできました。 INDEX関数はこのようにも使えるんですね。大変勉強になります。 重ね重ね、ありがとうございました!