Home > Opinion
<< コールセンター : main : 鎌倉でしだれ桜+江ノ電 >>

Excelは方眼紙,PowerPointは白紙

詰まるところ考えは紙の上に自由に表現したいのであって,電子方眼紙としてExcelを,電子白紙としてPowerPointを使っているだけなのであった.だって,どう考えてもTree構造なものをExcelの字下げで書くとか,無理がありすぎ.
数値やデータをまとめるときにExcelを使うことが多いけど,全然表計算してないよね.「表罫線」ソフトでいいならExcelなんて高価なもの不要じゃん.

あと,考えをまとめるときPower Pointを使うことが多いけど,結局白紙が欲しいんだよね.たぶん.あとはページ単位でストーリーの流れを表現しやすいから.

でも,よく考えると考えにも分岐があるから,ツリー構造で表現できないと分かりづらいこともある.(そこでMindMapですよ.って?)

まじめに考えてみると,じつは一直線とか1:1で表現できるような単純な話ってあまりなくて,データ構造としてはツリーとなる場合がかなり多い.でも,Excelは1:nの構造を扱えないから無理がある.というか方眼紙に手書き以上のことを元々期待していないから,無理とか言うレベルになってない.

方眼紙に書くのはいいけど,それでは人間が読めても機械が読めない.だから,いつまで経っても人間が翻訳しないといけない.

しかし「データの構造をきちんと考えたらExcelでは表現できませんよ」と言ったところで代わりの物が見つかるかと言ったらちょっと難しい.というのは(方眼紙だからこそ)横にメモを追加したり,マーキングしたりといった二次加工が容易という特性がExcelにはあるからだ.データを受け取った側はそれをReferenceとして同様に独自の情報を構築する必要があるのだ.

といった前提条件をふまえた上で,構造を表現する方法を考えてみたいと思う.



白紙を前提としたPowerPointの方はとりあえず置いておいて,方眼紙の代替物たるExcelに記入されるデータを表現するには,1:多の入れ子が表現できればほぼ十分であろう.これはXML, JSON, YAML等で表現可能である.

それをいかに表の部分は表として見せて,Zoom In/Out的に1:多を見せ,さらに好きなデータを追加するか.

XMLEditor.NETというXML Editorは左側にXML Tree,右側にソースコードという一般的なXML形式の他,データを表形式で見せることができる.これが結構秀逸で,ツリー上では階層構造になっていても,同一のタグなら表の上ではフラット構造に見せてくれる.それでいて特定のノードを選んで階層を下って絞り込むことも可能だ.

一部のノードのみが持つ属性や子ノードTAGがあれば,それらも表の列に加わり,他のノードで対応する値がない部分に値を入れれば同じように子ノードや属性が生成される.

これを駆使すれば最初のデータをXMLとして作るところまでは割と行けそうだ.あ,でもExcelじゃないから,連番とか計算式とかを使いたい場合に困る.(と言っても使われないことも多いけど.) もちろんVBAでExcelにインポートしたり,Adobe AIRで演算することはできるかもしれないけど,ちょっと敷居が高い.そもそもExcelではデータ構造が表現できないから別の物と言ったのに,それをExcelにそれらしく見えるようにインポートするのは思ったより単純な変換ではすまないと思う.

とりあえずこの課題は一旦置いておいて,次の課題はこのXMLをもらった人がどうするかである.元のデータにコメントを加えて送り返すような用途なら,コメント要素を問題箇所に挿入するのがベストな気がする.しかし,派生して何かを作った上で,元のデータのインデックス的な部分に対応づける加工ではそれは最適では無いと思う.各自が要素を追加してデータを入れてしまうと,異なる人が作った物を組み合わせることができないし,元のデータが更新されたらどうするの?ということにもなる.

これに解を与えてくれそうなのがXML Join.
Pentaho Data Integration: XML Join
LINQ to XML : Join Xml Data

元データのインデックスを取り出したファイルをベースに,(可能なら元のデータを参照しつつ)独自のデータをくみ上げた上で,元のデータとJOINする形で見せれば良いのではないか.



だんだん必要な物が見えてきたような気がする.(XMLでデータを扱う場合)

* インテリジェントに表形式で編集できるXMLエディタ
* XML編集したデータを装飾したり,計算ルールを設定したりする機能.
* ベースXMLから派生データのXMLを自動生成する機能.
* ベースXMLを見ながら派生データを構築する機能.
* 最後にそれらのデータを一つにまとめて管理する機能.

YAMLはXML相当の表現ができると言われているが,最初に述べた文章(の一部分)にコメントをつける例がうまく取り扱えないのではないかと思う.敢えて使うなら文章はXHTMLで,ってそれXMLじゃん...



ちなみに置いておかれたPowerpointの方は,実はタブレットとIllustratorの方がいいかも.(Illustratorの方がPowerPointより高いじゃん!というつっこみはさておき...)
Opinion : - : trackbacks (0)

Trackbacks

Trackback url
Latest Entries
Categories
Recent Trackback
Archives
Profile
Other
RECOMMEND