web-dev-qa-db-ja.com

純粋なExcelで、範囲内の列を参照する方法(VBAなし)

シートにその範囲の数値の範囲がありますが、インデックスで指定された列または行全体を参照するにはどうすればよいですか?

2007を使用しています。HLookup/ Vlookup/Indexを調べましたが成功しませんでした。

5
BuZz

別の数式で列/行全体を範囲/配列として参照することを意味していると思いますか?

もしそうなら、私が考えることができる唯一の方法は、OFFSETを使用することです

=OFFSET($A:$A,,MyColIndex-1)
=OFFSET($1:$1,MyRowIndex-1,)

それは...

=OFFSET(reference,rows,cols,[height],[width])

ただし、Aの左側、または1より上の行に列を挿入した場合、これは機能しません。

編集:ちょうどその小さな問題を回避する方法を見つけました...

=OFFSET($A:$A,,MyColIndex-Column($A:$A))
=OFFSET($1:$1,MyRowIndex-Row($1:$1),)
12
Skytunnel

範囲をテーブルに変換できる場合は、構造化参照を使用してテーブルの列を参照できます。

  • テーブルはTable1と呼ばれ、列Column1Column2Column3があります。
  • セルE1には列の名前があります(例:Column1

この場合、(たとえば)E1で指定された列の合計を次のように計算できます。

=SUM(INDIRECT("Table1["& E1 &"]"))
4
stevepastelan

次のようなものはどうですか?

=SUM(INDEX(2:1048576,0,2))

これは、指定された範囲の2番目の列全体、つまりB2:B1048576を合計します。これは、インデックス関数の行引数の0が、指定された範囲内の列全体を返すために機能します。以下は、B2:B3だけを合計します。

=SUM(INDEX(2:3,0,2))

...そしてこれはC2:C3を合計します

=SUM(INDEX(B2:F3,0,2))
3
Doug Glancy