IBM Lotus Symphony


配列関数

ここでは、行列に関する関数について説明します。

配列とは ?

配列とは、スプレッドシートにおいて 1 つのまとまりとして扱われる、値を持つセル範囲のことです。例えば、3 行と 3 列からなる長方形の範囲のことを 3 x 3 行列と呼びます。

表 1. 3 x 3 配列
  A B C
1 7 31 33
2 95 17 2
3 5 10 50

最小の配列は、隣接するセルからなる 1 x 2 または 2 x 1 の配列です。

配列数式とは ?

行列式とは、セル範囲の各セルの値を評価する式のことです。行列式がその他の式と違うところは、1 つの値だけではなく、複数の値を同時に処理するところです。

行列式は、複数の値を処理できるだけではなく、複数の値を返すこともできます。つまり、行列式は引数も戻り値も行列です。

例えば、上記行列の各セルの値に 10 を掛ける場合、セルごとに数式を作成する必要はありません。1 つの行列式だけで計算できます。まず、スプレッドシートの任意の場所で 3 x 3 のセル範囲を選択して、数式 =10*A1:C3 を入力し、([Enter] キーだけではなく)、[Ctrl] + [Shift] + [Enter] キーの組み合わせで入力を確定します。すると、セル範囲 A1:C3 の各セルの値に 10 を掛けた戻り値が、3 x 3 の行列として、選択したセル範囲に表示されます。

セル範囲 (行列) には、乗算だけではなく、さまざまな演算を適用できます。Lotus® Symphony™ Spreadsheets では、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、べき算 (^)、連結文字 (&)、および比較 (=、<>、<、>、<=、>=) を適用できます。行列式を入力すれば、セル範囲の個々のセルの値に演算を適用して、結果を行列として返すことができます。

配列数式内の比較演算子は、空のセルを通常の数式内と同じように扱います。つまり、ゼロと見なすか空の文字列と見なします。例えば、セル A1 と A2 が空の場合、配列数式 {=A1:A2=""}{=A1:A2=0} は、どちらも TRUE が入っているセルの 1 列 2 行の配列を返します。

配列数式はどんなときに使用するのか ?

配列数式を使用するのは、同じ計算を異なる値で繰り返す場合です。後で計算方法を変更する必要が出てきた場合、配列数式を更新するだけでかまいません。配列数式を変更するには、まず、配列のセル範囲全体を選択して、次に、必要な変更を配列数式に加えます。

配列数式はあまりメモリを必要としないため、複数の値を計算するときに使用するとスペースを節約できます。さらに、配列数式は複数のセル範囲を計算できるため、複雑な計算を実行するときにも重要なツールになります。Lotus Symphony は、さまざまな数学関数を用意しています。例えば、MMULT 関数は 2 つの配列を掛けることができ、SUMPRODUCT 関数は 2 つの配列のスカラー積を求めることができます。

Lotus Symphony Spreadsheets での配列数式の使用方法

配列演算のパラメータのように入力されている範囲を普通の数式に使うこともできます。 その場合、範囲全体が計算対象になるのではなく、参照範囲と数式セルの交差するセルのみが計算対象になります。交差するセルがなかったり、複数あったりする場合は、エラー #value! が返ります。次に例を示します。

配列数式の作成

[関数ウィザード] を使用して配列数式を作成した場合は、結果が配列で戻るように、[配列] チェックボックスをオンにする必要があります。オンにしないと、配列は返されず、配列の左上にあるセルの値だけが返されます。

また、配列数式をセルに直接入力する場合は、[Enter] キーだけではなく、[Ctrl] + [Shift] + [Enter] キーの組み合わせで入力を確定する必要があります。[Enter] キーだけで確定すると、数式は行列式と見なされません。

ノートアイコン Lotus Symphony Spreadsheets では、配列数式は中括弧に囲まれて表示されます。 しかし、ユーザーが配列数式を作成するときに、自分で配列数式を中括弧で囲んではなりません。

結果の配列は自動的に保護されるため変更できません。しかし、結果の配列全体を選択すれば、配列数式を編集またはコピーできます。

数式内でのインライン配列定数の使用

Lotus Symphony Spreadsheets は、数式内でのインライン配列/配列定数をサポートしています。インライン配列は、中括弧の { と } で囲みます。要素はそれぞれ、数値 (負数を含む)、論理定数 (TRUE、FALSE)、またはリテラルストリングとすることができます。定数以外の式は許可されません。配列は 1 つ以上の行、および 1 つ以上の列を使用して入力できます。すべての行は同じ数の要素からなり、すべての列は同じ数の要素からなる必要があります。

