Lotus Symphony 1.2


陣列函數

此種類包含陣列函數。這些函數為:FREQUENCYGROWTHLINESTLOGESTMDETERMMINVERSE

MMULTMUNITSUMPRODUCTSUMX2MY2SUMX2PY2SUMXMY2TRANSPOSETREND

何謂陣列?

試算表中含有值之資料格之鏈結範圍即稱為陣列。由 3 列 3 欄組成的正方形範圍就是一個 3 x 3 陣列:

  A B C
1 7 31 33
2 95 17 2
3 5 10 50

最小的可能陣列是由兩個相鄰資料格組成的 1 x 2 或 2 x 1 陣列。

何謂陣列公式?

用於演算資料格範圍中各個數值的公式即為陣列公式。陣列公式與其他公式之間的不同之處在於:陣列公式會同時處理數個值,而非單一值。

陣列公式不僅可以處理數個值,還可以傳回數個值。陣列公式的結果也會是一個陣列。

若要將上述陣列中各個資料格內的值都乘以 10,您無需將公式套用至每個資料格或值,而只需使用一個陣列公式。在試算表上的另一個部分選取 3 x 3 的資料格範圍,輸入公式 =10*A1:C3,並使用 CTRL+SHIFT+ENTER 來確認此輸入內容。其計算結果仍會是一個 3 x 3 陣列,其中資料格範圍 (A1:C3) 中的各個數值均放大了 10 倍。

除了乘法之外,您還可以對參照範圍 (陣列) 使用其他各種運算子。在 IBM® Lotus® Symphony™ Spreadsheets 中,您可以進行加 (+)、減 (-)、乘 (*)、除 (/)、使用指數 (^)、連接 (&) 及比較 (=、<>、<、>、<= 和 >=)。若輸入了陣列公式,這些運算子便可用於資料格範圍中的各個數值,並以陣列形式傳回結果。

在陣列公式中使用比較運算子時,對空白資料格的處理規則會與單一比較公式時相同。也就是說,空白資料格可以表示為 0 或一個空白字串。因此,若 A1 和 A2 為空白資料格,則陣列公式 {=A1:A2=""} 和 {=A1:A2=0} 都將傳回 TRUE。

何時需使用陣列公式?

若要對不同數值重複執行相同計算,可使用陣列公式。以後如要變更計算方法,則僅需更新陣列公式即可。若要加入陣列公式,請選取整個陣列範圍,然後對陣列公式進行所需的變更

由於陣列公式不會佔用大量的記憶體,所以在計算數個值時,使用陣列公式還可節省記憶體空間。此外,由於陣列公式適用於數個資料格範圍的計算,因此在執行複雜計算時,它是一項重要工具。IBM Lotus Symphony 具有不同的陣列數學函數,例如 MMULT 函數可以將兩個陣列相乘,SUMPRODUCT 函數可以計算兩個陣列的純量乘積。

使用 Lotus Symphony Spreadsheets 中的陣列公式

您也可以建立「一般」公式,而在此公式中,參照區域 (例如參數) 會指出陣列公式。可從參照範圍與公式中所包含之列或欄的交集中得到結果。如果此處無交集,或交集範圍涵蓋了數個列或欄,則會顯示錯誤訊息 #VALUE!。即會出現錯誤訊息。下列範例清楚說明此概念:

建立陣列公式

如果使用「即時助理:函數」來建立陣列公式,您每次都必須勾選「陣列」勾選框,讓結果會以陣列形式傳回。否則,僅陣列左上角資料格中的數值計算結果會被傳回。

如果直接在資料格中輸入陣列公式,則必須使用 SHIFT+Ctrl+Enter,而不是 Enter 鍵。只有這樣,輸入的公式才會成為陣列公式。

附註圖示 Lotus Symphony Spreadsheets 中,陣列公式會出現在大括弧 ({}) 中。但是,您不能透過手動輸入大括弧來建立陣列公式。

結果陣列中的資料格會自動受到保護,且無法變更。但是,您可以透過選取整個陣列資料格範圍,來編輯或複製陣列公式。

