Excel
エクセルで空文字を数値の0にキャスト(計算対象に)する
結論から書くと、対象のセルをSUM関数で囲えば良い。
エクセルで無駄な「0」を表示させないようにIF関数でエスケープして空文字を表示させる処理をすることがよくある。
例えばB1セルに
=IF(A1="","",A1*2)
というIF関数を入れて、C1セルに
=B1+10
と入れると、A1セルが空の場合、C1セルに「#VALUE!」エラーが出てしまう。
そこで文字列を数値に変換するVALUE関数でB1セルを囲って
=VALUE(B1)+10
とするのだが、やっぱり「#VALUE!」になってしまう。
これはVALUE関数の対象が "0" や "123" などといった数値のみで構成された文字列だけを対象としているからで、空文字が数値に変換できないのだ。
どうすればいいかというと、SUM関数でB1セルを囲えば解決する。
=SUM(B1)+10
SUM関数は文字列を無視するので、この場合「計算対象無し」になり0が戻り値になる。
事実上「空文字→数値の0」のキャスト演算子として使えるわけだ。
|