「2つのデータ列について、それぞれの二乗を足し合わせた合計を求めたい……」。Excelでこんな計算が必要になったことはありませんか?
セルごとに二乗して足し算して、さらにSUM関数で合計して……と手作業で組むと数式が長くなりがちです。もっとスッキリ書けたら便利ですよね。
そんなときに使うのがSUMX2PY2関数です。この記事では基本の書き方から実務での活用例まで解説します。よく似た姉妹関数(SUMX2MY2・SUMXMY2)との違いも比較表で整理しました。
SUMX2PY2関数とは?平方和の合計を求めるExcel関数
SUMX2PY2関数(読み方: サム エックス スクエアド プラス ワイ スクエアド)は、2つの配列の対応する要素についてxの二乗 + yの二乗の合計を返す関数です。
「SUMX2PY2」は「SUM of X Squared Plus Y Squared」の略です。数式で書くと次のようになります。
SUMX2PY2 = SUM(xi^2 + yi^2)
たとえば X = {3, 4} と Y = {1, 2} なら、3の二乗+1の二乗(=10)と 4の二乗+2の二乗(=20)の合計で 30 になります。
SUMX2PY2関数にできることをまとめると、次のとおりです。
- 2つのデータ列の「二乗の和」を一括で合計する
- 2つのデータセットの全体的な大きさ(スケール)を把握する
- SUMSQ関数(平方和)の応用として使える
- 姉妹関数のSUMX2MY2関数・SUMXMY2関数と組み合わせて多角的な分析ができる
NOTE
SUMX2PY2関数はExcel 2007以降のすべてのバージョンで使えます。Googleスプレッドシートにも同名の関数があり、動作は同じです。
SUMX2PY2関数の書き方(構文と引数)
基本構文
=SUMX2PY2(配列1, 配列2)
カッコの中に、計算したい2つのセル範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 配列1 | 必須 | 1つ目のデータ範囲(x側)。数値、名前、配列、または参照を指定する |
| 配列2 | 必須 | 2つ目のデータ範囲(y側)。数値、名前、配列、または参照を指定する |
2つの配列は同じサイズ(同じ要素数)にする必要があります。サイズが異なると #N/A エラーになるので注意してください。
文字列、論理値、空白セルが含まれている場合は無視されます。ただし数値として0を含むセルは計算の対象です。
SUMX2PY2関数の基本的な使い方
以下のサンプルデータでSUMX2PY2関数を使ってみましょう。
A列にデータX、B列にデータYが入っているとします。
| A列(データX) | B列(データY) | |
|---|---|---|
| 2行目 | 3 | 1 |
| 3行目 | 4 | 2 |
| 4行目 | 5 | 3 |
セル範囲で指定する
=SUMX2PY2(A2:A4, B2:B4)
結果は 64 です。内訳を確認してみましょう。
| 要素 | xの二乗 | yの二乗 | xの二乗 + yの二乗 |
|---|---|---|---|
| 1番目 | 3の二乗=9 | 1の二乗=1 | 10 |
| 2番目 | 4の二乗=16 | 2の二乗=4 | 20 |
| 3番目 | 5の二乗=25 | 3の二乗=9 | 34 |
| 合計 | 64 |
各要素をそれぞれ二乗して、その和を取り、最後に合計しています。
配列定数で直接指定する
セル範囲ではなく、中カッコ {} で囲んだ配列定数を直接入力することもできます。
=SUMX2PY2({3,4,5}, {1,2,3})
こちらも結果は 64 です。ちょっとした検算をしたいときに便利です。
計算の仕組みを数式で検算する
SUMX2PY2の結果が正しいか、個別の数式で確認してみましょう。
=SUMPRODUCT(A2:A4^2 + B2:B4^2)
この数式でも同じ結果の 64 が返ります。SUMX2PY2関数は、この計算を1つの関数でまとめてくれるわけですね。
また、2つの配列それぞれの平方和を個別に求めて足すこともできます。
=SUMSQ(A2:A4) + SUMSQ(B2:B4)
SUMSQ(A2:A4) は 9+16+25=50、SUMSQ(B2:B4) は 1+4+9=14 なので、合計は 64 です。SUMX2PY2関数は、この2つの平方和を1つにまとめた関数ともいえます。
SUMX2PY2関数の実務での活用例
2つのテストスコアの全体的な大きさを把握する
中間テストと期末テストの点数が手元にあるケースを考えてみましょう。
| A列(中間テスト) | B列(期末テスト) | |
|---|---|---|
| 2行目 | 70 | 80 |
| 3行目 | 85 | 75 |
| 4行目 | 60 | 70 |
| 5行目 | 90 | 95 |
| 6行目 | 75 | 65 |
=SUMX2PY2(A2:A6, B2:B6)
結果は 59675 です。この値は、両テストの点数を二乗して合算した「全体の大きさ」を表しています。
SUMX2PY2関数の結果は必ず0以上の値になります。二乗の和なので、マイナスになることはありません。この性質は、データの絶対的なスケールを把握したいときに役立ちます。
TIP
SUMX2PY2の結果が大きいほど、2つのデータセットに含まれる値が全体的に大きいことを意味します。クラスごとのSUMX2PY2を比較すれば、どのクラスの点数が全体的に高いかをざっくり判断できます。
複数店舗の売上データを比較する
2つの地域(A地域・B地域)の店舗売上データを比較する場面でも活用できます。
| A列(A地域の売上) | B列(B地域の売上) | |
|---|---|---|
| 2行目 | 120 | 100 |
| 3行目 | 95 | 110 |
| 4行目 | 130 | 120 |
=SUMX2PY2(A2:A4, B2:B4)
結果は 80350 です。これは両地域の売上データの全体的な規模を表しています。
もう1つの組み合わせ(C地域 vs D地域)のSUMX2PY2と比較すれば、どちらの組み合わせのほうが全体的な売上規模が大きいか判断できます。
SUMSQ関数との使い分け
SUMX2PY2関数とSUMSQ関数の関係を整理しておきましょう。
| やりたいこと | 使う関数 |
|---|---|
| 1つのデータ列の平方和を求める | SUMSQ(A2:A4) |
| 2つのデータ列の平方和をまとめて求める | SUMX2PY2(A2:A4, B2:B4) |
| 3つ以上のデータ列の平方和を求める | SUMSQ(A2:A4) + SUMSQ(B2:B4) + SUMSQ(C2:C4) |
SUMX2PY2は2つの配列に限定されますが、2つのデータセットを比較・合算する場面では数式がシンプルになります。
SUMX2MY2・SUMXMYとの違い
Excelには、SUMX2PY2と名前がよく似た姉妹関数が2つあります。混同しやすいので、比較表で整理しておきましょう。
| 関数名 | 計算内容 | 数式 | 結果の意味 |
|---|---|---|---|
| SUMX2PY2 | 二乗の和の合計 | SUM(xi^2 + yi^2) | xとyの二乗値を合算 |
| SUMX2MY2 | 二乗の差の合計 | SUM(xi^2 – yi^2) | xとyの二乗値の差を比較 |
| SUMXMY2 | 差の二乗の合計 | SUM(xi – yi)^2 | xとyの差を二乗して合算 |
名前の違いは「PY2」「MY2」「XMY2」の部分です。
- SUMX2PY2: X Squared Plus Y Squared(二乗してから足す)
- SUMX2MY2: X Squared Minus Y Squared(二乗してから引く)
- SUMXMY2: (X Minus Y) Squared(引いてから二乗する)
同じデータで3つの関数を比較
X = {3, 4, 5}、Y = {1, 2, 3} で計算してみましょう。
=SUMX2PY2(A2:A4, B2:B4) → 64
=SUMX2MY2(A2:A4, B2:B4) → 36
=SUMXMY2(A2:A4, B2:B4) → 12
| 要素 | SUMX2PY2 (x二乗+y二乗) | SUMX2MY2 (x二乗-y二乗) | SUMXMY2 (x-y)の二乗 |
|---|---|---|---|
| 1番目 | 9+1=10 | 9-1=8 | (3-1)の二乗=4 |
| 2番目 | 16+4=20 | 16-4=12 | (4-2)の二乗=4 |
| 3番目 | 25+9=34 | 25-9=16 | (5-3)の二乗=4 |
| 合計 | 64 | 36 | 12 |
どの関数を使えばいい?
- 2つのデータの全体的な大きさを把握したい → SUMX2PY2(二乗の和なので常にプラス)
- 2つのデータの大きさの優劣を比較したい → SUMX2MY2(差がプラスかマイナスかで判断)
- 2つのデータのズレの大きさを測りたい → SUMXMY2(最小二乗法や誤差の評価に使う)
SUMX2PY2関数は結果が必ず0以上になるため、データの優劣ではなく「全体の規模感」を見たいときに適しています。
よくあるエラーと対処法
#N/Aエラー(配列サイズの不一致)
2つの配列のサイズが異なると #N/A エラーが発生します。
=SUMX2PY2(A2:A4, B2:B5) → #N/Aエラー(3個 vs 4個)
=SUMX2PY2(A2:A4, B2:B4) → 正常に計算される
配列1と配列2の行数(要素数)が一致しているか確認してください。COUNT関数で個数を数えてみると原因がわかりやすいです。
#VALUE!エラー(不正な引数)
引数にセル範囲ではなく文字列を直接指定すると発生します。
=SUMX2PY2("abc", B2:B4) → #VALUE!エラー
SUMX2PY2の引数にはセル範囲または配列定数を指定してください。セル範囲内に文字列が含まれている場合は無視されるので、エラーにはなりません。
結果が0になる場合
すべてのセルが空白・文字列・論理値だけの場合、計算対象の数値がないため結果が0になります。
=SUMX2PY2({"a","b","c"}, {"d","e","f"}) → 0
データに数値が含まれているか確認してみてください。
NOTE
SUMX2MY2関数とは異なり、SUMX2PY2関数で同じ範囲を指定しても0にはなりません。
=SUMX2PY2(A2:A4, A2:A4)は各値の二乗を2倍した合計(= SUMSQ(A2:A4) * 2)を返します。
まとめ
SUMX2PY2関数は、2つの配列の対応する要素について二乗の和の合計を返す関数です。
この記事のポイント
- 構文は
=SUMX2PY2(配列1, 配列2)で、2つのセル範囲を指定する - 平方和の合計(SUM(xi^2 + yi^2))を1つの関数で計算できる
- 結果は必ず0以上の値になる(二乗の和なのでマイナスにならない)
- 2つの配列のサイズが異なると#N/Aエラーになる
- 姉妹関数のSUMX2MY2(二乗の差の合計)・SUMXMY2(差の二乗の合計)と使い分ける
関連記事
SUMX2PY2関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がります。