編輯陣列公式

  1. 選取包含陣列公式的資料格範圍或陣列。若要選取整個陣列,請將資料格游標放在該陣列範圍中,然後按 CTRL+/,其中 / 是數字小鍵盤中的除號鍵。

  2. 按 F2 鍵,或將游標置於輸入行。兩者具有相同效果:讓您可編輯此公式。

  3. 變更完成後,按下 Ctrl+Shift+Enter。

複製陣列公式

  1. 選取包含陣列公式的資料格範圍或陣列。

  2. 按 F2 鍵,或將游標置於輸入行。

  3. 然後利用 Ctrl+C,複製輸入行內的公式。

  4. 選取要插入陣列公式的資料格範圍,然後按 F2 鍵,或將游標放置在輸入行中。

  5. 透過按 Ctrl+V 將公式貼上所選位置,然後按 CtrlShift+Enter 進行確認。現在,選取的範圍會包含此陣列公式。

調整陣列範圍

  1. 選取包含陣列公式的資料格範圍或陣列。

  2. 選項的右下方會出現小圖示,您可以利用滑鼠拖曳,將該範圍放大或縮小。

MUNIT

傳回特定大小的一元方形陣列。單位陣列是指主對角線上各元素均為 1,而所有的其他陣列元素均為 0 的方陣。

語法

MUNIT(Dimensions)

Dimensions 是指陣列單位的大小。

範例

在試算表中選取一個正方形範圍,例如從 A1 到 E5。

在不取消選取此範圍的情況下,選取 MUNIT 函數。勾選「陣列」勾選框。輸入陣列單位的大小 (本例為 5),並按一下「確定」

您也可以在所選範圍的最後一個資料格內 (此處為 E5) 輸入公式 =MUNIT(5),並按下 Shift+Ctrl+Enter。

您現在可看到一個範圍為 A1:E5 的單位陣列。

FREQUENCY

以單欄陣列的方式指示頻率分佈。所提供的預設值,以及區間數或類別數可用於計算單一區間內省略了多少個值。

語法

FREQUENCY(Data; Classes)

Data 表示要計算頻率分佈的陣列或數值組的參照

Classes 表示類別集的陣列。

範例

在下表中,欄 A 列出了未排序的測量值。欄 B 列出了您所輸入的類別上限值,用於劃分欄 A 中的資料。依您在 B1 中輸入的限制值,函數 FREQUENCY 會傳回小於或等於 5 的測量值數目。在 B6 中輸入的文字 >25 僅供參考之用。

  A B C
1 12 5 1
2 8 10 3
3 24 15 2
4 11 20 3
5 5 25 1
6 20 >25 1
7 16    
8 9    
9 7    
10 16    
11 33    

選取單欄範圍,用於輸入值大於類別上限的頻率數。您所選取的欄位數必須比類別數多一個。在本例中,選取的是範圍 C1:C6。在即時助理:函數中呼叫函數 FREQUENCY。在 (A1:A11) 中選取用於 Data 的測量範圍,然後選取 Classes 欄,其中輸入了類別限制值 (B1:B6)。選取「陣列」勾選框,並按一下「確定」。您將在最初選取的範圍 C1:C6 中看到頻率計數。

另請參閱下列函數:

COUNTDCOUNT

MDETERM

傳回陣列行列式。此函數會傳回目前資料格中的值,因此無需為結果定義範圍。

語法

MDETERM(array)

array 表示其中定義了行列式的方陣。

範例

MDETERM(C3:D4) = -6。

另請參閱下列函數:

MINVERSEMMULTTRANSPOSE

MINVERSE

傳回指定陣列的反陣列。

語法

MINVERSE(array)

array 表示要反轉的陣列。

範例

選取一個正方形範圍,並選取函數 MINVERSE。依次選取輸出的陣列及 Array 欄位,並按一下「確定」

另請參閱下列函數:

INDEXMMULT

MMULT