1 行の中の各要素を区切る列区切り記号は、セミコロン (;) です。行の区切り記号は、パイプ記号 (|) です。区切り記号は、言語およびロケールに依存しません。

配列を入れ子にすることはできません。

例:

={1;2;3}

1、2、3 の 3 つの数値からなる 1 行の配列。

この配列定数を入力するには、ある行で 3 つのセルを選択してから、中括弧とセミコロンを使用して数式 ={1;2;3} を入力し、[Ctrl]+[Shift]+[Enter] キーを押します。

={1;2;3|4;5;6}

2 つの行と行ごとに 3 つの値を持つ配列。

={0;1;2|FALSE;TRUE;"two"}

混合データ配列。

=SIN({1;2;3})

行列式として入力され、引数 1、2、3 を使用した 3 つの SIN 計算の結果を生成します。

配列数式の編集

  1. 行列式が含まれるセル範囲 (つまり、行列) を選択します。配列全体を選択するには、セルカーソルを配列内に置いて、[Ctrl] + [/] を押します。ここで、[/] はテンキーにある除算記号 (スラッシュ) です。

  2. [F2] キーを押すか、またはカーソルを数式入力ボックスに置きます。これで数式が編集できる状態になりました。

  3. 数式を変更した上で [Ctrl] + [Shift] + [Enter] を押して入力を確定します。

ヒントアイコン 配列の別々の部分を書式設定できます。例えば、フォントの色を変更できます。セル範囲を選択してから、必要な属性を変更してください。

配列数式のコピー

  1. 配列数式が含まれるセル範囲 (つまり、配列) を選択します。

  2. [F2] キーを押すか、またはカーソルを数式入力ボックスに置きます。

  3. 数式入力ボックスの数式を [Ctrl] + [C] でクリップボードにコピーします。

  4. 行列式を挿入するセル範囲を選択して、[F2] を押すか、カーソルを数式入力ボックスに置きます。

  5. 配列数式を貼り付けるには、貼り付けたい場所を選択して、[Ctrl] + [V] を押し、[Ctrl] + [Shift] + [Enter] キーの組み合わせで入力を確定します。すると、選択した範囲に行列式がコピーされます。

配列範囲の変更

出力配列を編集する場合は、次のようにします。

  1. 配列数式が含まれるセル範囲 (つまり、配列) を選択します。

  2. 選択範囲の右下に、サイズ変更の際にドラッグする小さな四角が表示されます。

ノートアイコン 配列範囲を調整しても、配列数式は自動調整されません。結果が表示される範囲が変更されるだけです。

[Ctrl] キーを押したままにすると、所定の範囲内の配列数式のコピーを作成できます。

条件付き配列計算

条件付き配列計算は、IF() 関数または CHOOSE() 関数を含んでいる配列または行列式です。式の中の条件引数は、領域参照か配列結果です。

次の例では、{=IF(A1:A3>0;"yes";"no")} 式の >0 テストが A1:A3 の範囲の各セルに適用され、対応するセルに結果がコピーされます。

表 2. 条件付き配列計算の例
  A B (式) B (結果)
1 1 {=IF(A1:A3>0;"yes";"no")} yes
2 0 {=IF(A1:A3>0;"yes";"no")} no
3 1 {=IF(A1:A3>0;"yes";"no")} yes

以下の関数では、配列処理を強制できます。CORREL、COVAR、FORECAST、FTEST、INTERCEPT、MDETERM、MINVERSE、MMULT、MODE、PEARSON、PROB、RSQ、SLOPE、STEYX、SUMPRODUCT、SUMX2MY2、SUMX2PY2、SUMXMY2、TTEST。これらのいずれかの関数を呼び出すときに、領域参照を引数として使用した場合、関数は配列関数として動作します。次の表に、強制的な配列処理の例を示します。

表 3. 強制的な配列処理の例
  A B (式) B (結果) C (強制配列式) C (結果)
1 1 =A1:A2+1 2 =SUMPRODUCT(A1:A2+1) 5
2 2 =A1:A2+1 3 =SUMPRODUCT(A1:A2+1) 5
3   =A1:A2+1 #VALUE! =SUMPRODUCT(A1:A2+1) 5

MUNIT

指定した次元の正方配列である単位配列を返します。単位配列とは、メインとなる対角線の要素が 1 で、その他の要素が 0 である正方配列のことです。

