【Excel迷因圖】擷取儲存格值的 4 種方法

繁縷
Jun 28, 2021

--

早前介紹了 選取指定儲存格的 4 種方法 ,這次換湯不換藥,寫下筆者發想的 4 種擷取儲存格值的方法︰

一、=A1

前篇文章用法一樣,假設你當前在 A1 以外的儲存格,並希望得到 A1 儲存格內的值,那就可以用這個方法擷取。

二、=Indirect(Address(1,1))

把位址寫進 =Indirect 函數內,就會讀取該位址的數值,所以筆者偶爾也會把這兩個函數一起應該。關於 Address函數的用法,可能參照前篇文章

三、=Offset(B1,0,-1)

Offset 這個用法,因為比較少見及少應用到,對於普遍的 Excel 使用者來說是比較難想像的概念。如果知道 R1C1 樣式的話,則會比較易理解吧。

先說明 Offset 函數第一個引數的 B1 是指參考位址。這個公式無論你是放在哪個儲存格裡也是不變的。

現在用下圖來說明吧,想像一下這是座位表就好了︰

在公式裡, B1 是「乙同學的座位」。而 0 是列數,由於數值不變,意即同一列,而 -1 是欄數,意即向左一欄。換言之, =Offset(B1,0,-1) 的意思是「乙同學(B1)/同一列(0)/向左數第一人(-1)」。故此,這條公式無論放在哪個位置,方向也是不變。

來嘗試練習一下「坐在丁同學/往後一排/右邊第二個人」這個寫法吧。

如果換成文字題,相信大家也能看得出來,答案是「辛同學」吧。
那要是寫做公式呢?

答案是 ↓

=OFFSET(A2,1,2)

這樣看得懂嗎?「坐在丁同學(A2)/往後一排(1)/右邊第二個人(2)」。

四、Range("A1")/Cells(1,1)

這個也是和前篇文章一樣,在 VBA 裡可以當成擷取值的程式碼。要是讀取不到數值,可以在後面補上 .Value 或者 .Value2 。即是 Range("A1").Value 。

※ 筆者目前使用 Office 2010 ,有關 VBA 的寫法可能不能應用於其他版本。

--

--

繁縷

Excel分享已遷移到Buy me a coffee (ExcelOD)。努力發掘其他興趣中。