計算兩個陣列的乘積。陣列 1 的欄數必須與陣列 2 的列數相同。此方陣中列與欄的數目必須相等。

語法

MMULT(array; array)

第一個 array 參數表示用於計算陣列乘積的第一個陣列。

第二個 array 參數表示用於計算陣列乘積的第二個陣列,其列數需與第一個陣列的欄數相等。

範例

選取一個正方形範圍。選擇 MMULT 函數。選取第一個 Array,然後選取第二個 Array。使用「即時助理:函數」,並勾選「陣列」勾選框。按一下「確定」。匯出的陣列將顯示在第一個選取範圍中。

另請參閱下列函數:

MDETERMMINVTRANSPOSE

TRANSPOSE

轉置陣列的列和欄。

語法

TRANSPOSE(array)

array 表示試算表中要進行轉置的陣列。

範例

在試算表中,選取可顯示轉置陣列的範圍。若原始陣列中有 n 列和 m 欄,則所選取的範圍至少要需有 m 列和 n 欄。然後直接輸入公式,選取原始陣列並按 Shift+Ctrl+Enter。或者,若您使用的是「即時助理:函數」,則需勾選「陣列」勾選框。轉置陣列會顯示在選取的目標範圍中,並會自動受到保護,且無法變更。

另請參閱下列函數:

MDETERMMINVMMULT

LINEST

傳回線性趨勢的參數。

語法

LINEST(Data_Y; Data_X; Linear_Type; Stats)

Data_Y 表示 Y 資料陣列。

Data_X (選擇性) 表示 X 資料陣列。

Linear_type (選擇性)。若此線性會由 0 點開始,則 Linear_Type = 0。

Stats (選擇性)。若 Stats=0,則只計算回歸係數。否則,您會看到其他的 Stats 參數。

範例

此函數傳回一個陣列,其處理方法與其他陣列函數相同。選取用於顯示結果的範圍,然後選取此函數。選取 Data_Y。如果需要,您可以輸入其他參數。選取「陣列」並按一下「確定」

系統所傳回的結果 (若 stats = 0) 至少會顯示此回歸線的斜率,以及與 Y 軸的交叉點。若 Stats 不等於 0,則會顯示其他結果。

其他的 LINEST 結果:

檢查下列範例:

  A B C D E F G
1 x1 x2 y   LINEST 值    
2 4 7 100   4,17 -3,48 82,33
3 5 9 105   5,46 10,96 9,35
4 6 11 104   0,87 5,06 #NA
5 7 12 108   13,21 4 #NA
6 8 15 111   675,45 102,26 #NA
7 9 17 120        
8 10 19 133        

欄 A 包含數個 X1 值,欄 B 包含數個 X2 值,而欄 C 包含數個 Y 值。您已經將這些值輸入試算表中。現在您可在試算表中設定 E2:G6,並啟動「即時助理:函數」。對於所使用的 LINEST 函數,您必須在「即時助理:函數」中勾選「陣列」勾選框。接著,在試算表中選取 (或透過鍵盤輸入) 以下數值:

Data_Y 為 C2:C8

Data_X 為 A2:B8

Linear_TypeStats 均設為 1。

只要按一下「確定」Lotus Symphony Spreadsheets 就會使用範例中顯示的 LINEST 值來填入上述範例。

公式列中的公式會與 LINEST 陣列 {=LINEST(C2:C8;A2:B8;1;1)} 的每一個資料格相對應。

此為算出之 LINEST 值所代表的涵義:

E2 及 F2:依 x1 及 x2 的值計算回歸線 y=b+m*x 的斜率 m。結果會以相反的順序出現;即在 E2 中儲存 x2 的斜率,在 F2 中儲存 x1 的斜率。

G2:與 y 軸的交叉點 b。

E3 及 F3:斜率值的標準誤差。

G3:軸區段的標準誤差。

E4:RSQ

F4:計算 y 值之回歸的標準誤差。

E5:變異分析的 F 值。

F5:變異分析的自由度。

E6:來自其線性平均值之預估 y 值的平方離差總和。

