2009年09月11日

データの個数(レコードの件数)を集計してみた/Excel/ピボットテーブル

Excelのピボットテーブルで「金額」や「数量」などのような数値データではなく、行ラベルに設定された“商品名”などのフィールドのアイテム(商品名の“データ”)が登場した個数(レコードの件数)を集計してみます。
普通、元データの列フィールド(項目)には登場する商品名や担当者の「件数」を表示する数値を入力したフィールドはありませんので、件数を集計するにはちょっとしたコツがあります。
20140715_00データの個数とは_イラスト.jpg

では、受注データから受注したそれぞれの商品が登場する“データの個数”(レコードの件数)を集計してみます。
ピボットテーブルの「行ラベル」に“商品名”を設定します。で、「Σ値」にも同じように“商品名”を設定します。この“商品名”は数値データではないので自動的に集計方法は“データの個数”となります。
20140715_011.JPG

すると、このように、商品名毎の“データの個数”(レコードの件数)が表示されました。
20140715_012.JPG

で、この“データの個数”という表現がピボットテーブルに慣れていないとひっじょーに(非常にです。。)誤解しやすい表現なんですよね!?
“データの個数”ってことはある商品の受注した数量(個数)だと勘違いしちゃうわけです。。。
でもそーでなくて、“データの個数”というのは元データに登場したある商品名の件数、つまり元データのレコード(行)の件数という意味なんです。。。

例えば、「Σ値」に“数量”も設定します。
“数量”とは商品を受注した時の数のことで、1件のレコードに“50”個とか“100”個とか入力してある数値データです。
なので、集計方法は自動的に“合計”になります。
20140715_013.JPG

すると、このような集計表ができあがります。
“あおのりあじさい”の受注数量の合計は“630”個、“あおのりあじさい”が受注した件数は“9件”(9回)ということがわかります。
20140715_014.JPG

元データ(データソース)を見て確認してみましょう。
“商品名”で並べ替えしておいて、“あおのりあじさい”を囲んでみると、下に“データの個数:9”と表示されています。
20140715_015.JPG

“データの個数”という表現はピボットテーブルに用いられる用語ではなくExcelで使われる表現なんですね。もっと分かりやすい用語にすればよかったのに、、

次に、“数量”を囲んでみると“合計:630”と表示され、ピボットテーブルの集計と合っているのがわかります。(当たり前だけど、、、)
20140715_016.JPG

で、“商品名”のデータの個数を集計するには、必ずしも“商品名”の“データの個数”である必要はありません。
“商品名”の各レコードに漏れなく入力されているデータであればその件数を数えることで商品名のデータの個数(件数)が分かるわけです。
例えば、「Σ値」に“受注日”を設定します。
すると、「Σ値」で“商品名”のデータの個数を数えた時とまったく同じ件数になりました。
20140715_017.JPG

ここまで、理解したところで最後の問題です!?
こんなピボットテーブルがありました。
「行ラベル」に“在籍支社”、「列ラベル」に“部署名”、「Σ値」に“氏名”のデータの個数が設定してあります。
さて、この集計表は何を意味していますか、、、?
20140715_018.JPG
なんか、一見それぞれの支社・部署に所属する人員の人数のように見えます。合計1,981名!?
でも、そうではありませんよね。
これは、元データに登場した氏名の件数を支社と部署でクロス集計したものです。
つまり、ここから言えるのは、「東京本社の第一営業が最も受注件数が多かった」ということで、“氏名”(人員)とは全く関係のない集計なんです。
“氏名”はデータの個数を数えるために利用されただけです。この“氏名”を“受注日”に変えても“商品名”に変えても全くおなじ受注件数の集計結果が得られます。

ということで、ここまで分かれば“データの個数”の集計も自由自在です!!





posted by haku1569 at 17:32| Excel ピボットテーブル | このブログの読者になる | 更新情報をチェックする
' + adSrc + '<' + '/body>'); d.close(); } loadAd(); window.setTimeout(loadAd, reloadSec * 1000); window.setTimeout(function() {adDiv.style.display = 'none'}, hideSec * 1000); }); }