スプレッドシートのSUMSQ関数の使い方|平方和

スポンサーリンク

「データの二乗の合計を出したいけど、いちいちセルごとに二乗してからSUMするのは面倒だな……」。こんな場面に出くわしたことはありませんか?

手作業で二乗と合計を分けて計算すると、数式が長くなるうえにミスも起きやすくなります。もっと手軽に平方和を求められたら便利ですよね。

そんなときに使うのがスプレッドシートのSUMSQ関数です。この記事では基本の書き方から実務での活用例まで解説します。SUM+POWER関数で代用する方法との違いもあわせて整理しました。

SUMSQ関数とは?スプレッドシートで平方和を求める関数

SUMSQ関数(読み方: サムスクエア関数)は、指定した数値の平方和(各値の2乗の合計)を返す関数です。「SUMSQ」は「SUM(合計)+ SQuare(二乗)」の略です。

平方和とは、それぞれの値を2乗してから合計した値のことです。たとえば 3 と 4 の平方和は、3の2乗(9)+ 4の2乗(16)= 25 になります。

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

  • 複数の数値の二乗の合計(平方和)をワンステップで求める
  • 偏差平方和の計算に使う(分散・標準偏差の基礎)
  • ユークリッド距離の計算に使う(ピタゴラスの定理)
  • VAR関数STDEV関数の裏側で使われている計算を手動で確認する

NOTE

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

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

基本構文

=SUMSQ(値1, [値2], ...)

カッコの中に、平方和を求めたい数値やセル範囲を指定します。

引数の説明

引数必須/任意説明
値1必須平方和を求めたい最初の値またはセル範囲
値2, …任意追加の値またはセル範囲。最大255個まで指定可能

引数にはセル参照、セル範囲、数値を直接指定できます。

TIP

セル範囲に含まれる文字列・TRUE/FALSE・空白セルは自動的に無視されます。数値だけが計算の対象になりますよ。ただし、引数に直接TRUE/FALSEを指定した場合はTRUE=1、FALSE=0として計算されます。

SUMSQ関数の基本的な使い方

以下のテストスコアのデータでSUMSQ関数を使ってみましょう。

A2からA6に5人分のスコアが入っているとします。

 A列(スコア)
2行目3
3行目4
4行目5
5行目6
6行目7

セル範囲で指定する

=SUMSQ(A2:A6)

結果は 135 です。内訳は 3^2 + 4^2 + 5^2 + 6^2 + 7^2 = 9 + 16 + 25 + 36 + 49 = 135 です。

数値を直接指定する

=SUMSQ(3, 4)

結果は 25 です。3^2 + 4^2 = 9 + 16 = 25 ですね。

複数の範囲を組み合わせる

=SUMSQ(A2:A4, A5:A6)

複数のセル範囲をカンマで区切って指定できます。結果はA2:A6を一括指定した場合と同じ 135 です。

SUMSQ関数の実務での活用例

偏差平方和を求める(分散計算の基礎)

偏差平方和とは「各データと平均値の差(偏差)の二乗を合計した値」です。分散や標準偏差を計算するときの中間ステップになります。

ちょっとむずかしく聞こえますが、やっていることはシンプルです。SUMSQとARRAYFORMULAを組み合わせるだけで求められます。

B2からB6に売上データ(万円)が入っているとします。

 B列(売上)
2行目120
3行目85
4行目200
5行目150
6行目95
=SUMSQ(ARRAYFORMULA(B2:B6 - AVERAGE(B2:B6)))

この数式では、まずAVERAGE関数で平均値(130)を求めます。次にARRAYFORMULAで各セルから平均値を引いた偏差を配列として作ります。最後にSUMSQ関数で偏差の平方和を計算します。

結果は 8,650 です。この値を「データ個数 – 1」で割ると標本分散、「データ個数」で割ると母集団の分散になります。

TIP

VAR関数を使えば分散は1ステップで求められます。偏差平方和を直接確認したいときにSUMSQ関数が便利ですよ。

ユークリッド距離を計算する(ピタゴラスの定理)

2点間の直線距離(ユークリッド距離)は、各座標の差の平方和の平方根で求められます。ピタゴラスの定理そのものです。

たとえば、2つの店舗の座標が以下のとおりだとします。

 A列(X座標)B列(Y座標)
2行目(店舗A)12
3行目(店舗B)46
=SQRT(SUMSQ(A3-A2, B3-B2))

SUMSQ(3, 4) = 25 の平方根なので、結果は 5 です。SQRT関数(平方根を返す関数)とSUMSQを組み合わせるだけで距離が求められます。

3次元以上の座標でも同じパターンで計算できます。引数を増やすだけなので、次元数が増えても数式はシンプルなままです。

SUM+POWER関数との違い

SUMSQ関数を使わなくても、SUM関数とPOWER関数(べき乗を返す関数)を組み合わせれば同じ結果は得られます。

=SUMSQ(A2:A6)
=SUM(ARRAYFORMULA(POWER(A2:A6, 2)))

どちらも結果は同じ 135 ですが、以下の違いがあります。

項目SUMSQSUM+POWER
数式の長さ短い長い(ARRAYFORMULAも必要)
可読性「平方和」と一目でわかる2乗→合計の2ステップで読む
べき乗の変更2乗固定POWER(範囲, 3)で3乗など自由

2乗の合計を求めるだけならSUMSQ関数がシンプルです。3乗以上のべき乗和が必要な場合はSUM+POWERの組み合わせを使ってください。

よくあるエラーと対処法

#VALUE!エラー

数値に変換できない文字列を引数に直接指定すると発生します。

=SUMSQ("abc", 4)   → #VALUE!エラー
=SUMSQ(3, 4)        → 正常に計算される(結果: 25)

セル範囲内に文字列がある場合は自動で無視されるので、エラーにはなりません。直接引数として文字列を渡した場合にのみ発生します。

結果が想定より小さい

セル範囲に文字列や空白が混ざっていると、そのセルは計算から除外されます。データ件数が想定より少なくなっている可能性があります。

COUNT関数で数値セルの個数を確認してみてください。

=COUNT(A2:A10)

数値として認識されているセルの個数がわかります。想定より少なければ、文字列が混ざっているセルを修正しましょう。

TIP

数字が文字列として入力されている場合もあります。セルを選んで左上に「’」(アポストロフィ)が見えたら文字列扱いです。セルの書式を「数値」に変更してみてください。

まとめ

SUMSQ関数は、指定した数値の平方和(各値の2乗の合計)を返す関数です。

この記事のポイント

  • 構文は =SUMSQ(値1, [値2], ...) で、セル範囲を指定するだけ
  • 平方和とは「各値を2乗して合計した値」のこと
  • 偏差平方和の計算にはARRAYFORMULAと組み合わせて使う
  • ユークリッド距離の計算にはSQRT関数と組み合わせて使う
  • SUM+POWERでも同じ結果は得られるが、SUMSQのほうがシンプル
  • セル範囲内の文字列・空白・論理値は自動で無視される

次のステップ:関連する統計関数

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

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