だらけ日記ログ 2009年1月

[最新ログに戻る]
old log files:
2009年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2008年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2007年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2006年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2005年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2004年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2003年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]
2002年・ [ 1月 ][ 2月 ][ 3月 ][ 4月 ][ 5月 ][ 6月 ][ 7月 ][ 8月 ][ 9月 ][ 10月 ][ 11月 ][ 12月 ]


2009年1月30日(金)「素直にsplitが使えれば」
2009年1月5日(月)「あけおめことよろ」





2009年1月30日(金)「素直にsplitが使えれば」

 何か不意にExcelがいじりたくなってしまったので、区切り文字で文字列をセル単位に分割するExcelシートを新しくしました。

ダウンロード(ZIP / 267KB)

 機能的には、1文字ではなく複数の文字列での分割と、かっこ書きに対応しました。でも分割方法は前バージョンとまるで違っていたりします。

 バージョンナンバーを2.1.0にしたのもそのせい。ローカルにある2.0.0ではその表記した機能を前バージョンの応用で作ったものなのですが、最終的にセル分割する段階で新しく作った動きが、「むしろ全体的にその処理でまわしていいんじゃない?」というような作りになっていることに今朝方気づいて、結局その方法でほとんどの部分を作り直すことに。

 前バージョンの仕組みをざっくり説明すると、「文字列から区切り文字の文字位置を検出して、その区切り位置情報を元に、文字列抽出で分割する」という動きでした。SEARCH関数がメインですが、SEARCH関数だと、その検索文字列の1回目の登場位置しか検出しないので、同じ区切りで何回も分けられているときに、処理がややこしくなるんです。

 でまぁ、今回のバージョンアップで、かっこ書きや複数文字列に対応させる流れとして、いきなりセル分割しないで、それぞれの区切りがある場所にとりあえず制御文字列入れておいて、最終的に前バージョンの1文字の文字区切りに流し込んで分割させてしまおうと考えたワケです。んで、分割位置に制御文字列がどんどん入っていった最終的なセル分割前のデータは、

あ◆区切り◆い◆区切り◆う◆区切り◆え◆区切り◆お◆区切り◆か

 こんな感じに入ることになるワケです。PHPやJavaScriptであれば、「◆区切り◆」でsplitすれば分かれて配列に入ってくれますが、Excel先生には知る限りではそんな機能はないので、これを前バージョンの方式で分割…するの面倒やなー、つか区切り文字パターンが1つであるなら、もう少し簡単な方法がありそう。

 つことで別の分割方法を考えてみた。

い◆区切り◆う◆区切り◆え◆区切り◆お◆区切り◆か
う◆区切り◆え◆区切り◆お◆区切り◆か
え◆区切り◆お◆区切り◆か
お◆区切り◆か


 区切り文字列を検索すると、ひとつめの区切り文字列の位置が出てくるので、その位置から区切り文字列を抜いた後ろの文字列を取り出す。その出てきた文字列からさらに区切り文字列を検索し、区切り文字列以降の文字列を取り出す…というのを繰り返す。(各セルに上のようなデータが入る)

 次の計算で、ひとつ後ろの文字列で置換処理して、前と次の文字列で同じになる部分を削除する。

あ◆区切り◆
い◆区切り◆
う◆区切り◆
え◆区切り◆
お◆区切り◆


 するとこういうデータになる。あとは区切り文字列を消せば分割完了。

 つまり区切り文字列が特定の区切り文字列になってさえいれば、この方法で簡単に分割ができることに。いろんな区切り文字を特定の文字列にするなら、置換(SUBSTITUTE)するだけでいいじゃん…。誰だよ文字位置とか区切り文字の順番とか同じ区切り文字が複数回あるときとかいろいろ言ってたの!(自分だ)

 ということで、区切り文字列(1文字・複数文字問わず)を淡々と特定の区切り文字列に置換して、最後に上の処理をするというかなりシンプルなものになりました。こうなると前バージョンの処理方法がむしろ恥ずかしい感じに。前バージョンの方がExcelこねくりまわしてる感があって、そういう意味では好きなんですけど。

 かっこ書き対応処理の方は、そんな単純にできなかったので、相当恥ずかしい感じで作られています。開始文字を消して、終了文字で区切る…? いや、開始文字の前が区切り文字じゃない普通の文字列だとくっついちゃう…。こっちの動き的には前バージョン踏襲してる感じ。

 まぁ、これでタグ入れも簡単に!

