行番号と列番号を指定してセルの内容を取得したいです。行番号と列番号はセル(ここではB1、B2)に保管されています。私は以下の解決策がうまくいくことを知っていますが、彼らは少しハックを感じます。
ソル1
=CELL("contents",INDIRECT(ADDRESS(B1,B2)))
ソル2
=CELL("contents",OFFSET($A$1, B1-1,B2-1))
これ以上冗長な方法はありませんか。 (= CellValue(row、col)などのように)?
編集/明確化:私はExcelワークシートの公式を使いたいだけです。 VBAはありません。つまり、VBA Cells()メソッドと同等のExcel式を探します。
式のCELL()部分は必要ありません。
=INDIRECT(ADDRESS(B1,B2))
または
=OFFSET($A$1, B1-1,B2-1)
両方ともうまくいきます。 INDIRECT
とOFFSET
はどちらもvolatile関数です。揮発性関数は再計算ごとに計算されるため、計算が遅くなる可能性があります。
Try = index(ARRAY、ROW、COLUMN)
配列:シート全体を選択します。行、列:行と列の参照
式を見ている人にとっては、これは理解しやすいはずです。
しばらく時間がかかりましたが、動的にした方法は次のとおりです。ソートテーブルには依存しません。
まず、州名の列(A列)と各州の航空機の列(B列)から始めました。 (行1はヘッダー行です)。
航空機の数を含むセルを見つけることは次のとおりです。
=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1
私はそれをセルに入れて、そのセルに "StateRow"という名前を付けました。それから上のヒントを使って、私はこれを思いついたのです。
=INDIRECT(ADDRESS(StateRow,1))
これは、行 "StateRow"、列1の動的値から州の名前を返します。
現在、データが入力されるにつれてcount列の値が経時的に変化するので、どの州が最も航空機を持っているかを常に把握しています。