ExcelのSUMX2MY2関数の使い方|2つのデータの平方差を合計する方法

スポンサーリンク

「2つのデータ列を比較して、それぞれの二乗の差を合計したい……」。Excelでこんな計算が必要になったことはありませんか?

セルごとに二乗して引き算して、さらにSUM関数で合計して……と手作業で組むと数式が長くなりがちです。もっとスッキリ書けたら便利ですよね。

そんなときに使うのがSUMX2MY2関数です。この記事では基本の書き方から実務での活用例まで解説します。よく似た姉妹関数(SUMX2PY2・SUMXMY2)との違いも比較表で整理しました。

SUMX2MY2関数とは?平方差の合計を求めるExcel関数

SUMX2MY2関数(読み方: サム エックス スクエアド マイナス ワイ スクエアド)は、2つの配列の対応する要素についてxの二乗 – yの二乗の合計を返す関数です。

「SUMX2MY2」は「SUM of X Squared Minus Y Squared」の略です。数式で書くと次のようになります。

SUMX2MY2 = SUM(xi^2 - yi^2)

たとえば X = {3, 4} と Y = {1, 2} なら、3の二乗-1の二乗(=8)と 4の二乗-2の二乗(=12)の合計で 20 になります。

SUMX2MY2関数にできることをまとめると、次のとおりです。

  • 2つのデータ列の「二乗の差」を一括で合計する
  • テストの点数や売上データなど、2時点のデータを比較する
  • SUMSQ関数(平方和)の応用として使える
  • 姉妹関数のSUMX2PY2関数SUMXMY2関数と組み合わせて多角的な分析ができる

NOTE

SUMX2MY2関数はExcel 2007以降のすべてのバージョンで使えます。Googleスプレッドシートにも同名の関数があり、動作は同じです。

SUMX2MY2関数の書き方(構文と引数)

基本構文

=SUMX2MY2(配列1, 配列2)

カッコの中に、比較したい2つのセル範囲を指定します。

引数の説明

引数必須/任意説明
配列1必須1つ目のデータ範囲(x側)。数値、名前、配列、または参照を指定する
配列2必須2つ目のデータ範囲(y側)。数値、名前、配列、または参照を指定する

2つの配列は同じサイズ(同じ要素数)にする必要があります。サイズが異なると #N/A エラーになるので注意してください。

文字列、論理値、空白セルが含まれている場合は無視されます。ただし数値として0を含むセルは計算の対象です。

SUMX2MY2関数の基本的な使い方

以下のサンプルデータでSUMX2MY2関数を使ってみましょう。

A列にデータX、B列にデータYが入っているとします。

 A列(データX)B列(データY)
2行目31
3行目42
4行目53

セル範囲で指定する

=SUMX2MY2(A2:A4, B2:B4)

結果は 36 です。内訳を確認してみましょう。

要素xの二乗yの二乗xの二乗 – yの二乗
1番目3の二乗=91の二乗=18
2番目4の二乗=162の二乗=412
3番目5の二乗=253の二乗=916
合計  36

各要素をそれぞれ二乗して、その差を取り、最後に合計しています。

配列定数で直接指定する

セル範囲ではなく、中カッコ {} で囲んだ配列定数を直接入力することもできます。

=SUMX2MY2({3,4,5}, {1,2,3})

こちらも結果は 36 です。ちょっとした検算をしたいときに便利です。

計算の仕組みを数式で検算する

SUMX2MY2の結果が正しいか、個別の数式で確認してみましょう。

=SUMPRODUCT(A2:A4^2 - B2:B4^2)

この数式でも同じ結果の 36 が返ります。SUMX2MY2関数は、この計算を1つの関数でまとめてくれるわけですね。

SUMX2MY2関数の実務での活用例

2つのテストスコアを比較する

中間テストと期末テストの点数を比較するケースを考えてみましょう。

 A列(中間テスト)B列(期末テスト)
2行目7080
3行目8575
4行目6070
5行目9095
6行目7565
=SUMX2MY2(A2:A6, B2:B6)

結果は -725 です。マイナスの値になりました。

これは全体として「期末テストの二乗合計のほうが中間テストの二乗合計より大きい」ことを意味します。つまり、クラス全体では期末テストのほうが点数が高かった傾向にあるとわかります。

TIP

結果がプラスなら配列1側のほうが大きく、マイナスなら配列2側のほうが大きいと判断できます。データの優劣をざっくり把握したいときに便利です。

売上データの前年比較に使う

店舗ごとの今年の売上と前年の売上を比較する場面でも活用できます。

 A列(今年の売上)B列(前年の売上)
2行目120100
3行目95110
4行目130120
=SUMX2MY2(A2:A4, B2:B4)