構文

MUNIT(次元)

次元 は単位配列の大きさです。

ノートアイコン このページの上部に、配列関数の一般的な説明があります。

表内で行数と列数が等しい範囲 (例えば A1:E5) を選択します。

範囲の選択を解除せずに、MUNIT 関数を選択します。チェックボックス 配列 をオンにします。希望する単位配列の次元 (この場合は 5) を入力して、[OK] をクリックします。

別の方法として、選択した範囲の最後のセル (ここでは E5) に数式 =Munit(5) を入力して [Shift] + [Ctrl] + [Enter] で確定することもできます。

すると、A1:E5 の範囲に単位行列が表示されます。

このページの上部に詳細な説明があります。

FREQUENCY

頻度分布を 1 列の配列で返します。この関数は、データ範囲の配列内で、区間の配列によって指定された値の範囲内にある値の数をカウントします。

構文

FREQUENCY(データ範囲; 区間)

データ範囲 は、カウントされる値の参照を表します。

区間 は、しきい値の配列を表します。

ノートアイコン このページの上部に、配列関数の一般的な説明があります。

次の表を見てください。列 A にはなんらかの測定値が任意の順序で入力されています。列 B には列 A を階級に分けるための上限値が入力されています。FREQUENCY 関数はまず、B1 に入力されている上限値 5 に従って、5 以下の測定値の数を返します。次に、B2 に入力されている上限値 10 に従って、5 より大きく 10 以下の測定値の数を返します (以降、同様に続きます)。なお、B6 に入力されている「>25」は参考のための文字列であり、上限値ではないことに注意します。

表 4. FREQUENCY 関数の例
  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    

区間のしきい値に従って頻度を入力する列の範囲を指定します。このとき、列 B に指定されているクラスの数よりも 1 つ多くセルを選択します (一番上の階級の上限値を超えるデータがあるため)。この例ではセル範囲 C1:C6 を選択します。[関数ウィザード] から FREQUENCY 関数を呼び出します。まず、データ範囲 の範囲として (A1:A11) を選択し、次に、区間のしきい値 (B1:B6) を入力した区間 の範囲を選択します。[配列] チェックボックスを選択して、[OK] をクリックします。範囲 C1:C6 に頻度のカウントが表示されます。

このページの上部に詳細な説明があります。

MDETERM

正方配列の配列数式を返します。この関数は現在のセルに値を返すため、結果を表示する範囲をあらかじめ指定しておく必要はありません。

構文

MDETERM(配列)

配列 は、配列数式が定義されている正方配列です。

ノートアイコン このページの上部に、配列関数の使用法に関する一般的な説明があります。

このページの上部に詳細な説明があります。

MINVERSE

逆配列を返します。

構文

MINVERSE(配列)

配列 は、逆転させる正方配列です。

このページの上部に詳細な説明があります。

正方配列を選択して、MINVERSE を選択します。結果を表示する配列を選択します。[配列] チェックボックスをオンにして、[OK] をクリックします。

MMULT

2 つの配列の積を求めます。配列 1 の列数は配列 2 の行数と一致する必要があります。結果は正方配列になります。

構文

MMULT(配列; 配列)

配列 1 は、配列の積を求める 1 つめの配列です。

配列 2 は、配列の積を求める 2 つめの配列です。

ノートアイコン このページの上部に詳細な説明があります。

行数と列数が等しいセル範囲 (正方配列) を選択します。MMULT 関数を選択します。[配列 1] を選択し、次に、[配列 2] を選択します。[関数ウィザード] を使用している場合は、[配列] チェックボックスをオンにします。[OK] をクリックします。最初に選択した範囲に結果が表示されます。

TRANSPOSE

配列の行と列を入れ替えます。

構文

TRANSPOSE(配列)

配列 は、列と行を入れ替える配列です。

このページの上部に詳細な説明があります。

行と列を入れ替えた配列を表示するセル範囲を選択します。元の配列が n 行 x m 列であった場合、少なくとも m 行 x n 列のセル範囲を選択する必要があります。次に、数式を直接入力します。元の配列を選択して、[Shift] + [Ctrl] + [Enter] キーの組み合わせを押します。または、[関数ウィザード] を使用している場合は、[配列] チェックボックスをオンにします。最初に選択したセル範囲に、行と列を入れ替えた配列が表示されます。結果の配列は自動的に保護されるため変更できません。

LINEST

