「古いExcelブックで=VAR(...)という数式を見つけたけど、これって今でも使って大丈夫?」。こんな疑問を持ったことはありませんか?
先輩から引き継いだブックや、2003年ごろの資料には、今ではあまり見かけないVAR関数が残っていることがあります。新しいVAR.S関数があるのに、なぜVAR関数も現役なのか気になりますよね。
そんな疑問を解消するのがこの記事です。VAR関数の基本的な使い方から、VAR.S関数との違い、書き換えるべきかどうかの判断基準まで整理しました。古いブックを引き継いだときの実務的な指針としても役立ちますよ。
ExcelのVAR関数とは?旧来の標本分散関数
VAR関数(読み方: バー)は、データの標本分散(ふへんぶんさん)を返す関数です。「VAR」は「Variance(分散)」の略で、統計でばらつきを表す代表的な指標ですね。
Excel 2003以前から存在する古参の関数で、現在は「互換性関数」というカテゴリに分類されています。Excel 2010で後継のVAR.S関数が登場しましたが、VAR関数も現行のMicrosoft 365やExcel 2024で引き続き使えますよ。
分散とは、データが平均値からどれくらい離れているかを数値化した指標です。値が大きいほどデータのばらつきが大きくなります。値が0なら、すべてのデータが同じ値ということです。
VAR関数でできることをまとめると、次のとおりです。
- 標本データから母集団の分散を推定する
- アンケート結果や抜き取り検査など、一部のデータしかない場面で使う
- 古いExcelブックとの互換性を保ったまま分散を計算する
- AVERAGE関数と組み合わせてデータの散らばり具合を定量化する
NOTE
VAR関数は互換性関数に分類されていますが、計算結果はVAR.S関数と完全に一致します。「古いから結果が狂う」といったことはないので安心してください。
VAR関数の書き方(構文と引数)
基本構文
=VAR(数値1, [数値2], ...)
カッコの中に、分散を求めたいデータやセル範囲を指定します。VAR.S関数と書き方はまったく同じです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値1 | 必須 | 分散を求めたい最初の値またはセル範囲 |
| 数値2, … | 任意 | 追加の値またはセル範囲。最大255個まで指定可能 |
引数にはセル参照、セル範囲、数値を直接指定できます。
TIP
セル範囲に含まれる文字列・論理値(TRUE/FALSE)・空白セルは自動的に無視されます。数値だけが計算の対象になりますよ。
戻り値と計算式
VAR関数が返すのは標本分散(不偏分散)です。計算式は次のとおりです。
VAR = Σ(x - x̄)² / (n - 1)
- x: 各データ値
- x̄: データの平均値
- n: データ件数
ポイントは「n」ではなく「n-1」で割る点です。一部のデータだけから全体のばらつきを推定するとき、nで割ると分散がやや小さめに出てしまいます。そこでn-1で割って少し大きめに補正する仕組みになっています。
手元のデータが「全体の一部」なら、VAR関数(もしくはVAR.S関数)を使います。全データがそろっているなら、nで割るVARP関数やVAR.P関数を使いますよ。
VAR関数の基本的な使い方
以下のテストデータでVAR関数を使ってみましょう。
社員500人のうち10人を抜き出して、研修テストの点数を記録したとします。B2からB11にテストの点数が入っています。
| A列(社員名) | B列(点数) | |
|---|---|---|
| 2行目 | 田中 | 82 |
| 3行目 | 鈴木 | 75 |
| 4行目 | 佐藤 | 90 |
| 5行目 | 山田 | 68 |
| 6行目 | 伊藤 | 77 |
| 7行目 | 渡辺 | 85 |
| 8行目 | 中村 | 73 |
| 9行目 | 小林 | 88 |
| 10行目 | 加藤 | 79 |
| 11行目 | 吉田 | 81 |
連続したセル範囲で分散を求める
=VAR(B2:B11)
結果は 47.29 です。10人分の点数が平均値(79.8点)からどれくらい散らばっているかを表しています。
TIP
分散の値そのものはイメージしにくいと感じるかもしれません。分散の平方根を取ると標準偏差になります。
=SQRT(VAR(B2:B11))で約 6.88 と求められ、「平均から約6.9点の散らばり」と直感的に理解できますよ。
離れた範囲を指定する
複数の離れた範囲を指定したいときは、カンマで区切って渡します。A支店とB支店それぞれで抜き取ったサンプルを一度に分析したい、といった場面です。
=VAR(B2:B6, D2:D6)
これで2つの範囲をまとめて1つの標本として扱い、分散を計算できます。
文字列・論理値・空白セルの扱い
セル範囲に文字列や空白セルが混ざっていても、VAR関数は自動で無視します。たとえばB2からB11の中に未入力セルが1つあれば、そのセルだけ飛ばして9人分のデータで計算されます。
=VAR(B2:B11) → 空白や文字列は無視されて計算される
NOTE
文字列や論理値も計算に含めたい場合は、後継関数群の中にあるVARA関数を使います。VARA関数はTRUEを1、FALSEを0、文字列を0として扱いますよ。
VAR関数の実践的な使い方・応用例
アンケート結果のばらつきを部署間で比較する
「部署ごとに満足度のばらつきが違うか」を分析したい場面です。
各部署から5人ずつ抽出し、満足度(10点満点)を調査したとします。C2からC6にA部署、D2からD6にB部署のデータが入っています。
=VAR(C2:C6)
=VAR(D2:D6)
| 部署 | 平均 | 分散(VAR) |
|---|---|---|
| A部署 | 7.2 | 2.7 |
| B部署 | 7.0 | 8.5 |
平均はほぼ同じでも、B部署は分散が大きいですね。つまりB部署は満足している人と不満な人の差が大きいことがわかります。平均だけでは見えない問題を発見できますよ。
品質検査のサンプルばらつきを管理する
製造ラインから20個を抜き取り検査して、製品の重量のばらつきを調べる場面です。
B2からB21に20個分の重量データが入っているとします。
=VAR(B2:B21)
結果が管理基準の分散を超えていれば、製造工程の見直しが必要です。全数検査ではなく抜き取り検査なので、VAR関数で母集団の分散を推定する使い方になります。
TIP
標準偏差で管理したい場合は STDEV関数 を使います。分散 = 標準偏差の2乗なので、
=VAR(B2:B21)と=STDEV(B2:B21)^2は同じ値を返しますよ。
AVERAGE関数やSTDEV関数と組み合わせる
分散と平均、標準偏差をセットでレポートに出すと、データの全体像がつかみやすくなります。
=AVERAGE(B2:B21) → 平均値
=VAR(B2:B21) → 分散
=SQRT(VAR(B2:B21)) → 標準偏差(=STDEV(B2:B21)と同じ)
IF関数と組み合わせて基準値を超えたら警告を出す、といった仕組みも作れます。
=IF(VAR(B2:B21) > 5, "要確認", "正常")
分散が5を超えたら「要確認」、5以下なら「正常」と表示されます。品質管理や検査レポートの自動判定に便利ですよ。
よくあるエラーと対処法
#DIV/0!エラー(データが1件以下)
VAR関数でもっともよく見るエラーです。以下の原因が考えられます。
| 原因 | 対策 |
|---|---|
| 数値が1個しかない | n-1=0で割り算できない。2個以上データがあるか確認する |
| 範囲内に数値が含まれていない | 文字列ばかりの範囲を指定していないか確認する |
| 空のセル範囲を指定している | データが入力されているセル範囲を確認する |
VARP関数は数値が1個でも計算できますが(結果は0)、VAR関数は2個以上のデータが必要です。
#VALUE!エラー(引数に文字列)
引数に文字列を直接入力すると発生します。
=VAR("100", "200") → #VALUE!エラー
=VAR(100, 200) → 正常に計算される
セル範囲内に文字列がある場合は自動で無視されます。ただし引数として直接文字列を渡すとエラーになるので注意してください。
結果が想定と違うとき
期待した値にならないときは、以下をチェックしてみてください。
- セル範囲に文字列が混ざっていないか(無視されてデータ件数が減る)
- VARP関数と間違えていないか(nで割るかn-1で割るかで結果が変わる)
- COUNT関数で数値の個数を確認する
TIP
=COUNT(B2:B11)でカウントした個数と、想定した件数がずれていたら、範囲内に文字列や空白が混ざっているサインです。
VAR関数とVAR.S関数の違い・使い分け
ここが今回の記事のメインテーマです。「新しいVAR.S関数があるなら、旧VAR関数はもう使わない方がいいの?」という疑問にお答えしますね。
計算結果はVAR.Sと完全一致
結論からお伝えすると、VAR関数とVAR.S関数は計算結果がまったく同じです。アルゴリズムに違いはなく、関数名が新旧で変わっただけの関係です。
=VAR(B2:B11) → 47.29
=VAR.S(B2:B11) → 47.29
同じデータを渡せば、小数点以下の桁まで一致します。「VARは古いから結果が狂うのでは?」という心配は不要ですよ。
旧VAR vs 新VAR.S 比較表
両関数の違いを4つの軸で整理しました。
| 項目 | VAR | VAR.S |
|---|---|---|
| 導入バージョン | Excel 2003以前 | Excel 2010 |
| 分類 | 互換性関数 | 統計関数 |
| 計算結果 | VAR.Sと完全一致 | VARと完全一致 |
| 推奨度 | 既存ブックはそのままで可 | 新規数式で推奨 |
| 古いExcelとの互換 | 2003以前でも動作 | 2010未満では#NAME?エラー |
違いは「どの時代のExcelに対応しているか」と「Microsoftがどちらを推奨しているか」の2点にまとまります。
書き換えるべき場面/残して良い場面
実務で判断に迷うのは「古いブックを引き継いだときにVAR関数をVAR.Sに書き換えるべきか」ですよね。次の基準で判断してみてください。
VAR関数のまま残して良い場面:
- Excel 2003/2007 などの古いバージョンを使う関係者がいる
- 既存のブックが正常に動いていて、計算結果も合っている
- 書き換えのリスク(数式の壊れ、検証コスト)が割に合わない
VAR.Sに書き換える場面:
- 新規で数式を作成する
- 他の数式も統計関数の新しい命名(VAR.S / VAR.P / STDEV.S など)に揃えたい
- 社内の標準化ガイドラインで新関数を推奨している
TIP
古いブックをそのまま使うか、書き換えるかは、計算精度ではなく保守性の問題です。結果は同じなので、慌てて全部書き換える必要はありません。
VAR/VARP/VAR.S/VAR.P/VARA 互換マトリクス
分散系の関数は全部で5つあります。旧関数と新関数の対応関係、そして文字列の扱いを一覧にしました。
| 旧関数(互換性) | 新関数(推奨) | 計算対象 | 空白・文字列の扱い |
|---|---|---|---|
| VAR | VAR.S | 標本分散(n-1) | セル参照内の文字列/論理値は無視 |
| VARP | VAR.P | 母分散(n) | セル参照内の文字列/論理値は無視 |
| — | VARA | 標本分散(n-1) | 文字列=0、TRUE=1、FALSE=0として計算に含む |
| — | VARPA | 母分散(n) | 文字列=0、TRUE=1、FALSE=0として計算に含む |
- VARとVARPは昔からある旧関数で、後継がVAR.SとVAR.P
- VARAとVARPAには旧バージョンがなく、Excel 2007以降で追加された関数
- 文字列や論理値も計算に含めたい特殊な場面ではVARA/VARPAを選ぶ
詳しく使い方を知りたい方は、以下の関連記事を参考にしてくださいね。
- ExcelのVAR.S関数の使い方(VAR関数の後継。新規数式で推奨)
- ExcelのVAR.P関数の使い方(母分散を求めるペア関数)
標準偏差との関係
分散の平方根を取ると標準偏差になります。実務では単位がそろう標準偏差のほうが直感的に扱いやすいですね。
STDEV関数も同じく互換性関数で、STDEV.S関数と計算結果が一致します。VARとSTDEVは「互換性ストーリー」が完全に共通しているので、一緒に覚えておくとスムーズですよ。
まとめ
ExcelのVAR関数は、標本データから分散を返す旧来の関数です。
この記事のポイント
- 構文は
=VAR(数値1, [数値2], ...)。書き方はVAR.S関数とまったく同じ - 計算結果はVAR.S関数と完全に一致する(ビット単位で同じ)
- Excel 2003以前からある古参関数で、現在は「互換性関数」に分類
- 古いブックのVAR関数はそのまま使い続けて問題なし(書き換え不要)
- 新規で数式を作るときはVAR.S関数を推奨
「VAR関数が古いから結果が狂う」というのは誤解です。計算は正確なので、既存ブックを引き継いだら落ち着いて使い続けましょう。新規で書くなら統一感のあるVAR.S関数を選ぶ、という住み分けがおすすめですよ。
関連記事
VAR関数の理解が深まったら、以下の関連関数もあわせて覚えてみてください。統計分析の幅が広がりますよ。
