ROWS 函數的功能是回傳參照範圍或陣列的總列數。只要將想計算的範圍放入函數中,就會直接得出該範圍包含了幾列,常與 FILTER 或 OFFSET 等函數搭配使用。
Excel ROWS 函數語法
=ROWS(陣列)| 參數 | 必填 | 說明 |
|---|---|---|
| 陣列 | 是 | 想要計算列數的陣列、公式或儲存格範圍。 |
回傳:整數,代表該範圍或陣列的總列數。
適用版本:Excel 2007 以上版本、Microsoft 365。
ROWS 函數範例
範例 1:計算固定範圍的列數
計算出勤表總共有幾列資料(包含表頭)
| 姓名 | 出勤天數 |
|---|---|
| 王小明 | 20 |
| 陳怡君 | 22 |
| 林俊傑 | 19 |
在 C2 輸入公式:
=ROWS(A1:B4)結果:4。ROWS 函數會計算 A1:B4 範圍內的總列數,包含表頭共 4 列。
範例 2:搭配 OFFSET 動態計算範圍列數
計算透過 OFFSET 取得的動態範圍有幾列
| 產品 | 庫存 |
|---|---|
| 滑鼠 | 50 |
| 鍵盤 | 30 |
| 螢幕 | 15 |
在 C2 輸入公式:
=ROWS(OFFSET(A1, 1, 0, 3, 2))結果:3。OFFSET 函數回傳從 A1 往下 1 列、高度為 3 列的範圍,ROWS 接著計算這個範圍的列數,結果為 3。
範例 3:搭配 FILTER 計算符合條件的資料筆數
計算庫存大於 20 的產品有幾項
| 產品 | 庫存 |
|---|---|
| 滑鼠 | 50 |
| 鍵盤 | 30 |
| 螢幕 | 15 |
| 耳機 | 10 |
在 C2 輸入公式:
=ROWS(FILTER(A2:B5, B2:B5>20))結果:2。FILTER 會先篩選出庫存大於 20 的資料(滑鼠與鍵盤),ROWS 接著計算篩選結果的列數,得出 2 筆。
使用 ROWS 的技巧與注意事項
- ROWS 計算的是範圍的「列數」,而不是包含資料的「筆數」。如果範圍內有空白儲存格,依然會被計算在內。
- ROWS 常與 ROW 函數混淆:ROW 回傳的是指定儲存格的列號,而 ROWS 回傳的是整個範圍的總列數。
- 在建立動態陣列公式時,ROWS 函數可以用來動態決定 SEQUENCE 函數要產生的數列長度。
ROWS 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #REF! | ROWS 參照的範圍被刪除或無效。 | 重新指定正確且存在的儲存格範圍。 |
| 輸入公式時出現錯誤提示 | ROWS 函數只接受一個引數,如果輸入多個引數(例如 =ROWS(A1:A5, B1:B5))會出錯。 | 確保括號內只輸入單一個連續範圍或陣列。 |
Google 試算表可以用 ROWS 嗎?
Google 試算表完全支援 ROWS 函數,語法與用法與 Excel 完全相同。
下載 ROWS 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:ROWS 範例.xlsx(範例公式的結果經過兩個模型交叉核對)。
常見問題
ROWS 和 ROW 函數有什麼不一樣?
ROWS 是計算一個範圍內總共有「幾列」,例如 ROWS(A1:A5) 結果是 5。ROW 則是回傳儲存格所在的「列號」,例如 ROW(A5) 結果是 5。
如果範圍裡面有空白儲存格,ROWS 會計算嗎?
會。ROWS 只看你選取的範圍大小,不管裡面有沒有資料。如果要計算有填寫資料的儲存格數量,應該使用 COUNTA 函數。
ROWS 可以計算多個不連續的範圍嗎?
不行。ROWS 函數只能接受單一個連續範圍或陣列作為引數。如果輸入多個不連續範圍,Excel 會拒絕接受公式或顯示錯誤。
相關函數
這篇收錄在「Excel 函數字典」。