F6:來自指定 y 值之預估 y 值的平方離差總和。

另請參閱下列函數:

LOGESTTRENDGROWTH

LOGEST

此函數會計算輸入資料的調整,以作為指數回歸曲線 (y=b*m^x)。

語法

LOGEST(Data_Y; Data_X; Function_Type; Stats)

Data_Y 表示 Y 資料陣列。

Data_X (選擇性) 表示 X 資料陣列。

Funktion_type (選擇性)。若 Function_Type = 0,會計算 y = m^x 格式中的函數。否則會計算 y = b*m^x 函數。

Stats (選擇性)。若 Stats = 0,則只計算回歸係數。

範例

請參閱 LINEST。但並不會傳回平方總和。

另請參閱下列函數:

LOGESTTRENDGROWTH

SUMPRODUCT

會乘上指定陣列中相對應的元件,並傳回那些乘積的總和。

語法

SUMPRODUCT(Array 1; Array 2...Array 30)

Array 1, Array 2...Array 30 表示其引數要進行乘法運算的陣列。

範例

=SUMPRODUCT(C3;D6;D8;D3) 會傳回 270。

另請參閱下列函數:

MMULTPRODUCTSUM

SUMX2MY2

將兩個陣列的平方差異值相加。

語法

SUMX2MY2(array X; array Y)

array X 表示其元素要進行平方並相加的第一個陣列。

array Y 表示其元素要進行平方並相加的第二個陣列。

範例

=SUMX2MY2(D6; D8) 會傳回 -27。

另請參閱下列函數:

SUMPRODUCTSUMX2PY2SUMXMY2

SUMX2PY2

傳回兩陣列中相對應值之平方總和的總和。

語法

SUMX2PY2(Array X; Array Y)

Array X 表示其引數要進行平方並相加的第一個陣列。

Array Y 表示其元素要進行平方並相加的第二個陣列。

範例

=SUMX2PY2(D6;D8) 會傳回 45。

另請參閱下列函數:

SUMPRODUCTSUMX2MY2SUMXMY2

SUMXMY2

將兩陣列中相對應值間之變異值平方相加。

語法

SUMXMY2(Array X; Array Y)

Array X 表示其元素要進行相減並平方的第一個陣列。

array Y 表示其元素要進行相減並平方的第二個陣列。

範例

=SUMXMY2(D6;D8) 會傳回 45。

另請參閱下列函數:

SUMPRODUCTSUMX2MY2SUMX2PY2

TREND

傳回線性趨勢上的值。

語法

TREND(Data_Y; Data_X; New Data_X; Linear_Type)

Data_Y 表示 Y 資料陣列。

Data_X (選擇性) 表示 X 資料陣列。

New Data_X (選擇性) 表示 X 資料陣列,用於重新計算數值。

Linear_Type (選擇性)。若 Linear_Type = 0,則可透過零點來計算直線。否則也可計算偏移線。預設為 Linear_type <> 0。

範例

選取用於顯示趨勢資料的試算表範圍。選取此函數。輸入匯出資料,或利用滑鼠選取。標示「陣列」欄位。按一下「確定」。螢幕上會顯示依匯出資料計算而得的趨勢資料。

另請參閱下列函數:

LINESTLOGESTGROWTH

GROWTH

計算陣列中指數趨勢的點。

語法

Growth(Data_Y;Data_X; New_Data_X; Function_type)

Data_Y 表示 Y 資料陣列。

Data_X (選擇性) 表示 X 資料陣列。

New_Data_X (選擇性) 表示 X 資料陣列,其中的數值將被重新計算。

Funktion_type (選擇性)。若 Function_Type = 0,會計算 y = m^x 格式中的函數。否則會計算 y = b*m^x 函數。

範例

此函數傳回一個陣列,其處理方法與其他陣列函數相同。選取用於顯示計算結果的範圍,然後選取此函數。選取 Data_Y。輸入其他任何參數,標記「陣列」,並按一下「確定」

另請參閱下列函數:

LINESTLOGESTTREND


其他文件 | 商標