《連載第4弾》 見積書を作りながら一工夫してみよう
第2回 あまりにも長い式には、ワークシートを広く使うことを考えよう
[F24]=IF(C24<>””,
IF(VLOOKUP($C$21,$C$3:$E$6,3,FALSE)="A",VLOOKUP(C24,$C$12:$J$15,5,FALSE),
IF(VLOOKUP($C$21,$C$3:$E$6,3,FALSE)="B",VLOOKUP(C24,$C$12:$J$15,6,FALSE),
IF(VLOOKUP($C$21,$C$3:$E$6,3,FALSE)="C",VLOOKUP(C24,$C$12:$J$15,6,FALSE),
VLOOKUP (C24,$C$12:$J$15,7,FALSE)))),0)
上は、前回の数式です。誰でもが、これではあんまりだ!と思われたことでしょう。
数式を短くすることは、表自体の間違いを起こしにくくする。誰にでも、わかり易くする。あとからの修正も容易になる。などなど、たくさんメリットが出てきます。
そのためにも、まず第一歩として、せっかく大きなワークシートを有効に使うことを考えましょう。
【図1】では、前回のワークシートに、[L21]得意先ランク、[L24]ランク別単価列という項目を追加してみました。

第一ステップ:得意先ランクをあらかじめ計算しておこう。
[L21] =VLOOKUP(C21,$C$3:$E$6,3,FALSE) ・・・・ 得意先コードが入力されると、自動的にランクを取得。
こうすることで、
[F24]=IF(C24<>"",IF($L$21="A",VLOOKUP(C24,$C$12:$J$15,5,FALSE),
IF($L$21="B",VLOOKUP(C24,$C$12:$J$15,6,FALSE),
IF($L$21="C",VLOOKUP(C24,$C$12:$J$15,6,FALSE),
VLOOKUP (C24,$C$12:$J$15,7,FALSE)))),0)
ちなみに、冒頭の数式に比べると、文字数で、80文字ほど少なくすることができました。
でも、まだまだ長いですね。そこで、
単価の列も、持ってきてしまいましょう。
[L24]=IF(L21="A",5,IF(L21="B",6,IF(L21="C",7,8)))
[L21]の内容によって、VLOOKUP関数用に、該当するランクが、商品リストのコードから何列目かを、あらかじめつかんでしまおうという作戦です。
こうしておくと、
[F24] =IF(C24<>"",VLOOKUP(C24,$C$12:$J$15,$L$24,FALSE),0)
いかがなものでしょう。これならば、A,B,C,Dに Sランクが加わってもなんとかなりそうという気になってもらえるでしょうか。
実際に見積書を印刷するときは、[ファイル]-[ページ設定]-[シート]タブ の印刷範囲の指定を行なえば、不要な部分は表に出さずに済みます。
ところで、単価、金額欄に数式が入っているために、「0」が表示されるのがうるさいという方のために。
方法1:
[ツールメニュー]-[オプション]-[表示タブ]・・・「ゼロ表示」のチェックをはずす。
こうすることで、ワークシート全体で、ゼロの値が非表示になります。
方法2:
全体でなく、特定の場所だけ「0」非表示にしたいときは、[書式メニュー]-[セル]-[表示形式タブ]-[ユーザー定義]で、種類を #,### とすれば、「0」非表示を実現できます。
通常、数値の場合は、 #,##0 の書式になっています。

次回は、これをもっと短くしてみたいと思います。・・・・(?)
経営コンサルタント 谷田貝 敏紀
[2005年6月9日 掲載]
ジャーナル最新のテーマ
お客様の声をお聞かせください

富士通ジャーナルに掲載している記事やコンテンツについてのご意見・ご感想を、ぜひお寄せください。
お寄せいただいたご意見・ご感想については、富士通からの回答をお約束するものではありません。ご了承ください。
なお、富士通からのご回答を必要とするお問い合わせについては、
富士通ジャーナルに関するお問い合わせをご利用ください。





