グラフまでこじつけた…。 あぁ、サンプルデータが入ってるだけですので。
感想率順のソートにも相当手こずった…。でも一応メインシステムは完成したかな。
あとはサイト数250、番組数124まで対応できるようにしたとか。前回までの手動部分がほとんどなくなった感じ。データを入れれば自動で全部出てくる。おかげでファイルサイズは50MBを超えてしまいましたが…。画像が貼ってあるわけでもないのにでかすぎ。
結局感想率をRANK関数で順位づけ、その順位をソートし(詰め)て、その順位からLOOKUPで抜き出すというソート方法にしました。もちろんただのVLOOKUPやHLOOKUPは左上のデータしか拾わないので、そこはOFFSET関数をうまいこと使って、検索範囲をずらすことによって解決するいつもの手で。直前の検索の位置をMATCH関数で探して、その分だけずらすんです。注意するのは検索範囲がシートの外まで行ってしまうと問答無用でエラーになってしまう点で、それもMATCH関数でずらす量を決めた分だけ、検索範囲を端から狭めて解決させます。
例えば「A c b A x u c A x」というデータの入った個々のセルから、「A」の入っているセルを抜き出すとすると、HLOOKUPで全範囲を検索すると、かならず一番左の「A」を拾ってしまいます。そこで下図のように、 1つ目で見つけた場所の次のセルから、再び検索を始めればそれで見つけるのは最初の「A」ではなく後ろの「A」を見つけることになります。まぁこの場合は同じ「A」なのであんまり意味がないですけど、実際はそれぞれの場所の「A」と連動する別々のデータが入ったセルを抜き出す、という流れになります。つまりメインとなるのは、
HLOOKUP関数, VLOOKUP関数, LOOKUP関数:指定条件から該当セルを検索 MATCH関数:セルの位置情報を表示 OFFSET関数:検索範囲の移動 RANK関数:順番を決定づける指針を表示
この4種の関数の組み合わせということになりますね。まぁ同率のランクがなければRANK関数とLOOKUP関数だけでカタが付くんですけど。
あぁ、あまりアニメと関係ない話を書くなとの声が聞こえてきたのでそろそろやめます。
|