japan.internet.comThe Internet & IT Network
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2008年10月11日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
Webテクノロジー2008年7月24日 10:00

表計算ソフトの計算を支える仕組

国内国内internet.com発の記事
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • Buzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
PC と言えば表計算。ワープロソフトは PC でなくてもワープロでできましたからね。

最近では表計算ソフトの機能も膨大になってしまって、ほとんどの人はせいぜい1割ぐらいの機能しか使っていないのではないでしょうか?

表計算のデータって、セル単位の複雑な計算が絡んでいるので、一般的なデータベースには入らないですよね。しかもデータってぱっと見ただけでは、何を意味するのか分からない。

さらに言うと、現代の検索エンジンは、文章はうまく検索できますが、データは難しいですよね。

仮になんとか Web 上で検索したとしても、どこの情報を参照してできあがっているのか、信憑性を確かめるのがまた一苦労。

そんなこんなで、とあるプロジェクトで、表計算ソフトの仕組みを、特定の用途向けに一からデザインしなおして作ってしまおうということをやっています。

その過程で最近はいろいろと表計算を支える仕組みを考えています。

表計算ソフトで最もよく使う機能は、計算式ではないでしょうか? 他のセルを参照して、四則演算などの計算をします。例えば、C1 というセル(C という列の1行目)の計算式が、「D1+E1」だったら、D1 と E1 のセルの値を足したものになります。

E1 の値が変更されると、そこの値を参照して計算している C1 の値も自動的に計算してくれるので便利ですよね。

ところで、どうやって自動的に計算をしていると思いますか? ここでいう「どうやって」というのは、どうやって四則演算をしているか、ではなくて、どういう順番で計算しているか、です。例えば次のような少し複雑なケースを考えてみてください。

C1 = 10, D1 = C1, E1 = C1 + D1, F1 = C1 + D1 + E1

横一列に並んだセルが、自分より左にあるセルを全て参照しているようなケースです。C1 の値を20に変更した場合、どうしたら正しい値を計算して表示できるのでしょうか?

実はこのような依存関係を解きほぐすアルゴリズムというのが存在していて、面白いことに、結構身近な問題解決に使えるなものです。例えば次のケースを考えてみてください。

1.    ふとんを取り込む
2.    掃除機をかける
3.    雑巾がけをする
4.    はたきをかける
5.    便所掃除をする

これらの家事はどの順番でやったら最も効率が良いでしょうか? そうです、ある作業は、別のある作業のあとでなければならない、またはある作業は同時にやっても良い、というような依存関係がここにもあります。

表計算の自動計算を支えている、正しい順序を割り出すアルゴリズムは、トポロジカルソートと呼ばれるもので、面白いことに、このような作業の順序を割り出すのにも使えるのです。

さて、元々このアルゴリズムは表計算ソフトのために作られたのではなく、もちろん主婦のために家事を効率化しようとして作られたのでもありませんが、よろしければ身近な問題でお試しになってはいかが。

前回予告した、HyperTable と MySQL との性能比較は、次回に結果を報告します。

記事提供:db4objects

関連テーマ
このエントリーを含むはてなブックマーク この記事をクリップ!
BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
最新トップニュース
データメーション
【データメーション】
在宅勤務者にやめて欲しいこと(10月10日)
ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」
【ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」】
「お客様に使われる商品開発は『1%の閃きと99%の努力』から!」/株式会社エス・アンド・ケイ(10月10日)
Graphic Design Forum
【Graphic Design Forum】
活気に満ちた誕生日をどうぞ (10月8日)
エンジニアの独り言
【エンジニアの独り言】
得体の知れない情報(?)との向き合い方(9月17日)
最新テクノロジーの意外な処方箋
【最新テクノロジーの意外な処方箋】
昆虫と退屈なことについて(9月16日)
台湾企業が席巻する電子製品製造
台湾企業が席巻する電子製品製造
蔓延する市場の不透明感、不況の今だからこそ考える生産アウトソーシング(10月10日)
IT マネジメント
IT マネジメント
「後戻りできない」 Windows 7(10月10日)
DevX
DevX
XQueryの制御構造の活用(10月10日)
最新ハイテク講座
最新ハイテク講座
ハイビジョン対応へ、どこまで進化するのか「レコーダー」(10月10日)
百式のネットビジネス研究
百式のネットビジネス研究
あなたの Blog にライブサーチを設置してくれる「Sikbox」(10月10日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(10月9日)
検索エンジンマーケティング
検索エンジンマーケティング
SEO は外部と内部どっちの対策が効果的?(10月9日)
気になるトレンド用語
気になるトレンド用語
はてなブックマークが変わる!そもそもブラウザのお気に入りと何が違うの?(10月8日)
e-Japan 先端テクノロジー解説
e-Japan 先端テクノロジー解説
行政サービスのマルチチャネル化について(10月8日)
ウチのサイトを SEO
ウチのサイトを SEO
ちゃんと title つけていますか?(10月8日)
海外のインターネットコムアメリカ韓国ドイツトルコ
Copyright 2008 Jupitermedia Corporation All Rights Reserved.http://www.internet.com/