引用 excel數組函數-7號 - 站長站 - 站長論壇 - 7hao.net
06-11
引用加菲貓 的excel數組函數1.Excel中的數組數組(array,繁體版稱作陣列),是由數據元素組成的集合,數據無素可以是數值文本日期邏輯錯誤值等。數據元素以行和列的形式組織起來,構成一個數據矩陣。在EXCEL中,根據構成元素的不同,可以把數組分為常量數組和單元格區域數組。1.1.常量數組常量數組可以同時包含多種數據類型。它用{}將構成數組的常量括起來,行中的元素用逗號「,」分隔,行之間用分號「;」分隔。數組常量不能包含其他數組、公式或函數。當輸入如下所示的公式時,Excel 將顯示警告動態:{12A1:D4} 或 {12SUM(Q2:Z8)}。另外,數值不能包含百分號、貨幣符號、逗號或圓括弧。例如,{2"greensky"TRUE#N/A }是一個1行4列的常量數組,而{123;456}則為一個2行3列的常量數組。1.2.單元格區域數組單元格區域數組則是通過對一組連續的單元格區域進行引用而得到的數組。在數組公式中{A1:B4}是一個4行2列的單元格區域數組。1.3.Excel數組的維數數組作為數據的組織形式本身可以是多維的,而且眾多編程都支持多維數組,但是Excel的公式中最高只支持2維數組(也就是行列構成的數組)。關於這個結論,在網路搜索不到明確的答案,做這個結論基於以下兩點:Excel不支持形如={{…}{…}}或={{…};{…}}的書寫格式,所以無法表示3維或多維數組。在Excel中提供對數組引用的函數為index(),它的格式為index(arrayrow_numcolumn_num),它只有行列兩個參數,而沒有引用高於2維數組的參數。index函數也有這樣的格式index(referencerow_numcolumn_numarea_num),它提供了第三個引用參數,是不是說明Excel提供了對3維數組的引用呢?答案是否定的,reference可以使用多個區域(區域之間有逗號隔開)構成的參數,第三個參數area_num是用於指定reference中第幾個區域的,如INDEX((A1:C6A8:C11)112)中第三個參數只是指定區域A8:C11而已。Excel VBA支持多維數組。1.4.數組的引用在運算過程中,可能需要引用數組中的某一個元素、某一行或某一列。上面介紹元素、行、列的引用技巧。元素的引用:對於1維數組index(array c),對於2維數組index(array r c)。其中r表示第幾行,c表示第幾列,一般為正整數。當r為小數時,會捨棄小數點後的部公(非四捨五入),如index(array 1.2 2.9)等同於index(array 1 2)。編程語言一般默認以截取的方式處理小數轉整數的操作,這樣可以提高效率,Excel做這樣的處理也是在意料之內的。行引用index(array r 0)返回第r行數據構成的數組。列引用Index(array 0 c)返回第c列數據構成的數組。特別的,index(array 0 0)將返回整個2維數組。而index(index(array r 0)c)、index(index(array 0 c) r)和index(array r c)相同,都可以返回第r行第c列的元素。
關鍵詞:excel 函數上一篇:使用C#和Excel進行報表開發 下一篇:[轉]怎樣用Excel製作自動記錄的考勤表?
推薦閱讀: