クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【エクセルの練習】IF関数編 不具合は?

エクセルでよくつかわれる関数の1つがIF関数です。

「IF=もし」という意味で、特定の条件に応じて処理を変えることができます。テストで50点以上とったら「○」、それ以下は「x」と表示するなんてことができます。

ここではIF関数の使い方、分岐が複雑になった場合の対応などについてまとめていきます。

IF関数の練習

if

IF関数は、「もしもセルの数値が1以上だったら」とか「もしもセルに日本ハムという文字がはいっていたら」などの条件を設定して、それぞれに応じた処理を変更できるというものです。 

 

 

練習データ  

「リンク先を保存する」でダウンロードしましょう。

 エクセルファイル:

http://komatter.com/_EXCEL/ex-if.xlsx

またはCSVファイル:

http://komatter.com/_EXCEL/ex-if.csv

 

下記テーブルをコピーして、エクセルでA1に「名前」のところが来るようにペーストしましょう。 

名前 国語 算数
吉田 70 51
野村 45 49
万波 51 40
柿木 80 85
海老原 76 欠席

 

 

IF関数の練習1

国語の成績で70点未満は追試とします。

関数を使って追試の人を調べましょう。

以下のようになればOKです。

f:id:apicode:20190925104037p:plain




 「解答」

正解は

「E2」に「=IF(B2<70,"追試","")

「E3」に「=IF(B3<70,"追試","")

「E4」に「=IF(B4<70,"追試","")

「E5」に「=IF(B5<70,"追試","")

「E6」に「=IF(B6<70,"追試","")

と入ります。

 

 

IF関数の練習2

国語も算数も70点未満の場合に追試とする場合の関数を記述しましょう。

以下のようになればOKです。



 「解答」

正解は

「E2」に「=IF(B2>=70,"",IF(C2>=70,"","追試"))

「E3」に「=IF(B3>=70,"",IF(C3>=70,"","追試"))

「E4」に「=IF(B4>=70,"",IF(C4>=70,"","追試"))

「E5」に「=IF(B5>=70,"",IF(C5>=70,"","追試"))

「E6」に「=IF(B6>=70,"",IF(C6>=70,"","追試"))

と入ります。

 

IF文を2回使うのがポイントです。

 

 

IF関数の説明

IF関数

IF(条件 , 条件に合致したときの処理)」で、条件とその時に実行する処理をかきます。

 

ある条件で処理を行う

例えばあるセルに「=IF(A2="吉田輝星" ,"球が速い" )」と書きます。

するとA2のセルが「吉田輝星」であれば、「球が速い」と表示します。

f:id:apicode:20181126150526j:plain

 

この場合、条件に見合わない場合は「FALSE」と出てきてしまうのが難点です。

f:id:apicode:20181126152444j:plain

 

そこで条件に見合わない場合の処理の書き方も覚えましょう。

 

条件に合う時、合わないときで処理を分ける

また、条件に合わない場合の処理も書くことができます。

IF(条件, 条件に合致したときの処理,条件に合致しないときの処理)」で、条件とその時に実行する処理、条件に合わない場合の処理と記述していきます。

例えばあるセルに「=IF(A3="吉田輝星","球が速い","吉田選手ほど速くない")」と書きます。

 

これで野村選手は(いい選手なんですが)「吉田選手ほど速くはない」と表示させることができました。

f:id:apicode:20181126152705j:plain

 

ただし甲子園ではエースで登場した野村選手は内野手として指名されているので記述は変更したいところです。

 

複数の条件を記述する

IF条件をIF条件の中に入れて、複数の条件での処理を記述することができます。

例えばある人が吉田輝星でない場合で、投手であればxx、投手でない場合はxx」といった処理です。

 

以下では「=IF(A3="吉田輝星","球が速い",IF(C3="投手", "吉田選手ほど速くない", "野手です")」とし、IF文を2ついれた内容を実行したものです。

f:id:apicode:20181126153628j:plain

 

 

IFS関数

複数条件を3つ以上使うには、IFS関数を使いましょう。 

オフィス365版オフィス2016や、オフィス2019ではIFS関数が利用できます。

これは条件と結果をずらずらと書いていくことができるというものです。

 

IFS(条件1, 条件1の処理, 条件2, 条件2の処理 …)」です。

例えば点数によって評価を切り替える処理をしたい場合、「=IFS(B1>80,"よくできました",B1>40,"がんばったね",B1>10,"もっとがんばろう",B>=0,"今後に期待")」といった感じで条件と結果をつらつらっと書いていきます。

f:id:apicode:20181126154255j:plain

 

SUMIF関数

  • 機能:ある条件にあう数値だけ合算します。
  • 書き方:SUMIF(範囲, 検索条件, 合計範囲)

 

COUNTIF関数

  • 機能:ある条件にあう数値だけカウントします。
  • 書き方:COUNTIF(範囲, 検索条件)

 

IFERROR

  • 機能:エラーがある場合の処理を記述できます。
  • 書き方:IFERROR(値, エラーの場合の処理)

 

 

指定セルがブランクなら、他のセル値を表示

ブランク(空白)かどうかを判定します。

例えば「A1<>""」という条件はA1が空白でないことを表します。

A1が空白でなければA1を、空白ならB1を表示するには「=IF(A1<>"",A1,B1)」のように書きます。

 

 

IF関数の不具合

IF関数の処理が重い?

無駄にたくさんIF関数を使うと、それだけで動作が重くなるなどの影響が出ます。

 

IF関数を使う場合でも、セルに数値データがない場合はなにもしない、などの記述を先にさせると、処理をスキップさせやすくなります。

 

例えば「=IF(B7="","",B7*10)」とすれば、B7に数値がない場合は空欄のままです。データがある場合のみ掛け算を実行します。

 

 

カッコや引数の数を確認する

よくあるのは、IF文がきちんとかけていない場合や勘違いをしてしまう場合です。

IFにつづくカッコやコンマが抜けていないか、引数が多すぎたり少なすぎたりしないか今一度確認してみましょう。

 

文字のとじを確認する

引数で関数の勘違いや文字をカッコでとじない場合などにおきます。

例えばTODAY関数をTODAY()とかくべきところをTODAYとだけ書いてしまうとエラーになります。

=IF(A1<TODAY,"ok","no")

また、文字列としてクォーテーションで区切りを入れていない場合にもエラーになります。

 

参照先を確認する

参照先を間違ていないか確認してみましょう。

削除してしまったり、自分のセル番号をしてしてしまったりするとエラーになります。

 

計算内容を確認する

単純な足し算や掛け算の大小を見るだけなら比較的間違いを探しやすいと思います。

が、日付計算や文字が入ってくるとイメージしている結果とは違う値が算出される可能性があります。

 

エラーがあるか調べるには?

エラーがあるか調べる関数というものもあります。

IFERROR関数で「もしエラーの場合は」という処理を記述できます。

例えば「=IFERROR(1/0,"失敗しました")」の場合、1を0で割ることはできませんから条件はエラーとなっています。そのため、”失敗しました”という文字を表示します。

 

どこでエラーができているかわからない場合にこの関数をうまく使うと発見できるかもしれません。

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