昨日Excelファイルは完成したつもりでしたが、よく考えるとランキング表示がうまくいかないことがわかりまして、1日中悩んでました。
ランキング自体はRANK関数を使えば出るんですけど、それを並び替えしようと思って、VLOOKUP関数を使って、1位ならRANK関数で出た「1」のあるセルの横を表示させればいいかな、と考えていたんですけど、これだと同率順位があったときに対応できないんです。VLOOKUPだと上から順に探して、最初にあったところを返してくるので、同ランクがあると、同じタイトルを表示してしまうことになってしまって。
とりあえずランキング構成(1位、2位、2位、2位、2位、6位、6位、8位…)を読み出すのにはIFとVLOOKUPとCOUNTIFを用いてなんとか成功。VLOOKUPで自分のセル位置(13番目なら13)をランキングにもつところがあるか検索して、あるならそれを、ないならひとつ上と同じ物を表示(同ランク)するという仕掛けにしました。
番組タイトルもそれの応用かと思いきや…全然できなひ。
同ランクの場合、ひとつ上のランクに入ったタイトルが入っているひとつ下のセル範囲から検索する手は早々に思いついたんですが、MATCH関数で番組タイトルの入ったセル位置を検索して…そこでストップ。
VLOOKUP(番組タイトルの入ったセル番号,検索範囲,列番号)
の検索範囲のところを変えればいいとは思いつつ、普通に入れようとすると、"C2:D84"のように文字列扱いになってしまいエラーが帰ってくる罠。
また関数リストとにらめっこ。INDEXやCONCATENATE、ADDRESSなどを試しつつ…失敗。
んでなんとかOFFSET関数に出会えて、やっとこランキング化に成功しました…。そのまんま使ったので検索範囲が狭まらずにシフトしてしまっていてちょっと格好悪いですが。列数にも計算式入れればきれいになるとは思ってますけど、表示できてるからいいかなー、とか。
で、苦労の末、今こんな感じに表示できるようになりました。
つことでまだメールは出してなかったりします…。フライングでメールが来たり、感想サイト様の日記での反応があったりで(アクセス解析にて発見できる便利)、7サイトほどデータが入った状態になっていたりしますが。これだけでも結構傾向が見えつつありますね。今後どうなっていくのか楽しみです。
今回すでにデータを頂いているサイト様にも、一応メールは送らせていただく予定です…。返信はしなくて結構ですが。日記で書いたのは仮文面ですし…。時空冒険記ゼントリックス抜けてるし…。(^-^;) あといくつか注意事項足して正式文にしてからメールしようと思っています。
目標は今週中でひとつ。しばしお待ちを。まぁこちらからメールを送る前にデータを送っていただいても特に問題があるわけではないんですけど…。
|