Chapter 7. 函式 (二):查詢與篩選 › 7.1 查詢函式:儲存格位置
7.1 查詢函式:儲存格位置
本章前五節將介紹查詢相關的函式,包括最常聽到的 VLOOKUP、INDEX + MATCH 等,後兩節介紹功能類似篩選器的函數,最後一節再使用兩個進階應用來總結本章所有的公式,本章的函式都非常實用且重要,熟悉後可以有效率的解決工作中大部分的問題。
本節將介紹四種不同功能的函式,主要用於儲存格位置相關資訊之轉換,將先介紹各函式的用法,再使用範例說明之。各函式說明如下:
- 儲存格所在位置:
語法 | |
輸入 | 儲存格參照:要輸出哪個儲存格所在的列 / 欄,預設為公式所在的儲存格。若儲存格參照包含多個儲存格,會輸出最左上角的儲存格。 |
輸出 | 儲存格參照 所在的列 / 欄,其中欄的 A=1、B=2,以此類推。 |
- 儲存格範圍的列 / 欄數量:
語法 | |
輸入 | 範圍:要計算哪個範圍的列 / 欄數量。 |
輸出 | 範圍 有幾列 / 欄,若範圍超出該工作表的列 / 欄數時,只會計算存在的列數,例如某工作表有 1000 列,若使用 =ROWS(A1:A10000) 會輸出 1000。 |
- 將儲存格位置以字串顯示:
語法 | ADDRESS (列, 欄, [絕對相對模式], [使用 A1 表示法], [工作表]) |
輸入 |
|
輸出 | 符合各項輸入設定的儲存格字串,例如 '工作表'!$A1、R[-3]C[-1]。 |
- 輸出儲存格字串的內容:
語法 | INDIRECT (儲存格參照字串, [使用 A1 表示法]) |
輸入 |
|
輸出 | 儲存格參照字串 的內容。 |
接下來將使用八個範例說明上述函式的用法:
- 當前儲存格所在列數
公式
=ROW()
解說
因為 ROW 預設為當前所在儲存格,所以可以不用輸入參數。
- B3 儲存格所在欄數
公式
=COLUMN(B3)
解說
因為欄的 A=1、B=2,因此在此輸出 2。
- B3:C30 的 (1) 列數與 (2) 欄數
公式
(1) =ROWS(B3:C30)
(2) =COLUMNS(B3:C30)
解說
(1) 因為在工作表中只有 14 列,因此會輸出 14-3+1=12。
- 已命名範圍「會員卡號」的列數
公式
=ROWS(會員卡號)
解說
已命名範圍 會員卡號 共有 31 列,因此輸出 31。
- 用字串表示 (1) $B3、(2) '會員資料檔'!$B3
公式
(1) =ADDRESS(3,2,3)
(2) =ADDRESS(3,2,3,,"會員資料檔")
解說
(2) 在此要使用 A1 表示法,但 ADDRESS 已經預設使用 A1 表示法,因此可直接留空。
- 儲存格字串 (1) C7、(2) "C7" 的內容
公式
(1) =INDIRECT(C7)
(2) =INDIRECT("C7")
解說
(1) 會將 C7 的內容轉為字串,為 $B3,因此輸出 B3 儲存格的內容。
(2) 會輸出 C7 儲存格的內容。
- 使用 R1C1 Notation 表示 (1) R3C1、(2) R[-3]C[-1]」
公式
(1) =ADDRESS(3,1,1,FALSE)
(2) =ADDRESS(-3,-1,4,FALSE)
解說
在此 TRUE / FALSE 也可以使用 1 / 0 代替。
- 取得 (1) R3C1、(2) R[-3]C[-1] 的內容
公式
(1) =INDIRECT("R3C1",FALSE)
(2) =INDIRECT("R[-3]C[-1]",FALSE)
解說
(1) 在此為絕對參照,因此會輸出 A3 儲存格的內容。
(2) 在此為相對參照,公式所在位置為 C14,因此會輸出第 14-3=11 列、第 3-1=2 欄,也就是 B11 儲存格的內容。