新感覚の計算アプリ Instacalc は Google 電卓を超えてるかも
本日は電卓と表計算の中間のようなユニークな計算アプリケーション Instacalc をご紹介しようと思います。少し前の「今週の話題」でも軽くご紹介しましたが、基本的には Google 電卓のように数式をそのまま計算できる電卓で、単位変換などもばっちりサポートしています。ユニークなのは、複数の計算式をシート上に並べることができ、ある計算式の結果を別の計算式で参照することができる点です。ちょうど 1 カラムしかない表計算のようなイメージですね。シートは保存して再利用可能なので、特定の計算を繰り返し行うような場合にはとても便利です。
また、サービスの提供形態もなかなか工夫されていて、ユーザー登録をまったく必要としないにもかかわらず、作成したシートの保存、共有、任意の Web ページへの埋め込みなど、多彩な活用が可能になっています。今後の Web サービスのあり方を考える上で、とても参考になるとやり方だと思います。そのあたりに興味のある方も、ぜひ一度触ってみてください。
使ってみる
それでは、さっそく Instacalc を使ってみましょう。前述のとおり、ユーザー登録などは一切必要ありません。単にトップページにアクセスするだけでまっさらなシートが表示され、すぐに計算式を入力できる状態になります。
こういう「すぐに使い始められる」感覚は、これからの Web サービスにとってかなり重要になってきそうですね。
まずは普通に計算
まずは普通に数式を計算させてみましょう。シートに配置されているテキストボックスに計算したい数式をそのまま入力すれば、右側に計算結果が表示されます。 Google 電卓と同様に括弧などが適切に処理されますし、 sin や log などの関数も使えます。例えば、以下の計算式をシートの一番上のテキストボックス R1 に入力してみてください。
(1 + 2) * 3
テキストボックスの右に答えが「9」と表示されます。括弧も含めてきちんと計算されているのがわかりますね。利用可能な演算子・関数は、すべてツールバーから入力できます。コンボボックスでジャンルを切り替えることができるので、ひと通り確認してみるとよいでしょう。それでは次に、その下の R2 に以下の計算式を入力してみてください。
R1 + 1
R1 の答えに 1 を足した結果である「10」が表示されます。このように、式中に "R数字" と記述することで、該当行の答えを参照することができます。数式の一部をパラメタライズできるので、似たような計算をなんども繰り返さないといけないときに便利です。しかし、参照する行が多くなってくると、それぞれが何の値なのかわかりづらくなってきますよね。そんなときは変数への代入を使いましょう。 R1, R2 の内容を以下のように変更してみてください。
R1 : X = (1 + 2) * 3 R2 : X + 1
先ほどと同じ答えが得られるはずです。このように、計算結果を変数に格納しておけば、その変数名を使って値を参照できます。行数指定よりもわかりやすく、かつ行の挿入・削除などを行っても参照位置がずれないのが利点です。もちろん行数指定にもそれなりのメリットがありますので、ケースバイケースで使い分けてください。
単位変換を使う
Instacalc は Google 電卓ばりの単位変換もサポートしています。例えば 17km の道のりを 13 分で移動したときの平均速度を時速で表示するには、以下のように入力します。
17 km / 13 min in km/h
さらに、通貨換算も可能です。 1500 円を米ドルに換金した結果は
1500 YEN in USD
で計算できます。
条件判定
計算式の中には、一定の範囲以外では未定義になるものや、範囲によって演算を変えなくてはいけないものなどがあります。そんな計算を実現するために、条件判定(if〜else if〜else)が用意されています。例えば、以下の計算式は v が -1〜+1 の範囲にあるときは acos を計算し、それ以外の場合はエラーメッセージを表示します。
if(-1 <= v && v <= 1) { acos(v) } else { "-1〜+1の範囲で設定してください" }
変数と組み合わせれば、かなり複雑な演算にも対応できそうですね。条件判定を扱えるのは Instacalc の最大の特徴ではないかと思います。
作った計算シートは保存できます
ここまで見てきたように、 Instacalc は工夫次第でかなり複雑な計算を実行できるポテンシャルを持っています。でも、毎回それらを入力するのは大変ですよね。その面倒を回避するため、作成したシートのパーマリンクが取得できるようになっています。方法はとても簡単。シート上部のツールバーにある「Link」をクリックすると "Permanent link to calculation for your blog, email or webpage" というリンクが表示されますので、そのリンク先 URL をブックマークしてください。あとは、ブックマークした URL にアクセスするだけで、いつでも保存したシートを利用できます。
ユーザー登録なしにシートの保存までできるというのは素晴らしいですね。 URL を blog などに掲載すれば、複数人での共有すら可能です。これぞ Web 2.0 という感じでしょうか。
さまざまな活用方法
Instacalc は単純な計算以外にも、作成したシートを活用するための機能がいくつか用意されています。今度は、それらについてご紹介していきましょう。
グラフ描画機能
Instacalc は簡単なグラフを作成することもできます。グラフ生成には PlotKit を利用しているようで、なかなか見栄えのするグラフを生成してくれます。とりあえずグラフを表示するには、 R1〜R5 に適当な数値を書き込んで、 R6 に以下のように記述してください。
piechart(r1:r5)
ページの右にポップアップで円グラフが表示されたはずです。グラフの下にある "Bar chart", "Line char" のリンクで棒グラフや円グラフも表示できますし、その右のカラーバーで色調を 5 種類から選べたりもします。
どれも見やすいデザインで、そのまま切り貼りして資料などに使えそうですね。項目名はデフォルトで "Row1" などになりますが、計算式を変数への代入の形式にすれば、その変数名が表示されます。もはやグラフを作成するためだけに表計算ソフトを導入する必要はなくなりますね。
ウィジェットを任意のページに配置
作成したシートは、ウィジェットとして任意の Web ページに貼り付けることができます。
- まず、ウィジェットにしたいシートを普通に作成します。
- ツールバーの「Embed」をクリックします。
- ウィジェットが作成され、埋め込み用の HTML コードが表示されますので、それを自分の Web ページにコピー&ペーストします。
これだけで Web ページにオリジナルの計算シートが設置できます。自分が良く使う計算式をウィジェットにして自分用シート集を作るもよし、ショッピングサイトに簡易電卓&通過換算用として配置するのも面白いかもしれませんね。後にいくつかサンプルのウィジェットを貼り付けておきましたので、参考にしてください。
Google ガジェット
さらに、 Google Personalized Homepage で使えるガジェットも用意されています。こちらは上記のウィジェットと違い、白紙のシートを Google Personalized Homepage などで利用できます。下に貼り付けておきましたので、使ってみてください。
気に入ったら、ガジェット下のボタンでご自分の Google Personalized Homepage に追加できますよ!
サンプル
最後に、サンプルのシートを 3 つほど作ってみました。前述のウィジェット生成機能で貼り付けてありますので、実際に操作していただけます。こんな感じで作成したシートをページに貼り付けてコレクションしておけば、いつでも利用できて便利ですよ。
基数変換
プログラマーにとって多機能電卓の使い道 No.1 といったらこれでしょう(笑)。 Instacalc なら、以下のように 2 進、 8 進、 10 進、 16 進の値を同時に表示できます。
このほか、基数変換を通貨換算に置き換えて、計算結果が各種通貨のレートで表示されるシートというのも面白いかもしれませんね。
二次方程式の解を求める
二次方程式の係数を入力するとその解を表示するシートです。このくらいなら、単純に解の公式を入力するだけですから簡単にできます。
中学生の宿題のお供にどうぞ(笑)
RGB → HSV 変換
ちょっと複雑な例として、 RGB のカラーコード(0.0〜1.0)を HSV に変換する計算を作ってみました。
これを作ったときは試行錯誤中だったので if {} else if {} else {} で記述できるところを if {} else { if {} else {} } とか書いてしまっていますが、悪い例です(^^;。笑って見過ごしてください。
以上、本日は新しい計算アプリケーション Instacalc をご紹介しました。単にひとつの数式を計算するだけなら Google 電卓でじゅうぶんですが、複数の式で構成されるような複雑な計算には Instacalc が便利そうです。うまく使い分けて、面倒な計算をスマートにこなしましょう!
詳しくはこちらの記事をどうぞ!
この記事にコメントする