【Excel関数】率の平均はAVERAGEでなくSUM/SUM

率の平均はAVERAGEでなくSUM/SUMで出す(Excel関数の解説記事のアイキャッチ) Excel関数

部署別の有給取得率の表を作り、最下行に「平均」を入れました。取得率の列をAVERAGE関数で平均すると62.0%です。ところが、取得日数と付与日数をそれぞれ合計して割ると44.2%になりました。同じデータなのに、なぜ数字が合わないのでしょうか。

この記事では、率の平均をAVERAGEで出してはいけない理由と、全体の率を正しく出す方法を解説します。率の列がある集計表で、合計・平均の行を作る方が対象です。

率の平均はAVERAGEでずれる

次の表(サンプルデータ)で考えます。取得率は「取得日数÷付与日数」です。

部署付与日数取得日数取得率
営業20012060.0%
経理201890.0%
総務10990.0%
製造3009030.0%
開発702840.0%

取得率の列にAVERAGEを使うと、結果は62.0%です。

=AVERAGE(D2:D6)

全社では600日が付与され、265日が取得されています。実際の取得率は44.2%です。18ポイント近くもずれています。

部署別の取得率の表で、AVERAGEは62.0%、SUM/SUMは44.2%と異なる値になったExcelの画面

全体の率は分子の合計÷分母の合計

全体の率は、分子と分母をそれぞれ合計してから割ります。

=SUM(C2:C6)/SUM(B2:B6)

結果は44.2%(265÷600)で、「全社の付与日数のうち、何割が取得されたか」と一致します。

なぜずれるのか

AVERAGEは、どの行の率も同じ重さで数えます。付与10日の総務(90%)も、付与300日の製造(30%)も、1票ずつです。

SUM/SUMは、日数に応じて重みがつきます。付与日数の多い部署が結果に強く効くので、全体の実態に近づきます。つまり加重平均です。

分母が全行で同じなら、2つの結果は一致します。実際に、全部署の付与日数を100日にそろえて試すと、AVERAGEもSUM/SUMも62.0%で同じでした。ずれの大きさは、分母のばらつきで決まります。

率と分母しかないときはSUMPRODUCT

他の人が作った表で、取得日数の列がなく、率と付与日数だけの場合もあります。この場合は、率に分母を掛けて分子を復元します。

=SUMPRODUCT(B2:B6,D2:D6)/SUM(B2:B6)

結果は44.2%で、SUM/SUMと一致します。SUMPRODUCTは、範囲を行ごとに掛けてから合計する関数です。詳しくはSUMPRODUCT 関数 – Microsoft サポートを参照してください。

ただし、率が丸められた値だと誤差が出ます。付与日数が3・7・9日、取得日数が1・2・4日の3行で試しました。

  • 正しい全体の率:7÷19=36.8%
  • 各行の率を小数第2位に丸めてから復元:36.7%

差は小さいですが、丸めた率からの復元は正確な値になりません。可能なら、率だけでなく分子と分母も表に残しておくのが安全です。丸めの扱いは、時間の丸めは順序で結果が変わる理由と対処でも触れています。

よくある失敗

1. 分母が0の行でエラーになる

率を「=C2/B2」で出していると、付与0日の行は#DIV/0!になります。AVERAGEは、範囲にエラーが1つあると全体がエラーになります。サンプルに付与0日の行を足して試すと、AVERAGEはエラーでしたが、SUM/SUMは44.2%のままでした。

2. IFERRORで空文字にして気づかない

「=IFERROR(C2/B2,””)」でエラーを隠すと、AVERAGEは空文字の行を数えません。6行あるのに5行分の平均になっていても、見た目では分かりません。同じ条件で試すと、COUNTは5で、行数は6でした。

IFERRORで値を差し替えるときは、ORやANDの中でも、第2引数の選び方で結果が変わります。【Excel関数】OR・ANDは短絡評価されない原因と対処で実測しました。

空文字に置き換える前に、エラーの種類を確認しておくと、原因を見落としにくくなります。確認の手順は、【Excel関数】#N/A・#VALUE!・#REF!が出たら最初に確認にまとめています。

3. 空欄と0を混同する

AVERAGEは、空欄や文字列を無視しますが、0は数えます。60%と90%の間の行が空欄なら平均は75%、0なら50%です。「未入力」と「0%」で結果が変わります。

Power Queryでも、無い月を0で埋めると、前月に行が無いことと前月が0円だったことの区別がつかなくなり、状態の判定が崩れます。詳しくは、【Power Query】Table.Pivotの月の列は固定リストで渡すで紹介しています。

4. 最下行の名前が「平均」のまま

「平均」には、単純平均と全体の率の2つの意味があります。最下行の名前は「全体の率」にしておくと、取り違えが減ります。

応用例:拠点ごとの全体の率

拠点の列(E列)を使って拠点別の全体の率を出す場合は、SUMIFSを2つ割ります。

=SUMIFS(C2:C6,E2:E6,"東")/SUMIFS(B2:B6,E2:E6,"東")

サンプルでは、東が57.2%(166÷290)、西が31.9%(99÷310)です。AVERAGEIFSで東を出すと63.3%になり、同じ問題が起きます。

単純平均を使ってよい場面

「規模に関係なく、部署の典型的な取得率はどのくらいか」を知りたいなら、単純平均が目的に合います。大きい部署に引っ張られないからです。問題はAVERAGEそのものではなく、どちらを出したいかを決めずに使うことです。

検証環境

この記事の数値は、Excel 16.0(Windows、日本語環境)で確認しました。他のバージョンやMac版は未検証です。

まとめ

  • 全体の率は「SUM(分子)/SUM(分母)」で出す
  • 率と分母しかないときは、SUMPRODUCTで分子を復元する。ただし丸め済みの率は誤差が出る
  • 拠点別などの条件つきは、SUMIFSを2つ割る
  • 集計表には、率だけでなく分子と分母も残す

コメント

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