データ集合に最もよく適合する直線の統計表を返します。

構文

LINEST(data_Y; data_X; linearType; stats)

data_Y は、データポイント集合内の y 座標を指定する単一の行または列の範囲です。

data_X は、それに対応して x 座標を指定する単一の行または列の範囲です。data_X を省略した場合のデフォルトは、1, 2, 3, ..., n です。複数の変数セットが存在する場合、data_X は対応する複数の行または列を持つ範囲とすることができます。

LINEST は、線形回帰 (「最小二乗法」) を使用して、データに最もよく適合する直線 y = a + bx を検出します。複数の変数セットがある場合、直線は y = a + b1x1 + b2x2 ... + bnxn の形式になります。

linearType が FALSE の場合、検出される直線は原点を通ることが強制されます (定数 a がゼロ。y = bx)。linearType を省略した場合は、デフォルトの TRUE になります (直線は原点を通ることを強制されません)。

stats を省略するか FALSE に指定した場合は、統計表の一番上の行が返されます。TRUE の場合は、表全体が返されます。

LINEST は、以下のように統計の表 (配列) を返し、配列数式として (例えば、単なる [リターン] キーでなく、[Ctrl]+[Shift]+[リターン] キーを使用して) 入力する必要があります。

Lotus Symphony Spreadsheets 関数では、「オプション」とマーク付けされたパラメータを省略できるのは、それに続くパラメータがない場合のみです。たとえば、4 つのパラメータを持つ関数で、最後の 2 つのパラメータが「オプション」とマーク付けされている場合、パラメータ 4、またはパラメータ 3 と 4 を省略することは可能ですが、パラメータ 3 のみを省略することはできません。

このページの上部に詳細な説明があります。

この関数は結果を配列で返すため、別の配列関数と同様に扱います。結果を表示するセル範囲を選択して、LINEST を選択します。data_Y を選択します。必要であれば、他のパラメータを入力できます。チェックボックス [配列] をオンにして、[OK] をクリックします。

システムが返す結果 (stats = 0 の場合) は、最小でも回帰直線の傾きと、その回帰直線と Y 軸の交点を示します。stats が 0 以外の場合は、その他の結果が表示されます。

LINEST 関数の結果:

次の例を参照してください。

表 5. LINEST 関数の例
  A B C D E F G
1 x1 x2 y   LIN EST 値    
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

linearTypestats は、どちらも 1 に設定します。

[OK] をクリックすると、Lotus Symphony Spreadsheets は最初に選択したセル範囲に LINEST の結果を表示します (上記例を参照)。

数式バー には、各セルに対応する LINEST 配列 {=LINEST(C2:C8;A2:B8;1;1)} を表示します。

これは、以下のような計算された LINEST 値を表しています。

E2 および F2: 回帰直線 y=b+m*x における x1 と x2 の値による傾き m。この値は逆の順序で返されます。つまり、x2 の傾きは E2 に、x1 の傾きは F2 に返されます。

G2: Y 軸との交点 b。

E3 および F3: 傾きの標準誤差。

G3: 切片の標準誤差。

E4: 確実度の係数。

F4: 回帰から算出した Y 値の標準誤差。

E5: 変数分析による F 値。

F5: 変数分析による自由度。

E6: 算術平均から予測される Y 値の偏差の平方和。

F6: 指定した Y 値から予測される Y 値の偏差の平方和。

このページの上部に詳細な説明があります。

LOGEST

この関数は、指定されたデータに最もよく当てはまる指数曲線 (指数の回帰、y=b*m^x) を返します。

構文

LOGEST(DataY; DataX; FunctionType; Stats)

DataY は、Y データ配列を表します。

DataX (オプション) は、X データ配列を表します。

FunctionType (オプション)。計算方式に 0 を指定すると y=m^x が計算されます。それ以外の場合は y=b*m^x も計算されます。

補正 (オプション)。補正に 0 を指定すると、回帰係数だけが計算されます。

Lotus Symphony Spreadsheets 関数では、「オプション」とマーク付けされたパラメータを省略できるのは、それに続くパラメータがない場合のみです。たとえば、4 つのパラメータを持つ関数で、最後の 2 つのパラメータが「オプション」とマーク付けされている場合、パラメータ 4、またはパラメータ 3 と 4 を省略することは可能ですが、パラメータ 3 のみを省略することはできません。

このページの上部に詳細な説明があります。

LINEST 関数を参照してください。ただし、戻り値は平方和ではありません。