結果は 4075 です。プラスなので、今年の売上のほうが全体的に大きいとわかります。

単純な差の合計(SUM関数で引き算)とは異なり、値が大きいデータほど結果への影響が大きくなるのがSUMX2MY2関数の特徴です。

因数分解の性質を利用する

数学的に、xの二乗 – yの二乗 は (x+y)(x-y) と因数分解できます。SUMX2MY2はこの「和と差の積」の合計を求めていることになります。

この性質を使うと、SUMX2MY2の結果は次のようにも書けます。

=SUMX2MY2(A2:A4, B2:B4)
=SUMPRODUCT((A2:A4+B2:B4) * (A2:A4-B2:B4))

どちらも結果は同じ 36 です。データの「合計の大きさ」と「差の大きさ」の両方が反映される点が、単純な差の合計とは異なるポイントです。

SUMX2PY2・SUMXMY2との違い

Excelには、SUMX2MY2と名前がよく似た姉妹関数が2つあります。混同しやすいので、比較表で整理しておきましょう。

関数名計算内容数式結果の意味
SUMX2MY2二乗の差の合計SUM(xi^2 – yi^2)xとyの二乗値の差を比較
SUMX2PY2二乗の和の合計SUM(xi^2 + yi^2)xとyの二乗値を合算
SUMXMY2差の二乗の合計SUM(xi – yi)^2xとyの差を二乗して合算

名前の違いは「MY2」「PY2」「XMY2」の部分です。

  • SUMX2MY2: X Squared Minus Y Squared(二乗してから引く)
  • SUMX2PY2: X Squared Plus Y Squared(二乗してから足す)
  • SUMXMY2: (X Minus Y) Squared(引いてから二乗する)

同じデータで3つの関数を比較

X = {3, 4, 5}、Y = {1, 2, 3} で計算してみましょう。

=SUMX2MY2(A2:A4, B2:B4)    → 36
=SUMX2PY2(A2:A4, B2:B4)    → 64
=SUMXMY2(A2:A4, B2:B4)     → 12
要素SUMX2MY2 (x二乗-y二乗)SUMX2PY2 (x二乗+y二乗)SUMXMY2 (x-y)の二乗
1番目9-1=89+1=10(3-1)の二乗=4
2番目16-4=1216+4=20(4-2)の二乗=4
3番目25-9=1625+9=34(5-3)の二乗=4
合計366412

どの関数を使えばいい?

  • 2つのデータの大きさの優劣を比較したい → SUMX2MY2(差がプラスかマイナスかで判断)
  • 2つのデータの全体的な大きさを把握したいSUMX2PY2
  • 2つのデータのズレの大きさを測りたいSUMXMY2(最小二乗法や誤差の評価に使う)

SUMXMY2関数は「差がどれだけ大きいか」だけを見ます。一方、SUMX2MY2関数は「どちらが大きいか」の方向性も含めて評価できるのが特徴です。

よくあるエラーと対処法

#N/Aエラー(配列サイズの不一致)

2つの配列のサイズが異なると #N/A エラーが発生します。

=SUMX2MY2(A2:A4, B2:B5)   → #N/Aエラー(3個 vs 4個)
=SUMX2MY2(A2:A4, B2:B4)   → 正常に計算される

配列1と配列2の行数(要素数)が一致しているか確認してください。COUNT関数で個数を数えてみると原因がわかりやすいです。

#VALUE!エラー(不正な引数)

引数にセル範囲ではなく文字列を直接指定すると発生します。

=SUMX2MY2("abc", B2:B4)   → #VALUE!エラー

SUMX2MY2の引数にはセル範囲または配列定数を指定してください。セル範囲内に文字列が含まれている場合は無視されるので、エラーにはなりません。

結果が0になる場合

配列1と配列2にまったく同じ値が入っていると、各要素の二乗の差がすべて0になるため、結果も0になります。

=SUMX2MY2(A2:A4, A2:A4)   → 0(同じ範囲を指定している)

意図した範囲を指定しているか確認してみてください。

まとめ

SUMX2MY2関数は、2つの配列の対応する要素について二乗の差の合計を返す関数です。

この記事のポイント

  • 構文は =SUMX2MY2(配列1, 配列2) で、2つのセル範囲を指定する
  • 平方差の合計(SUM(xi^2 – yi^2))を1つの関数で計算できる
  • 結果がプラスなら配列1側が大きく、マイナスなら配列2側が大きい
  • 2つの配列のサイズが異なると#N/Aエラーになる
  • 姉妹関数のSUMX2PY2(二乗の和の合計)・SUMXMY2(差の二乗の合計)と使い分ける

関連記事

SUMX2MY2関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がります。

タイトルとURLをコピーしました