並び順は適当

 でも先日大量に買ってきた新曲分のタグはもう入れ終わってしまった…orz。積まないで並べると結構少なく見えるけど、53枚あります。本当はこっちの買い物話も書きたいんだけどなぁ。

 むしろ聞く曲が大量にあったからExcel作業ができたとも言う…。

2009年1月5日(月)「あけおめことよろ」

 ダウンロード数はそれなりにあるのに、感想とかは一通も来ないExcelブック群の使い勝手が気になる今日この頃です。いつの間にか2008年も終わって2009年になってますが、これといって抱負とかもなく、これまで通りぼちぼち行きます。まだ12月の最終回たちを見終えてないしねッ!

 ということで、新年一発目もExcelファイルでひとつ。作ってみたのはいいけど、容量が大きすぎて(約5MB)公開をためらっていたのですが、まぁ公開。いつものMP3シリーズです。

 MP3ファイルは別にPCで聞くばかりではなく、ポータブルプレイヤーに入れて外で聞くシチュエーションも多いと思います。自分は外では動画を見るばかりなのであまり音楽プレイヤーとしては使わないんですけども、それでもまぁ、たまに聞くことはあります。

 んで、表示画面のついてるポータブルオーディオって、表示される情報をあまりカスタムできない印象が強く、動画プレイヤーを引退してただMP3置き場と化したCOWON A2さんもそのひとつで、ファイル名・アーティスト名・曲名・アルバム名・ビットレート・サンプリング周波数は出るのですが、苦労して番組名とか入れたコメント欄が表示されないんです。

 イラッとして、たいした情報になってないアルバム情報欄に番組名情報入れてしまおうかとも思いましたが、アルバム情報はアルバム情報だろうと思い直し、「なら番組名をファイル名にしよう」というひとつの答えにたどり着きました。まぁ曲名のうしろにひっつけるとかも手ですけど、MP3のID3タグに直接書き込む方法がわかんないのでやめました。

 とか書きましたが、本来はあちこちのフォルダに入っているMP3ファイルを一気にポータブルオーディオ内にコピーしたかったというのが最初だったような…。エクスプローラでのファイル操作だと、あちこちのフォルダをまたぐとき、意外とやりにくいでしょ?

 そういうときはコマンドプロンプトがべんり。フルパスで指定すれば、どこからでもファイルのコピーが可能。コピー時のリネームも設定可。

 COPY/B "元ファイルのファイルパス" "コピー先のファイルパス"

 のコマンドをコマンドプロンプトに貼って実行するだけ。Excelを使ってこういうコマンドプロンプトで使うコマンドを書き出すことって、自分は結構あるんですが、あまり一般的な使い方ではないのかなぁ。ファイル情報からファイル操作(コピー・移動・削除)するときとか結構便利よ。

ID3タグからコマンドプロンプト用コマンドを生成するシート1.0.1

ダウンロード(ZIP / 5,397KB)

主な機能

詳しくはお持ち帰りのコーナーで。

 解凍すると35MBにもなる化物Excelファイルです。CPUパワーやメモリ量によっては開けないかも。だいたい同じ容量あった感想率のシートよりは軽快に動きますが…。

 Excelシートへの感想・要望・苦情・バージョンアップ要請 等はメールなり横柱の簡易メッセージなどを用いて適当に伝えてくれると、今後に役立つかもです。

 とりあえず強引に知人から「アニメ新番組リストマイリスト抽出Excel」への要望は聞き出した。3月更新で組み込むよてい。


戻る