エクセル・VBA

エクセルのif関数で「空白だったら計算しない」を実現する |動画解説付き

更新日:

エクセルでif関数を使い説明している女性

今回は、エクセルのIF関数で空白を使う、空白にしたいというやり方についてお話をしてみたいと思います。

↓↓↓分かりやすい動画解説は下記をクリック↓↓↓

if関数で「空白なら空白を返す」を設定できる

エクセルで作業をしているとき、「空白のセルが要素に含まれる数式の場合には、計算結果も空白にしたい(空白処理をしたい)」ということはありませんか?

条件にあった特定のセルを空白にするにはif関数を使うと便利です。

まずはif関数の基本文法を見てみましょう。

=if(論理式 , 値が真の場合の処理 , 値が偽の場合の処理)

if関数で空白を検知するためには、この「論理式」の部分に「空白」を設定すればよいのです。

以下で実例を示しながら詳しいやり方を説明します。

if関数で計算結果が0になるセルを空白にする

以下の表はあるお店の商品名・販売単価・販売個数を表にまとめたものです。

合計売上のD2には販売単価(B2)×販売個数(C2)の計算結果を表示しています。

その後D2をオートフィル機能でD10まで連続コピーしました。

販売単価と販売個数の合計を表した表

コピーされた数式は自動的に各行の商品単価×販売個数を計算するようになっていますが、数式に使われるセルが空白だった場合の計算結果は0になっています。

例えば図のD6には=B6*C6が入力されていますが、B6にもC6にも数字がないため、0の数字が表示されています。

商品名は後から増えていくので列の数に余裕を持たせたい。

商品名・商品単価・販売個数が入力されたら自動で合計額が計算されるようにしたい。

とはいえ、0の数字が続くのは見苦しい。

こんな時はif関数を使いましょう。

まず、連続コピーの元になるD2を選択し、数式タブから「論理」をクリック。表示された関数の中から「IF」を選びます。

数式タブから論理のif関数を用いている画像

IF関数のダイアログボックスが表示されたら、以下のように入力します。

if関数のダイアログボックスを表した画像

論理式に入力した「A2=””」は「A2が空白なら」という条件を表しています。ダブルクオーテーションの中に何も入力しないことで、空白を表現しているのです。

もしA2が空白なら「値が真の場合」の処理が行われますので、「値が真の場合」のボックスにも「“”」を入力します。

これで、「A2(商品名)が空白だったら空白を返す」という式ができました。

次にA2(商品名)が空白以外の場合は商品単価×売上個数を計算して表示したいので、「値が偽の場合」にB2*C2を入力します。

今回A2は空白ではありませんから「値が偽の場合」の処理が実行され、D2のセルには20000が返ります。

※ここまではIF関数のダイアログボックスを使って説明しましたが、IF関数の文法に従って、

=IF(A2="","",B2*C2)

とD2のセルに直接入力しても構いません。

D2に数式が入力されたことを確認したら、オートフィル機能でD10行まで連続コピーします。IF関数で入力した式も連続コピーすることで参照セルを順に切り替えていきますので、

D3には=IF(A3="","",B3*C3)

D4には=IF(A4="","",B4*C4)

D6には=IF(A6="","",B6*C6)

が入力されているはずです。

D3,D4ではD2同様にIF関数の論理式が偽となる(商品名が入力されている)ので商品単価と販売個数の合計値が返っています。

一方でD6の場合はA6に商品名が入力されていないため、IF関数の論理式は真となります。結果、D6を空白にすることができます。

if関数を用いて空白にしたときの画像

図ではD6~D10までにはなんの数式も入力されていないように見えますが、実際はIF関数が空白処理をしています。

もし商品名・商品単価・販売個数が入力されれば売上合計が自動的に計算されD行に表示されます。

IF関数で空白によるエラーを回避する

IF関数で空白を検知することで、関数のエラー表示を防ぐこともできます。

例えば、以下の表では販売総数÷仕入れ総数から売上率を算出しています。

仕入れ総数を後から入力したい場合は空白にしています。

ところがエクセルでは割る数のセルに何も入力されていない場合は0で割っていると判断されるため、エラー表示が出てしまいます。

エラー表示がでている画像

こんな時もIF関数を使えばエラーを表示させずに済みます。

D2のセルに

=IF(C2="","",B2/C2)

と入力してD行全体に連続コピーします。

すると、仕入れ総数(C行)に何も入力されていない時は、空白を入力してくれます。

以下のようなすっきりした見た目の表になりました。

エラーを修正したときの画像

複数の「空白だったら」を検知して値を入力する

IF関数を使えば複数の空白を検知することもできます。以下の表はある会議の出欠表です。

4月1日、5月2日どちらかの会議に出席する人にはメール通知「要」、どちらの日程も空白の人にはメール通知を「不要」としたいとします。

会議の出欠表を表した画像

こんな時はD2の欄に以下のように入力して、Dの列に連続コピーしましょう。

関数の論理式を表した画像

まず、最初の「B2=""」の部分で4月1日が欠席かどうかを判断しています。出席、つまりセルが空白でなかった場合、「値が偽の場合」である「要」が表示されます。

次に、4月1日の行が空白だったとき、「値が真の場合」でもう一度IF関数を使い条件を判定します。

「値が真の場合」のIF関数の中身はこうです。C2つまり5月2日が空白だった場合、「不要」と表示します。もし、C2が空白でなかった場合は、「要」と表示します。

2つのIF関数を組み合わせると

4月1日と5月2日両方が空白だったとき、「不要」

それ以外の場合は「要」

と表示することができます。

まとめ

エクセルのIF関数を使えば意図しない計算結果やエラーを防ぐことができます。

IF関数を上手に活用してきれいな見た目の表をつくりましょう。

 

全国にあるパソコン教室パレハのサービス一覧

「オンライン」自宅で学べるパソコン教室

オンラインレッスン

オンラインレッスンの詳細はこちら

苦手な方専門パソコン教室

パソコン教室パレハの詳細はこちら

パソコン教室の運営をしませんか?

フランチャイズ

パソコン教室パレハFCの詳細はこちら

「在宅」で自由な働き方しませんか?

在宅ワーク

クラブ・パレハ在宅ワーク詳細はこちら

-エクセル・VBA
-, , , , , ,

メールはこちら

LINEはこちら

お電話はこちら

Copyright© パソコン教室パレハ , 2020 All Rights Reserved.