Janは、列Aに年齢のリストがあるワークシートを持っています。年齢は1から始まり、100まで続きます。列Bには、それぞれの年齢の人数があります。 Janは、このグループの人々の年齢の中央値を彼女に伝える式を必要としています。

一見すると、MEDIAN関数を使用して中央値を計算できると思うかもしれません。この関数は、値の単純なリストがある場合にうまく機能します。たとえば、年齢のみの中央値を計算している場合、MEDIANは正常に機能します。ただし、Janの場合、彼女は年齢自体ではなく、人々の年齢の中央値を必要としています。言い換えれば、中央値は、各年齢の人々の数によって重み付けする必要があります。 MEDIAN関数はそのような要件を処理できません。

年齢の中央値は、人々のグループの平均年齢とは異なることを指摘しておく必要があります。平均は、年齢に各年齢の人数を掛けることで最も簡単に計算できます。たとえば、列Cに、= A1 * B1などの式を配置し、それを列にコピーすることができます。列Bと列Cの値を合計し、列Cの合計を列Bの合計で割ります。結果は、人々のリストの平均年齢です。

一方、年齢の中央値は、半分の人がその年齢を下回り、半分がその年齢を上回っている年齢です。年齢の中央値は、次のような配列数式を使用して計算するのが最適です。

=MATCH(SUM($B$1:$B$100)/2,SUMIF($A$1:$A$100, "<="&$A$1:$A$100,$B$1:$B$100))

これは、Ctrl + Shift + Enterを押して入力した単一の数式です。式のSUMIF関数は、各年齢以下の累積人数の配列を生成するために使用されます。式のSUM部分は、年齢の合計頻度の中間点を示します。次に、MATCH関数を使用して、累積度数の配列の中点値を検索します。これにより、最初の配列に「インデックス番号」が生成されます。配列は1〜100歳のすべてで構成されているため、このインデックス番号の一致は年齢の中央値に相当します。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10595)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。