2011-01-27 152 views
76

我想根據行號和列號獲取單元格的內容。行號和列號存儲在單元格中(這裏是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公式的等價物。

+0

我們能否獲得更多的上下文?你只使用Excel公式嗎? VBA?其他一些方法? – 2011-01-27 07:55:34

回答

118

你不需要你的公式的CELL()部分:

=INDIRECT(ADDRESS(B1,B2)) 

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

將兩者的工作。請注意,INDIRECTOFFSET都是易失性函數。易失函數會減慢計算速度,因爲它們是在每次重新計算時計算的。

+0

這非常有用,我希望看到它被編輯爲具有正確數目的右括號。 – Wyck 2014-03-14 18:15:28

20

嘗試=指數(ARRAY,行,列)

其中: 陣列:選中整個表格 行,列:您的行和列引用

這應該是比較容易理解那些尋找在公式。

1

我花了一段時間,但這是我的動力。它不依賴於已排序的表。

首先,我從一列狀態名稱(列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

現在,作爲計值隨着更多數據輸入,列隨時間而改變,我總是知道哪個州擁有最多的飛機。

相關問題