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

エンジニア募集中!

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

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

詳細はこちら

2009年03月02日 00:11

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

by エゴゴ

Tags: Open Office

引き続き、前回の関数に関する話題です。
前回、Excel形式ファイルをCalc形式ファイルに変換したときに、Excel2007関数からの新関数によりエラー表示また、関数指定順相違によるエラーについて若干お話をしました。

今回もl前回に引き続き関数関係の話題です。

まずは、同ファイル内別シート間での関数計算によるCalc化の問題点。
もちろん、今回も前回同様「SUMIFS」関数を利用していたのですが、今回は前回より複数条件を指定して計算をかけていたので、SUMIFSをSUMIFに変換する程度では、求めたい数値は出てきません。

Sampleとして下記表を使います。

ものすごく単純な表で恐縮なのですが、
A列:売上月  B列:部門 …とそれぞれ1行目に表記されている名称でセルに名前を付けていきます。
セル列に名前を付ける理由として、関数計算を「A**」などにしてしまうと、コピペのときに指定範囲がずれるからです。
下記表では商品個別に各々の仕入価格などが表示されています。


■Sample1
Sample1

 

次に、商品別ではなくカテゴリ別・商品別に把握するための表を同ファイル別シートに作成します。


■Sample2

Sample2

 

Sample2の画面ではSapmle1の画面で名前を付けている名称を利用してSUMIFS関数計算をしています。
例:1月 「葉菜・茎菜類」
当月仕入個数:SUMIFS(仕入個数,売上月,A3,カテゴリ,"葉菜・茎菜類")
当月仕入価格:SUMIFS(仕入価格,売上月,A3,カテゴリ,"葉菜・茎菜類")
当月販売価格:SUMIFS(売上金額,売上月,A3,カテゴリ,"葉菜・茎菜類")

 

上記Excel2007形式で作成されたものをCalcで開くと、第3回のときに記載したとおり「#MACRO?」のエラーメッセージが表示されます。
しかも!名前ボックスで指定した名称が引き継がれておりません。
関数に「名前」ボックスで指定した内容を使っているので、まずはodsファイルの名前設定から入ります。

 

ここでの問題点といえば、Excelのように「列」を指定し、そのまま「名前ボックス」に任意の名称をつけてもodsでは認知しないということ。

Odsの場合メニュー「挿入」から「名前」→「適用」を選択する必要があるみたいです。
かつ、1列目に適用する名称を入れておく必要があります。

これは、「適用」を表示したときに参照する名前を
1) 最上行
2) 左端列
3) 最下行
4) 右端列
の中から選択するからです。


これは、あくまでも「列」単位や「行」単位で名前を設定する方法なので、列の任意の範囲内に名前をつける場合は、Excelと同じ方法でできるので、その辺が多少Excelと違うところになります。
その理由から、Excelで列単位で名前指定してもCalcでは応用されない理由になっているようです。

それを踏まえて列に名前をつけ、次の操作に行ってみたいと思います。

■Sample3
Sample3

 

第3回のときに説明した順番でExcel2007関数をCalc関数にしたいのですが、ここで問題が発生します。
SUMIF関数は「複数条件」での設定ができないということです。
Sample2で抽出している条件の

当月仕入個数:SUMIFS(仕入個数,売上月,A3,カテゴリ,"葉菜・茎菜類")
を例にしていうと、
1) 売上月より該当月の物を指定
2) 1)で指定した内容のうちカテゴリ「葉菜・茎菜類」のみ抽出
3) 2)の結果、該当月の仕入れ個数を算出

 

となります。

 

SUMIFだと (1)か(2)のどちらかしか条件付できません。

なので、今回のような場合は全く別の関数が必要となるので、「「SUMPRODUCT」関数を利用します。

その場合、関数配列は下記となります。
SUMPRODUCT((売上月=A3)*(カテゴリ="葉菜・茎菜類")*仕入個数) 
 

少々わかりにくいかもしれないのですが、上記内容は
1) 売上月がA3のもの
2) 商品名が"葉菜・茎菜類"
3) 1)と2)の条件に当てはまる仕入個数を和算する
となります。

 

はっきりいって、ここまでしないとExcel2007形式で作成された表を利用することができないのなら、Calc・Excel間の互換性もいまいちだなと思います。
ほぼ、作りかえと一緒なので。
前回も掲載したのですが、本当に単純な関数しか互換性はないようです。

 

なので、ほぼ作り直し状態で、SUMIFS関数をSUMPRODUCT関数に変更してみます。

■Sample4
Sample4

すべてSUMPRODUCT関数に修正完了したところでファイルをいったんods形式で保存します。

と、何とかCalc形式でExcel2007と全く同じファイルを作成したところで、次回ods形式ファイルを「Microsoft Excel97/200/xp(xls)」形式にして保存し、その互換性をチェックしたいと思います。


 

 

この記事の執筆者

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

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

コメント

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

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

トラックバック

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

メンバー紹介

mhas

mhas

最近、清掃の方が顔を覚えてくれました・・・

谷田部 輝真

谷田部 輝真

初めまして。サイテックの代表をやっております谷田部と申します。 「ITを利用し、より豊かな、より幸せな世の中になっ...

291

291

皆さん、はじめまして。 突然ですが下記リンクのGoogleストリートビューで周辺を見回してみてください。 goog...