2013/08/26

Excelごときで…

エクセルで空白セルに対して数値計算の関数を通すと0扱いです。
例えば四捨五入したい場合、
=ROUND(E13,15)
これはE13のセルを15ケタで四捨五入(?)する命令なわけですが、E13のセルが空白の場合0になります。
でもほんとは、0なら0、空白セルなら空白セル、と出力して欲しい気がします(そうでもない?)。
そこで、
=IF(ISBLANK(E13),  "",  ROUND(E13,15))
とするとE13が空白なら空白、それ以外なら計算。

さらにE13が空白でなく文字列だった場合やエラー値だった場合、出力はエラーになるが、用途によってはエラーでも空白で出力してしまいたい、と思ったり思わなかったり。

これが案外難しくて、試行錯誤中。
=IF(OR(ISBLANK(E13) , ISERR(E13) , NOT(ISNUMBER(E13)), "", ROUND(E13,15)
とかなんとかだと思うけどこれを1セルに書込むと見辛いし、もう混乱して正しく動いてるのか意味不

ちょっと嵌ったのはROUND関数で13桁で四捨五入しても、標準だと表示桁数は変わらず10桁しかないってこと。何となく13桁で四捨五入したんだから13桁表示してるんじゃないかと勝手に思ってた。実際数えてみると10桁しかないのでセルの書式を変えて数値、小数点以下15桁表示、にした。これに気が付かないと「なんで表示は同じなのに比較演算すると違うって出るんだろ~」って何日も数値の羅列を凝視しながら考える羽目に…

0 件のコメント:

コメントを投稿