(Gスプレッドシート)「0以下は0」にする方法

 Googleスプレッドシートで0以下の数字を「0」と表示させる方法(値そのものは変えない)と、0以下の値を0に変換する方法について紹介します。

0以下の数字を「0」と表示する方法

 ここでは0以下の数字(数値)を「0」と表示させてみます。ただし見た目だけを変えるだけでセルに記録されている数字そのものは変わらないので注意してください。
 まずは対象とする数字(数値)が記録されている範囲(ここではB3:B7)を選択します。

 


 そのままメニューから「表示形式」→「数字」→「カスタム数値形式」と選択します。

 


 ダイアログが現れますので、ボックスに「0;"0"」と入力し、適用ボタンをクリックします。

 「;」の前にある「0」がプラスの数(及び0)に適用される書式で、これは数字をそのまま表示させることを意味します。
 「;」の後の「"0"」がマイナスの数に適用される書式で、単に「0」を表示させることを意味します。Excelだとここが「!0」でもいいのですがGoogleスプレッドシートではうまくいきません。
 なお、プラスの数字にカンマを入れる場合は「#,##0;"0"」としてください。



 適用ボタンをクリックすると表示が変わります。
 画像(B4セルを選択した状態)からわかるようにセルの値そのものは変化しておらず、見た目だけが変わります。

0以下の数字を0に変換する方法

 0以下の数字を0に変換した結果を得る方法です。関数を使います。
 次の画像ではC3セルに次の数式を入力してC7セルまでフィルコピーし、B列の数字のうち0以下のものを0に変換した結果を得ています。

 C3セル(下方にフィルコピー)

=MAX(B3,0)

 MAX関数を使い、B3セルの値と0のうち大きい方の値を取得しています。これにより0以下の数字はすべて0に変換されます。
 IF関数を使う方法も考えられますがこちらの方がやや簡単です。

0以下の数字を0とみなして計算する方法

 上記例のようにいったん0以下の数字を0にしてから計算すれば済みますが、途中を省略して結果だけ得る例です。
 次の画像ではD3セルに次の数式を入力し、B3:B7セルの数字のうち0以下のものを0とみなして合計した結果を得ています。

 D3セル

=SUM(ARRAYFORMULA(IF(B3:B7>0,B3:B7,0)))

 IF関数とARRAYFORMULA関数を組み合わせて0以下の数字を0に変換した配列を取得したうえで、SUM関数により合計しています。
 「=SUM(ARRAYFORMULA(MAX(B3:B7,0)))」でもよさそうに見えますが、このときMAX関数はB3:B7の5つの数字及び0(第2引数)の計6つの数字のうち最大のもの(1000)を取得するので、結果は「1000」になってしまいます。