【連載】Twitterまとめ - 第2回 サービス企画の苦しみ編(5月3週)
2010年05月27日
サイテック株式会社で、根っからの技術者である社長や、大手IT企業から転職してきた仲間たちと議論しながら、社会をもっと豊かに、幸せにするアプリケーションを作ってみませんか?
この会社の特徴を知る
など 8 記事
など 17 記事
など 66 記事
引き続き、前回の関数に関する話題です。
前回、Excel形式ファイルをCalc形式ファイルに変換したときに、Excel2007関数からの新関数によりエラー表示また、関数指定順相違によるエラーについて若干お話をしました。
今回もl前回に引き続き関数関係の話題です。
まずは、同ファイル内別シート間での関数計算によるCalc化の問題点。
もちろん、今回も前回同様「SUMIFS」関数を利用していたのですが、今回は前回より複数条件を指定して計算をかけていたので、SUMIFSをSUMIFに変換する程度では、求めたい数値は出てきません。
Sampleとして下記表を使います。
ものすごく単純な表で恐縮なのですが、
A列:売上月 B列:部門 …とそれぞれ1行目に表記されている名称でセルに名前を付けていきます。
セル列に名前を付ける理由として、関数計算を「A**」などにしてしまうと、コピペのときに指定範囲がずれるからです。
下記表では商品個別に各々の仕入価格などが表示されています。
次に、商品別ではなくカテゴリ別・商品別に把握するための表を同ファイル別シートに作成します。
■Sample1
■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
第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
すべてSUMPRODUCT関数に修正完了したところでファイルをいったんods形式で保存します。
と、何とかCalc形式でExcel2007と全く同じファイルを作成したところで、次回ods形式ファイルを「Microsoft Excel97/200/xp(xls)」形式にして保存し、その互換性をチェックしたいと思います。
トラックバックはありません
メンバー紹介
2010年05月27日
2010年05月18日
2010年04月26日
2010年04月19日
2010年03月10日
2010年03月10日
2010年02月25日
2010年01月22日
2009年12月24日
2009年12月21日
コメント