2011-01-27 12 views
76

行と列番号が与えられたセルの内容を取得したい。行番号と列番号はセルに格納されます(ここではB1、B2)。私は以下のソリューションが動作することを知っていますが、彼らはちょっとハッキリしています。行と列番号が与えられたセルの内容を取得

ソル1

=CELL("contents",INDIRECT(ADDRESS(B1,B2))) 

ソル2

=CELL("contents",OFFSET($A$1, B1-1,B2-1)) 

にはそれほど冗長方法はありませんか? (= CellValue(行、col)などのような)?

編集/説明: 私はExcelワークシートの式を使いたいだけです。 VBAはありません。要するに、私はVBA Cells()メソッドに相当するものをExcelの式としてかなり探します。

+0

もう少しコンテキストを取得できますか? Excelの式だけを使用していますか? VBA?いくつかの他の方法? –

答えて

118

あなたの式のCELL()の部分は必要ありません。

=INDIRECT(ADDRESS(B1,B2)) 

または

=OFFSET($A$1, B1-1,B2-1) 

両方の仕事があります。 INDIRECTOFFSETの両方がvolatile関数であることに注意してください。揮発性関数は、1回の再計算ごとに計算されるため、計算が遅くなる可能性があります。お探しの方に理解しやすくする必要がありますあなたの行と列の参照

+0

これは、適切な数の閉じ括弧を持つよう編集されていれば十分です。 – Wyck

+6

この質問/回答の人気を考えれば、[volatile関数]についてはここで少し文章を書いてみるとよいでしょう(https://msdn.microsoft.com/en-us/library/office/bb687891.aspx #sectionSection2)があります。 – LondonRob

+0

2番目のフォームでは、$ a $ 1に応じて、シートの後の編集で何らかの$ a $ 1を移動しないことが必要です。 – Erk

20

トライ=指数(ARRAY、ROW、COLUMN)

: アレイ:シート全体を選択し 行、列数式で。

1

私はしばらく時間がかかりましたが、ここで私はそれを動的にしました。ソートされたテーブルに依存しません。

まず、状態名の列(列A)と各状態の航空機の列(列B)から始めました。 (行1はヘッダー行です)。航空機の数を含むセルを検索

た:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1 

は、私が細胞内に、その後は、そのセルの名前を与えたことを入れて、次に上からヒントを使用して「StateRow」 は、私が巻き上げこれは、「StateRow」行の動的な値からの状態の名前を返す

=INDIRECT(ADDRESS(StateRow,1)) 

、カウントの値として次にカラム1

、このとより多くのデータが入力されると時間の経過とともに列が変化し、私はいつどの航空機が最も多くの航空機を持っているかを知っています。

関連する問題