10

行/列の変数に基づいて、Excelで範囲を動的に指定できるようにしたいと思います。

次のような内容のファイルがあるとします。

   ABCDE
1 10 11 12 13 14
2 51 52 53 54 55

行1、列2〜4(つまり、11 + 12 + 13)の項目を合計したい場合、どのように指定しますか?

手作業で行う場合は、次のように入力します。

=SUM(B1:D1)

...しかし、必要な行(1)と列番号(2-4)だけを知って、プログラムでその範囲定義をその場で生成するにはどうすればよいですか?

=SUM(????)

よろしくお願いします!

(私はMac用のMicrosoft Excel 2011を使用しているので、Excel VBA /マクロベースのソリューションは機能しません。)

4

3 に答える 3

12

OFFSET私も同じ必要がありました-関数があなたにそれをさせてくれるように見えます。

したがって、上記の場合:

=SUM(OFFSET(A1,0,1,1,3))

それを分解するには:

OFFSET(reference cell,
       row offset from ref cell to start the range,
       col offset to start the range, height of range you want,
       width of range you want)

必要に応じてオフセットをゼロにするか+、参照ダウンし-て参照アップすることができます

于 2013-05-03T17:27:35.607 に答える
3

これは、「既知の」行番号と列番号がどのように参照されているかによって異なります
。たとえば、シートのセルの値である場合は、次のようになります。

     A          B
 9   Row        1
10   ColStart   1
11   ColEnd     4

関数を使用しINDRECTて範囲参照を作成します

=SUM(INDIRECT("R"&B9&"C"&B10&":R"&B9&"C"&B11,FALSE))
于 2011-06-04T00:18:34.033 に答える
2

何が欲しいかわからない。
これですか?

dim parent_range as range
dim child_range as range

set parent_range = me.range("a1:e2")
set child_range = range(parent_range.rows(1).cells(2), parent_range.rows(1).cells(4))

msgbox "=sum(" & child_range.address(false, false, xla1) & ")"

それとも、数式として使用したいですか?

=SUM(INDEX($A$1:$E$2,1,2):INDEX($A$1:$E$2,1,4))
于 2011-06-03T23:49:06.367 に答える