| だらけ日記 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2004年4月16日(金)「誰が読むんだかわからないExcel話」 |
| サイト名 | 番組名 | 評価(感想率) | コメント |
という1行で独立しているまとまったデータを持たせることにより、列数増加をすることなく、固定列数ですべてのサイトデータを管理することができるようになります。
実際は、
| A | B | C | D | E | F | G.. |
|---|---|---|---|---|---|---|
| 1 | サイト | サイト | 番組 | 評価 | コメント | 略・URL |
| サイト | 番組 | 評価 | コメント | 略・URL | ||
| サイト | 番組 | 評価 | コメント | 略・URL | ||
| サイト | 番組 | 評価 | コメント | 略・URL | ||
| 2 | サイト | サイト | 番組 | 評価 | コメント | 略・URL |
| サイト | 番組 | 評価 | コメント | 略・URL | ||
| サイト | 番組 | 評価 | コメント | 略・URL | ||
| サイト | 番組 | 評価 | コメント | 略・URL | ||
| サイト | 番組 | 評価 | コメント | 略・URL |
のようなシートになっているワケではありますが。データを入力するのは、B列・D列・E列・F列の4つ、あとは自動で入るようになっています。
A列に入っているのは、
「=IF(NOT(自分の隣(B列)=""),COUNTA(B列一番上の行〜自分の行),"")」
というもので、「もし、自分の隣のB列に何かあれば、B列の一番上から自分の隣のB列のセルまでのデータが入っている個数を数えなさい」という内容になっています。これで自動的に整理番号が付加されます。
C列に入っているのは、
「=IF(NOT(横のBセル=""),横のBセル,IF(NOT(横のDセル=""),自分の一個上のCセル,""))」
というもので、「B列に何か入っていればB列と同じものを。B列に何も入っていなければ、上と同じものを入れる。でも右横に何も入ってなかったら何も書かないでおくれ」という内容になっています。これで入力した番組評価のある行までサイト名を繰り返し表示させています。
感想率データをまとめる際に必要になるサイト情報(G列以降)は別に用意するサイト情報シートからVLOOKUPで引っ張り出します。
入力フィールドは、300サイト×50番組を想定して15000行用意してみた。(ちょっと多すぎ)
そんな感じに縦長になったデータ入力シートだと、いままでの計算方法では集計できないわけで、このシートに合わせた計算式を書いてやる必要があったりするワケです。
でもとりあえず感想率データを出すだけならすごく簡単な式になりました。Excel使う人なら簡単にわかると思いますが、SUMIF関数を使うだけで、番組ごとの集計が一瞬で、
「=SUMIF(D列(番組名の入った列),番組名,E列(感想率の入った列))」
というSUMIFの基本書式、
「=SUMIF(検索範囲,検索条件,合計範囲)」
のみで計算が可能というなんとも楽チンな結果に。取り扱いサイト数もCOUNTIF関数のみで簡単計算。
…しかし、楽なのはここまでのようで。このあと、
●番組別サイトリンク
●しかも感想率高い順にサイトリンクを並び替え
というタスクが待っているワケです。縦横の関連性がないため、「データがここにあるということは、これはこのサイトのもの」という単純な考え方ができず、「あるデータから横にあるサイト名や感想率データを引っ張り出す」という手順を踏まなければならなくなるワケですね。
つまり、MUTCH関数でセル位置を検索しつつデータを拾い、次のデータはOFFSET関数を用いて検索範囲を変えることにより見つけていき、出てきたデータをRANK関数等で分類し、その分類をもとに並び替える…というものが必要で、そこをサイト情報と切り離さないようにやらねばならんわけです…。
で、その計算を数千行×約100列セルでやらせようとしたら…Excel死亡しました。やっぱりちょっと無理させすぎたようです…。
もう少し少ないデータ数を想定した方がええな…。