Chapter 7. 函式 (二):查詢與篩選7.1 查詢函式:儲存格位置

7.1 查詢函式:儲存格位置


本章示範檔案:Chapter 7. 函式 (二):查詢與篩選
本章前五節將介紹查詢相關的函式,包括最常聽到的 VLOOKUP、INDEX + MATCH 等,後兩節介紹功能類似篩選器的函數,最後一節再使用兩個進階應用來總結本章所有的公式,本章的函式都非常實用且重要,熟悉後可以有效率的解決工作中大部分的問題。

本節將介紹四種不同功能的函式,主要用於儲存格位置相關資訊之轉換,將先介紹各函式的用法,再使用範例說明之。各函式說明如下:

  • 儲存格所在位置:

語法

ROW / COLUMN ([儲存格參照])

輸入

儲存格參照:要輸出哪個儲存格所在的列 / 欄,預設為公式所在的儲存格。若儲存格參照包含多個儲存格,會輸出最左上角的儲存格。

輸出

儲存格參照 所在的列 / 欄,其中欄的 A=1、B=2,以此類推。

  • 儲存格範圍的列 / 欄數量:

語法

ROWS / COLUMNS (範圍)

輸入

範圍:要計算哪個範圍的列 / 欄數量。

輸出

範圍 有幾列 / 欄,若範圍超出該工作表的列 / 欄數時,只會計算存在的列數,例如某工作表有 1000 列,若使用 =ROWS(A1:A10000) 會輸出 1000。


  • 將儲存格位置以字串顯示:

語法

ADDRESS (, , [絕對相對模式], [使用 A1 表示法], [工作表])

輸入

  •  / :第幾列 / 欄。
  • 絕對相對模式:1~4,預設為 1,其意義分別如下:
    • 1:列、欄皆為絕對參照。
    • 2:列絕對參照、欄相對參照。
    • 3:列相對參照、欄絕對參照。
    • 4:列、欄皆為相對參照。
  • 使用 A1 表示法:TRUE / FALSE,預設為 TRUE,即使用 A1 Notation 輸出,若選 FALSE 則會以 R1C1 Notation 的方式輸出。兩個 Notation 的差異如下:
    • A1 Notation:一般公式中表示儲存格的方式,字母與數字分別表示欄、列,若要使用絕對參照則在欄 / 列中加上金錢符號「$」即可。
    • R1C1 Notation:R / C 分別表示列 / 欄,表示方式是在 R 和 C 後面加上數字表示儲存格的位置,若為相對參照則在數字外包上 [ ]。在 R1C1 Notation 中絕對參照與相對參照的意義不太相同,如下:
      • 絕對參照:第幾列 / 欄的資料,例如 R3C2 代表 B3 儲存格,此時  / 必須是正數。
      • 相對參照:目前的儲存格往上 / 下 / 左 / 右移動幾格,正數代表往右 / 下移動、負數代表往左 / 上移動,例如對 C4 儲存格而言 R[3]C[2] 代表 E7、R[-3]C[-2] 代表 A1。
  • 工作表:儲存格字串的工作表名稱,需為字串格式,預設為空值。

輸出

符合各項輸入設定的儲存格字串,例如 '工作表'!$A1R[-3]C[-1]

  • 輸出儲存格字串的內容:

語法

INDIRECT (儲存格參照字串, [使用 A1 表示法])

輸入

  • 儲存格參照字串:以字串寫成的儲存格參照。
  • 使用 A1 表示法:TRUE / FALSE,預設為 TRUE,即使用 A1 Notation 輸出,若選 FALSE 則會以 R1C1 Notation 的方式輸出。

輸出

儲存格參照字串 的內容。

接下來將使用八個範例說明上述函式的用法:

  1. 當前儲存格所在列數

    公式

    =ROW()

    解說

    因為 ROW 預設為當前所在儲存格,所以可以不用輸入參數。


  1. B3 儲存格所在欄數

    公式

    =COLUMN(B3)

    解說

    因為欄的 A=1、B=2,因此在此輸出 2。

  2. B3:C30 的 (1) 列數與 (2) 欄數

    公式

    (1) =ROWS(B3:C30)

    (2) =COLUMNS(B3:C30)

    解說

    (1) 因為在工作表中只有 14 列,因此會輸出 14-3+1=12。

  3. 已命名範圍「會員卡號」的列數

    公式

    =ROWS(會員卡號)

    解說

    已命名範圍 會員卡號 共有 31 列,因此輸出 31。

  4. 用字串表示 (1) $B3、(2) '會員資料檔'!$B3

    公式

    (1) =ADDRESS(3,2,3)

    (2) =ADDRESS(3,2,3,,"會員資料檔")

    解說

    (2) 在此要使用 A1 表示法,但 ADDRESS 已經預設使用 A1 表示法,因此可直接留空。

  5. 儲存格字串 (1) C7、(2) "C7" 的內容

    公式

    (1) =INDIRECT(C7)

    (2) =INDIRECT("C7")

    解說

    (1) 會將 C7 的內容轉為字串,為 $B3,因此輸出 B3 儲存格的內容。

    (2) 會輸出 C7 儲存格的內容。

  6. 使用 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 代替。

  7. 取得 (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 儲存格的內容。