サイテック株式会社 > 第3回:事務でもできるオープンオフィスで書類作成~Calc入門~

エンジニア募集中!

サイテック株式会社で、根っからの技術者である社長や、大手IT企業から転職してきた仲間たちと議論しながら、社会をもっと豊かに、幸せにするアプリケーションを作ってみませんか?

  • Webアプリケーションエンジニア
  • エンジニア実習生

詳細はこちら

2009年02月22日 23:46

第3回:事務でもできるオープンオフィスで書類作成~Calc入門~ * * * *

by エゴゴ

Tags: Open Office

3回目になり多少Open Officeの内容がわかりかけてきた頃なので、次は関数入りExcelをods化したいと思います。


作成しているExcel表は、前回若干のダメ出しをしている「罫線」が絡んでいるのですが、今回は「関数」がメインとなるので、元ファイルとの違いがあるにしても気にせず考察したいと思います。


まず、作成しているExcelなどを念頭に気になる点。


1) Excel関数がそのままods関数に自動変換できるか

2) 「名前ボックス」で指定した名称が使用できるか

3) Excel Book内でシート間リンクを使用している場合どうなるのか?

の3つとなります。


まずは(1)の関数互換性。関数の互換性は全くありません。


たとえば簡単な関数「SUM関数」などの場合、ExcelワークシートA1~A5に数値があり、A6でSUMを利用すると、「=SUM(A1:A5)」と表示されます。


その関数式がodsでは「=_xlfn.sum (A1:A5)」となり、「#MACRO?」というエラーメッセージが表示されます。


メッセージをみて思わず心の中で「マクロじゃないし」という突っ込みを入れつつも、どうやら関数の文頭にすべて「_xlfn.」が自動挿入され、かつ大文字が小文字に変換される模様です。大文字・小文字での関数エラーはないとおもうので、ctr+fで「_xlfn.」文字列を全て削除する置換処理してみます。


置換結果、関数計算ができるようになりました。


続いて、Excel2007の新関数「sumifs」関数。


これは、今まではand関数などを使用し、長い複数条件検索をしていたものを簡単に処理できるようになったものです。複雑な関数を組み合わせることなく使えるので、かなり重宝している機能の一つです。


「=_xlfn.sumifs」と表示されているので、前回同様「_xlfn.」文字列を全て削除する置換処理してみたところ…


「#NAME?」エラーが出てしまいました。


どうやら、Excel2007の新機能の「sumifs」関数は組み込まれていないようです。ここは2003形式に戻り、and・sumif関数などの複数関数組み合わせをしないといけないようです。


気がつけば2007をずっと使用しているので2003形式を覚えていないので、少々手間がかかりそうだなと思いました。


CalcにはSUMIFS関数がないので、「=_xlfn.sumifs」を「=sumif」に置換えしてみました(処理内容はもちろん変わってきますが、あえて今回は無視をしてます)。


またしても「#NAME?」エラー!


Caclの関数ボタンをクリックすると「SUMIF」関数はあるので、どうやらSUMIFの場合Excelで作成をしたファイルをそのまま開いて「_xlfn.」文字列を全て削除する程度では使用できないらしい。


ここで改めて、Excelでの「SUMIF」関数を開いて引数内容を確かめてみると、


1) 合計対象範囲

2) 条件範囲

3) 条件の順で検索対象

を決めていきます。


Carlの場合、

1) 範囲(Excelでいう条件範囲)

2) 条件

3) 合計範囲

と、ずれています。


また、Excel関数ではfxクリックで「関数の引数」を表示させ編集する場合、対象Excelの任意の位置・列などを指定できるのですが、Calcの場合、fxクリックで「関数ウィザード(Excelの引数と同じ)が表示されていても、直にExcelをクリックして対象を選択することができないのです。


よく使う「VLOOKUP」関数などの引数を見てみると、順番に関しては変化なく、指定すつ内容に関する表現が若干違う程度のようです。


全角の英数カナ文字2バイトを半角カナ英数の1バイトにする「ASC」に関しては「全角ASCⅡ文字とカタカナ」とあります。


ASCⅡ文字というのが関数の特性上「英語」とかだと何となくわかるのですが、本当の意味が全くわからず思わず調べてしまいました。


調べてみると、アメリカなどで使われる英数字の文字コードのコトらしい。


Open Officeをもともと開発していたドイツのStarDivison社が開発・販売していたものをサン・マイクロシステムズが買収したもなので、ドイツ国内技術者の関与ももちろん大きく、買収した企業の英語と並んでその2言語が充実しているらしい。


最近は世界各国の文字をサポートできるUnicodeの規格化が進んでいるらしいのだが、何となくだけれども、いかにもわが道を行くアメリカ企業らしいなぁ…と思ってしまった。


関数関係の話をしていたので話がずれてしまいましたが、実際このオープンソースのプロジェクト自体が24人の開発メンバーで進められていることなどで「プロジェクトが頓挫するのでは?」という疑問もあるらしく…いろいろな意味で難しいソフトだなと。


まぁ、頓挫されても逃げ道としてMicroSoft社をはじめとする他ソフトで活用できるよう設計できているらしいので、引き続き使用していこうと思う。


というワケで、後半関数考察から内容がズレてしまいましたが、次回は今回の内容を踏まえ、さらに同ファイル内でのリンク関数をチェックしていきたいと思います。

この記事の執筆者

スーパー事務 エゴゴ 102歳 入社4年目

この人の会社をみる この人関連のイベントをさがす この人と一緒にはたらく

コメント

(メールアドレスは公開されません。メールで返答が欲しい場合などに入力してください)

このエントリへのトラックバックURL

トラックバック

トラックバックはありません

メンバー紹介

たむかい

たむかい

はじめまして。サイテックのたむかいです。世の中では、ITの仕事は新3Kなんて言われることがあるそうです。きつい・帰...

ishidaさん

ishida

サイテック最年少の子持ちプログラマーです。 最近Twitterはじめました! By TwitterIcon.com

ゆきんこ

ゆきんこ

知識も技術もほぼゼロからスタートしてる、新人です。 『☆新人女子プログラマーの技術修行日記☆』書いてます。 【テー...