昨日の記事でExcelの関数の例を記載しましたが
たぶん見ずらいよ~って、皆さん思われたと思います。
普通のプログラムのソースの場合もそうですが、見やすく書くことは重要です。
長~く書いても結果は同じですが、後で修正しようとか何してたか
思い出すがのが大変ですから、料理の愛情のようにひと手間かけましょう。
良くあるのが、IF関数を入れ子(ネストと言います)にした数式ですね。
昨日の例題で解説しましょう。
B4のセルの値が、もし”新横浜~新富士”なら、\4,810です。
それ以外の場合
B4のセルの値が、もし”新横浜~名古屋”なら、\9,950です。
途中省略
B4のセルの値が、もし”新横浜~博多”なら、\22,010です。
それも違う場合は、無視で済ませよう。
=IF(B4="新横浜~新富士","\4,810",IF(B4="新横浜~名古屋","\9,950",IF(B4="新横浜~京都","\12,590",IF(B4="新横浜~新大阪","\13,430",IF(B4="新横浜~新神戸","\13,960",IF(B4="新横浜~博多","\22,010",""))))))
さて、この式実際には一行で書かれていますので見づらいですよね。
特に老人化した私達の目には。。。
★そこで、本日の課題の見やすくする方法の紹介です。
入れ子したIF文毎に改行してみましょう。
■ポイント
この改行方法は、普通の文の改行のようにEnterを押すと
単に数式の確定になるため意味がありません。
あくまでも数式もセル内に書かれた情報ですから
AltキーとEnterを同時に押してセル内改行と同じように行います。
2個目以降のIFの手前にカーソルを合わせて、AltキーとEnterを押すということです。
IF(B4="新横浜~新富士","\4,810",
IF(B4="新横浜~名古屋","\9,950",
IF(B4="新横浜~京都","\12,590",
IF(B4="新横浜~新大阪","\13,430",
IF(B4="新横浜~新神戸","\13,960",
IF(B4="新横浜~博多","\22,010","")
)
)
)
)
)
だいぶ、良くなったんじゃないですか。
改行したIF文毎に字下げ(インシデント)てみましょう。
■ポイント
字下げ(インシデント)は半角スペースで行います。
=IF(B4="新横浜~新富士","\4,810",
____IF(B4="新横浜~名古屋","\9,950",
________IF(B4="新横浜~京都","\12,590",
____________IF(B4="新横浜~新大阪","\13,430",
________________IF(B4="新横浜~新神戸","\13,960",
____________________IF(B4="新横浜~博多","\22,010","")
________________)
____________)
________)
____)
)
いかにもExcelに詳しい人の作業結果に思えるでしょう?
手間がかかっていますが結果は同じですけど。。。
こう書くことで、最後のIF文の偽(FALSE)の時の処理で
該当する文字列以外なら、無視というか何も入れない処理だよって
解りやすいでしょう。
■ポイント
EXCEL2003などのEXCEL2007以前のExcelは関数の入れ子は最大7つまでという制限があります。たぶん
このレベル(Lv2)で、私の派遣先のマネジャー(40代)クラスは理解できない人がおります。
安心して業務にExcelを使用しましょう。
当然、Excelで資料を作成して提出しても結果を電卓で見直している姿にはもののあわれを感じます。
ネスト出来る回数に制限があると言っているのに条件を10個も20個もあげてくるし
かなりのアホちゃうか? あんた脳みそ醗酵してるんですか? 否、腐敗かも。。。
うそうそ
何やってんだコイツ!、俺様の作成した資料に意見でもしようってのか!
くらいにしか思っていません。
何でコイツは入社試験に合格したんだろう?
当時の人事担当は見る目がおかしいとは常々思っておりますが。。。
なぜ、平社員じゃないんだとか。。。会社はコイツと心中する気かなとかね。
話が脱線しました。最近愚痴っぽくて。。ヾ(@^(∞)^@)ノ
隠し記事に気がついた人はコメント頂戴ね! この上の部分にある記事は事実である。そしてその派遣先は○本電○の子会社であり、簡単に言えばパソコンのシステムを設計したりするSEの会社だよ。
- Excel2007マスターバイブル/C&R研究所
- ¥2,835
- Amazon.co.jp
- 世界一わかりやすいExcel2007 中級編/ビバマンボ
- ¥1,890
- Amazon.co.jp