SUMPRODUCT

指定された配列内にある複数の対応する要素同士を乗算し、それらの積の和を返します。

構文

SUMPRODUCT(Array1; Array2...Array30)

Array1, Array2...Array30 は各配列を表します。それらの配列の対応する要素同士が乗算されます。

少なくとも 1 つの配列が引数リストに含まれている必要があります。1 つの配列だけを指定した場合は、すべての配列要素が合計されます。

表 6. SUMPRODUCT の例
  A B C D
1 2 3 4 5
2 6 7 8 9
3 10 11 12 13

=SUMPRODUCT(A1:B3;C1:D3) は 397 を返します。

計算: A1*C1 + B1*D1 + A2*C2 + B2*D2 + A3*C3 + B3*D3

SUMPRODUCT を使用して、2 つのベクトルのスカラー積を計算できます。

ノートアイコン SUMPRODUCT は単一の数値を返します。この関数を配列関数として入力する必要はありません。

このページの上部に詳細な説明があります。

SUMX2MY2

2 つの配列の平方差を合計します。この関数で計算されるのは、平方の差の合計です。

構文

SUMX2MY2(ArrayX; ArrayY)

ArrayX は、要素を 2 乗して加算する 1 つめの配列を表します。

ArrayY は、要素を 2 乗して減算する 2 つめの配列を表します。

このページの上部に詳細な説明があります。

SUMX2PY2

2 つの配列の平方和の合計を求めます。

構文

SUMX2PY2(ArrayX; ArrayY)

ArrayX は、引数を 2 乗して加算する 1 つめの配列を表します。

ArrayY は、要素を加算して 2 乗する 2 つめの配列を表します。

このページの上部に詳細な説明があります。

SUMXMY2

2 つの配列で対応する要素の差を 2 乗した上で、その合計を返します。

構文

SUMXMY2(ArrayX; ArrayY)

ArrayX は、要素を減算して 2 乗する 1 つめの配列を表します。

ArrayY は、要素を減算して 2 乗する 2 つめの配列を表します。

このページの上部に詳細な説明があります。

TREND

線の傾向を求めます。

構文

TREND(DataY; DataX; NewDataX; LinearType)

DataY は、Y データ配列を表します。

DataX (オプション) は、X データ配列を表します。

NewDataX (オプション) は、値の再計算に使用する X データの配列です。

LinearType (オプション)。 LinearType = 0 の場合は、ゼロ点を通る直線が計算されます。それ以外の場合は、オフセットの直線も計算されます。デフォルトは LinearType <> 0 です。

Lotus Symphony Spreadsheets 関数では、「オプション」とマーク付けされたパラメータを省略できるのは、それに続くパラメータがない場合のみです。たとえば、4 つのパラメータを持つ関数で、最後の 2 つのパラメータが「オプション」とマーク付けされている場合、パラメータ 4、またはパラメータ 3 と 4 を省略することは可能ですが、パラメータ 3 のみを省略することはできません。

このページの上部に詳細な説明があります。

結果を表示するセル範囲を選択します。TREND 関数を選択します。関数を選択します。 出力データを入力するか、またはマウスで選択します。 [配列] フィールドをオンにします。[OK] をクリックします。出力データから算出されたトレンドデータが表示されます。

GROWTH

指数トレンドで配列の傾向を求めます。

構文

GROWTH(DataY; DataX; NewDataX; FunctionType)

DataY は、Y データ配列を表します。

DataX (オプション) は、X データ配列を表します。

NewDataX (オプション) は、値を再計算する X データ配列を表します。

FunctionType (オプション)。FunctionType = 0 の場合、y = m^x の形式の関数が計算されます。それ以外の場合は y=b*m^x も計算されます。

Lotus Symphony Spreadsheets 関数では、「オプション」とマーク付けされたパラメータを省略できるのは、それに続くパラメータがない場合のみです。たとえば、4 つのパラメータを持つ関数で、最後の 2 つのパラメータが「オプション」とマーク付けされている場合、パラメータ 4、またはパラメータ 3 と 4 を省略することは可能ですが、パラメータ 3 のみを省略することはできません。

このページの上部に詳細な説明があります。

この関数は結果を配列で返すため、別の配列関数と同様に扱います。回答を表示したい範囲を選択し、関数を選択します。Data_Y を選択します。DataY を選択します。他のパラメータを入力し、[配列] にマークを付け、[OK] をクリックします。


製品フィードバック | その他の資料 | 商標