困ったー

困ったことを調べたブログ

オリンピック特集👉👉👉 😊チケット申し込みは5/28まで。

10連休でお金が無くなったところへ、この攻撃は卑怯!👉👉👉 😊エピックストアで、 WorldWarZ 3880->2330円、サティスファクトリー 3380->2380円。 😊マイクロソフトストアで、 Minecraft Windows 10 スターター コレクション 3500->2350円。 😊任天堂ストアで、 2本でお得 ニンテンドー 9980円。マリオメーカー2にも使えるよ。

【エクセル2016・2019】IFなどの分岐する関数のまとめ 複数条件3つ以上は?エラー?

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

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

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

IF関数の使い方

Crazy Swimming Water Girl

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

 

書き方その1

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

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

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

f:id:apicode:20181126150526j:plain

 

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

f:id:apicode:20181126152444j:plain

 

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

 

書き方その2

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

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

 

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

f:id:apicode:20181126152705j:plain

 

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

 

複数の条件を記述する

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

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

 

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

f:id:apicode:20181126153628j:plain

 

 

複数条件を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

 

 

VBAを使う

エクセルのセル内に関数を書くのは限度があります。

むしろ、VisualBasicを使ったマクロを書いたほうが見やすい・わかりやすいプログラムをかけると思います。

 

例えば2行目から9行目でそれぞれ2列目のセルの数値をもとに3列目のセルに文字を書き込むプログラムを作ります。

「If」や「Elseif」を使った分岐を複数記述することができます。

Sub marketprice_ボタン1_2_Click()
 For i = 2 To 9
  If Cells(i, 2).Value < 10 Then
   Cells(i, 3).Value = "相当すごい"
  ElseIf Cells(i, 2).Value < 20 Then
   Cells(i, 3).Value = "かなりすごい"
  ElseIf Cells(i, 2).Value < 50 Then
   Cells(i, 3).Value = "そこそこすごい"
  Else:
   Cells(i, 3).Value = "すごい"
  End If
 Next i
End Sub

再生ボタンで実行すると、ちゃんと数値に応じた文字を隣のセルに書き込むことができました。

f:id:apicode:20181126145936j:plain

 

 

IF関数の不具合

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

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

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

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

 

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

 

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