| だらけ日記 | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2009年9月13日(日)「MOON PHASEさんのアニメ新番組リストを自分用に並べ替えて抽出するExcelブック Ver.1.1.1」 |
| 放送局名 | 表示名 | 映る局に○ |
|---|---|---|
| TOKYO MX|TOKYO MX特番|東京MXテレビ|東京MXテレビ特番 | 東京MXテレビ | ○ |
| テレビ神奈川|テレビ神奈川特番|tvk | テレビ神奈川 | ○ |
| とちぎテレビ | とちぎテレビ | |
| チバテレビ|千葉テレビ特番 | チバテレビ | |
| テレビ朝日|テレビ朝日系 | テレビ朝日 | ○ |
| テレビ東京|テレビ東京系 | テレビ東京 | ○ |
| テレビ埼玉|テレ玉|テレ玉特番 | テレ玉 | |
| フジテレビ|フジテレビ系 | フジテレビ | ○ |
一部を抜き出すとこんな感じ。これまでの1セルに1表記名という仕様から、1セル内に、|で区切って多数の表記を入れられるようにしました。メリットとしては、
あと、放送局名(|で区切れるところ)を区切らずに1つだけにして、表示名と同じにすると、そちらの表記の方を優先します。(そうしないと「〜系」が出なくなる弊害があったため)
「|で区切って」なんて簡単に書いてますが、splitのないExcel的には、これらを区切り文字で1セルずつに変換するのは結構めんどくさいんです。区切り文字で文字列をセル単位に分割するExcelシートを作ってるぐらいに。しかも、内部処理的に、これらが縦一列になったデータを出す必要があって、これが相当面倒くさかった…。
| 処理前 | 処理後 |
|---|---|
| テレビ神奈川|テレビ神奈川特番|tvk とちぎテレビ チバテレビ|千葉テレビ特番 テレビ朝日|テレビ朝日系 | テレビ神奈川 テレビ神奈川特番 tvk とちぎテレビ チバテレビ 千葉テレビ特番 テレビ朝日 テレビ朝日系 |
こういう変換。各セルで分割数が可変で、行の関係がなくなるので、結構面倒だと思う…。(いいやり方があるなら知りたいです)
シンプルにしたかったのに、結局9列も使って求めることになって、おかげで500KBも増量するハメに。ちゃんと考えれば、もう少しシンプルにすることはできるとは思うけど。
流れとしては、各セルの分割数(|の数)を求める → 必要な行数を確保 → それぞれの行で必要な放送局名を表示 といった感じ。処理的には9列もいらない計算なんだけど、Excelの入れ子関数は7まで制限がなー。むしろ複数回出てくる計算はセルいっこ別に使った方がスマートかも知れないわ。まぁとりあえずたぶん動いてるので。
いったん横セルで分けて、INDEX関数で出す方がスマートかなぁ? でもそれだと分割数に横セルで用意する列での制限ができちゃうし。現状は数値を使っているので、計算的には99分割まで対応。行数を用意してないので、トータルの放送局名的には499が限界かな。
あと放送局名の表記を統一するギミックを入れたおかげで、以前に実装した「特番◆」とかの対応が取れちゃって、そこの修正でちょっとバタついた。今回の新番データにはなかったしね、この書式…。
通常関数のみでチャレンジするExcelいじりはやはり楽しいわ。この自由度が微妙に足りない感じが、パズルを解く感覚や推理ゲームの感覚に近い感じ。名探偵ばりの美しい数式が書きたいわ。