大致上,有兩大類方式可以產生一群值:
- 儲存格範圍(Cell Range)。(例如:$B$2:$D$5)
- 函式傳回陣列(Function Returned Array)。
- (例如:FILTER())
- 直接描述陣列(Literal Array)。(例如:{1,2,3;4,5,6;7,8,9})
1. 儲存格範圍(Cell Range)
如果範圍只涵蓋單個儲存(例如:$A$1:$A$1),並不會形成陣列。Google Sheets會重新將它解釋成單一儲存格(亦即$A$1)。當描述的範圍涵蓋多個儲存格時(例如:$B$2:$D$5),才會形成陣列。
2. 函式傳回陣列(Function Returned Array)
2.1
有些函式的傳回值,在某些狀況下,就已經是陣列了。(例如:FILTER()、QUERY()、INDEX()、...)2.2 直接描述陣列(Literal Array)
可以透過大括號、逗號、分號,直接描述一個陣列。例如:{1,2,3;4,5,6;7,8,9}。(參考資料:Using arrays in Google Sheets)- 大括號({}):表示裡面是描述一個陣列。
- 逗號(,):分隔不同欄(Column)的值。
- 分號(;):分隔不同列(Row)的值。
事實上,大括號({})可以視為是一個「會傳回陣列的函式」,如果一定要給它個名字的話,也許就叫做ARRAY_LITERAL()。
相關文章
1. Google Sheets: Array Lesson 2: 陣列-交集-單值 (Array-Intersection-Single value)2. Google Sheets: Array Lesson 3: 陣列-維持-多值 (Array-Keep-Multiple value)
3. Google Sheets: Array Lesson 4: 陣列-擴展 (Array-Expansion)
參考資料
1. Open Formula: Non-Scalar Evaluation (aka 'Array expressions')2. Apache OpenOffice: Documentation/How Tos/Using Arrays
3. LibreOffice: Calc: Array Functions