去年よりロジカルな方法を思いついたので12か月合算の集計方法をメモしておきます。
そもそも月ごとにExcelでitunesの再生履歴のバックアップをとっている人or取ろうと試みている人なんて世界に何人も居ない気がしますが・・。笑
(前提)・各月ごとに、itunesの再生履歴をExcelファイルにバックアップしておく。
・別に1つ新規ファイルを作成し、そこに12個のファイルのデータをすべて貼り付ける。
(アーティスト別集計)←各月の集計方法と同じ
・アーティストを軸に並び替え
・小計(アーティストをグループとして、再生回数を合算)
(楽曲別再生回数集計)・・こちらはかなり手間が増える。
方法A・(1)アーティスト名、(2)楽曲名、を軸に並び替え
・小計:楽曲名をグループ基準として再生回数を合算
*これでも一見要求は満たせそうだけど、同一楽曲名も結構あったりするので、後々混乱することになりかねないという欠点が。
方法Bア)(1)アーティスト名、(2)楽曲名、を軸に並び替え楽曲名を第1キーにすると、似たようなタイトルの曲が並んでしまうので、後々不都合。
例)
| 東京元年 | 0 SOUL 7 | 2 |
| 東京元年 | 0 SOUL 7 | 1 |
| B.O.K | 100s | 1 |
| OZ I | 100s | 1 |
| ある日、 | 100s | 1 |
| そうさ世界は | 100s | 1 |
| そりゃそうだ | 100s | 10 |
| そりゃそうだ | 100s | 3 |
| そりゃそうだ | 100s | 2 |
| そりゃそうだ | 100s | 1 |
| そりゃそうだ | 100s | 1 |
| そりゃそうだ | 100s | 1 |
| なぁ、未来。 | 100s | 3 |
| なぁ、未来。 | 100s | 1 |
| フラワーロード | 100s | 1 |
| まんまる | 100s | 1 |
そもそも、同じ楽曲名が並ぶのは、複数のアルバムに収録されている、という理由がひとつ、各月ごとに分けて集計してデータを管理しているから、というのがもう一つ。イ)IF関数:楽曲名が上と同じなら1、異なる場合は0。ウ)IF関数:楽曲名が下と同じなら2、異なる場合は0。エ)ア)、イ)のIF関数の数値を合計
例)
| | | 再生回数 | イ) | ウ) | エ) |
| 東京元年 | 0 SOUL 7 | 2 | | 2 | 2 |
| 東京元年 | 0 SOUL 7 | 1 | 1 | 0 | 1 |
| B.O.K | 100s | 1 | 0 | 0 | 0 |
| OZ I | 100s | 1 | 0 | 0 | 0 |
| ある日、 | 100s | 1 | 0 | 0 | 0 |
| そうさ世界は | 100s | 1 | 0 | 0 | 0 |
| そりゃそうだ | 100s | 10 | 0 | 2 | 2 |
| そりゃそうだ | 100s | 3 | 1 | 2 | 3 |
| そりゃそうだ | 100s | 2 | 1 | 2 | 3 |
| そりゃそうだ | 100s | 1 | 1 | 2 | 3 |
| そりゃそうだ | 100s | 1 | 1 | 2 | 3 |
| そりゃそうだ | 100s | 1 | 1 | 0 | 1 |
| なぁ、未来。 | 100s | 3 | 0 | 2 | 2 |
| なぁ、未来。 | 100s | 1 | 1 | 0 | 1 |
| フラワーロード | 100s | 1 | 0 | 0 | 0 |
| まんまる | 100s | 1 | 0 | 2 | 2 |
基本的には、1つ上のデータと楽曲名が同じだったら、再生回数を合算し、1つ上のデータを削除する、という風に計算したいところだが、これだと同じ楽曲名のデータが3つ以上ある場合、計算が合わない。
このようにcodingすると、エ)の値を見れば、上と同じ場合(=1)、下と同じ場合(=2)、上下と同じ場合(=3)、独立している場合(=0)と判別できる。
オ)IF関数:上の列のエ)が2である場合、上の楽曲の再生回数と合算、そうでない場合はその曲の再生回数をそのまま使う。1つ上のデータがエ)=2である、ということは、2つの楽曲名が一致していることがわかるので、合算。エ)=3である場合は1つ上のデータも同じ計算をしていることになり、重複してしまうのでここではスルー。
カ)エ)、オ)のデータを値だけコピーして削除。イ)、ウ)の行も消去しておく。必要がなくなったら、関数は値に変える。Excelの鉄則。
キ)エ)の値を軸に並び替え。
ク)エ)の値が2になっている行をまとめて削除。
オ)の操作で下のデータと合算されたはずなので、不要。
ケ)オ)の値を再生回数の列にコピー。合算後の再生回数に更新しておく。コ)増えてる行を全部消す。不要になったら消す。作業効率優先。
ア)〜コ)をループ。イ)の値の合計がかなり小さくなってきたら、手動で合算していってもよい。
備考)〜(Live Version)とか、〜(feat. ・・・)とかを同曲として扱いたい場合、始めにLEFT関数を使用するなどして、文字一致判断用の基準をつくっておくとよい。(たとえば、前5文字同じだったら同じ曲とみなす、と考えるならLEFTで5文字切り出す。)