PERCENTOF 関数は、「一部の合計 ÷ 全体の合計」を出す関数です。=PERCENTOF(一部, 全体) と書くと、全体に対する割合(構成比)が出ます。これまでの =SUM(一部)/SUM(全体) と同じ計算を、1 つの関数で書けます。
この記事では、PERCENTOF の基本から、条件に合う分の割合、GROUPBY と組み合わせた構成比表まで、実際の Excel で確かめた結果で説明します。PERCENTOF は Microsoft 365 の新しい関数です。
PERCENTOF 関数の書き方
=PERCENTOF(一部のデータ, 全体のデータ)
| 引数 | 意味 |
|---|---|
| 一部のデータ | 割合を知りたい部分(セル・範囲) |
| 全体のデータ | 全体の範囲 |
結果は 0.166… のような小数で出るので、セルの表示形式をパーセント(ホームの「%」)にします。
1. 1 つの商品が全体の何%か
D2(りんご 1,200)が、金額の合計に対して何%かを出します。
=PERCENTOF(D2,D2:D11)

結果は 16.6% でした(1,200 ÷ 7,250)。
2. 条件に合う分の割合(果物の割合)
一部のデータに FILTER で「果物の金額」を渡すと、果物が全体の何%かが出ます。
=PERCENTOF(FILTER(D2:D11,A2:A11="果物"),D2:D11)

果物は 59.3% でした(4,300 ÷ 7,250)。FILTER の使い方は FILTER関数の使い方で説明しています。
3. 分類ごとの構成比の表を作る(GROUPBY)
GROUPBY の 3 つ目に PERCENTOF を入れると、分類ごとの構成比の表が 1 つの式でできます。
=GROUPBY(A2:A11,D2:D11,PERCENTOF)

飲料 11.7%・果物 59.3%・野菜 29.0% で、合計は 100.0% になりました。GROUPBY は GROUPBY関数の使い方で説明しています。
【実機で検証】PERCENTOF でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| SUMIF ÷ SUM で果物の割合 | =SUMIF(PERCENTOF!A2:A11,"果物",PERCENTOF!D2:D11)/SUM(PERCENTOF!D2:D11) | 59.3% |
| PERCENTOF で果物の割合 | =PERCENTOF(FILTER(PERCENTOF!D2:D11,PERCENTOF!A2:A11="果物"),PERCENTOF!D2:D11) | 59.3% |
| 全体 ÷ 全体 | =PERCENTOF(PERCENTOF!D2:D11,PERCENTOF!D2:D11) | 100.0% |
| 文字の “200” がまざった全体 | =PERCENTOF(A12,A12:A14) | 25.0% |
| マイナスがまざった全体 | =PERCENTOF(B12,B12:B14) | 40.0% |
| 全体が 0 のとき | =PERCENTOF(C12,C12:C14) | #DIV/0! |
PERCENTOF の果物の割合(59.3%)は、SUMIF ÷ SUM(59.3%)と同じでした。全体 ÷ 全体は 100.0% です。
文字の「200」がまざっていると、全体に入りませんでした。100 ÷(100+300)で 25.0% です。表の数字が文字になっていないか、先に確かめます。
マイナスがまざると、100 ÷(100−50+200)で 40.0% になりました。全体が 0 のときは #DIV/0! です。
よくある質問
PERCENTOF が使えない(#NAME?)ときは?
PERCENTOF は Microsoft 365 の新しい関数です。Excel 2021 以前では =SUM(一部)/SUM(全体) と書けば同じ結果になります。
1 行ずつの構成比を下にコピーするには?
=PERCENTOF(D2,$D$2:$D$11) のように、全体の範囲に $ を付けて固定してからコピーします。
行と列のクロス集計で割合を出すには?
PIVOTBY の関数に PERCENTOF を入れます。ただし、その場合の割合は列ごとの合計に対するものになります。くわしくは PIVOTBY関数の使い方で確かめています。

コメント