いろいろな関数 2−2

条件判断と処理の分岐をする関数

主な内容
1.IF 関数の構成
2.1 つの値を基準判断にする
3.数式の計算演算子
4.複数の値を基準に判断する
5.空白の場合の処理
6.【関数の使用法】について

IF 関数

書式:「 IF(論理式,真の場合,偽の場合) 」

言葉を替えると:「条件を満たしているか否かを判定し、夫々[処理1]、[処理2] を実行します。
(IF 関数を使用して値または数式が条件を満たしているかどうかをテストできます。)

IF 関数の構成
種 別 : 論理関数
書 式 : IF(論理式,真の場合,偽の場合)
機 能 : 「論理式の条件を満たしている」場合は「真の場合」欄に記述された内容を実行し、
      「論理式の条件を満たしていない」場合は「偽の場合」欄に記述された内容を実行する。
論理式:(セルや数値の関係を表す式のことで、「条件式」のことです。)
真または偽のどちらかに評価できる値または式を指定します。たとえば、A10=100 は論理式です。
この論理式は、セル A10 の値が 100 の場合に TRUE となり、それ以外の場合に FALSE となります。
引数には、どの比較演算子でも使用できます。
真の場合:
論理式が TRUE の場合に返す値を指定します。
たとえば、この引数が "予算内" という文字列の場合、論理式が TRUE となったときに "予算内" という文字列が表示されます。
論理式が TRUE で 真の場合 が空白のときは、ゼロが返されます。
"TRUE" という語を表示するには、引数に論理値 TRUE を指定します。真の場合 に、別の数式を指定することもできます。
偽の場合:
論理式が FALSE の場合に返す値を指定します。
たとえば、この引数が "予算外" という文字列の場合、論理式が FALSE となったときに "予算外" という文字列が表示されます。
論理式が FALSE で 偽の場合 を省略 (真の場合 の後のカンマ以降を省略) すると、論理値 FALSE が返されます。
論理式が FALSE で 偽の場合 が空白 (真の場合 の後にカンマと閉じるかっこが続く) であると、ゼロが返されます。偽の場合 に、別の数式を指定することもできます。

「真」とか「偽」という表現は分りにくいですが、端的に言うと「Yes」か?「No」か?の回答を求め、その処理を指示しているものと思ってください。
(論理式を満たしている(Yes)の時に行わせたい処理を「真の場合」に書き、論理式を満たしていない(No)の場合に行わせたい処理を「偽の場合」に書くということです。)

1 つの値を基準判断にする

或る一定の条件(目標値・基準値)に照らし合わせて「合格」か「不合格」、「採用」か「不採用」、「真(TRUE)」か「偽(FALSE)」を見分けます。

IF 関数の記入内容
解説

用語:引数とは、「計算を実行するときに使う値や、計算方法の詳細などを決める値」のことをいいます。
用語:論理式とは、「計算を実行するときに使う値」は、関数の種類や内容によって、数値、文字列、日付、時刻、セル参照、名前などが指定できます。
また、関数の引数として関数を入れ子にして(ネスト関数と言う)使用することもできます。

  1. 最初の[=]は数学の等号とは一寸意味が異なり、イコール以下に書かれた計算式で、求められた値を選択された「セル(入れ物)」に入れますよ。ということです。
  2. 2番目の[IF]は「 IF 関数を使用して演算する」ことを表しています。 これも、数学で使う関数とは意味を異にして「ある特殊な計算をさせるための命令」と解釈すると良いでしょう。
  3. ( )内には引数と呼ばれるものを記述します。(関数全般に共通ですが、その個数、性格&名称はまちまちです。)
    IF 関数には引数が3個あります。1つの引数ごとに[,](カンマ)で区切りを入れます。」
  4. 第1カンマ内は引数1で「論理式」です。ここでは、下記比較演算子を使って、左側と右側を比較します。ですから、IF 関数式を見たときに、「1」と「2」を確認した後、ここで最も注目することは、比較演算子(下記赤字表示)で、そこから左右を見比べると数式の意味が汲み取れ易くなると思います。
  5. 引数2(第2カンマ内)は「真の場合」と難しい用語を使っていますが、論理式が成立した場合の処理を指定します。
    簡単に言うと、条件に適った場合に返す(回答する)文字列等の値、数値、または、セル参照の形で記入します。日本字等文字列の場合には「" "」とダブルコーテイションで囲みます。
  6. 引数3(第2カンマ以降)は「偽の場合」といいます。論理式が成立しない場合の処理を指定します。
    簡単に言うと、条件を満たさないで「偽の場合」と判断された場合に返す(回答する)値等を記入します。日本字等文字列の場合には「" "」とダブルクォーテイションで囲みます。
  7. 「真の場合」や「偽の場合」の引数に数式(四則演算)を指定することもできます。 (例題2参照
  8. 「偽の場合」(FALSEの場合)には、記入を省略することができます。

条件式を構成する記号(演算子と呼びます。)として下記があります。(英数字・記号等は全て半角文字です。)

数式の計算演算子

演算子は、数式の要素に対して実行する計算の種類を指定します。
演算子には、算術演算子、比較演算子、文字列演算子、参照演算子の 4 種類があります。

算術演算子 : 加算、減算、乗算、除算、べき算などの基本的な計算を実行し、数値を組み合わせて、計算結果として数値を返します。
算術演算子        内容      例
+ (プラス記号)      加算      3+3
- (マイナス記号)     減算 負の数   3-1 -1
* (アスタリスク)     乗算      3*3
/ (スラッシュ)      除算      3/3
% (パーセント記号)    パーセンテージ 20%
^ (キャレット)      べき算      3^2 (3*3 と同じ)

比較演算子 : 2 つの値を比較し、結果として TRUE または FALSE の論理値を返します。
比較演算子          内容         例
=(等号)       左辺と右辺が等しい    A1=B1
> (〜より大きい)    左辺が右辺よりも大きい  A1>B1
< (〜より小さい)    左辺が右辺よりも小さい  A1<B1
>= (〜以上)       左辺が右辺以上である   A1>=B1
<= (〜以下)      左辺が右辺以下である   A1<=B1
<>(不等号)      左辺と右辺が等しくない  A1<>B1

文字列演算子 : "&" は、複数の文字列を組み合わせて、1 つの文字列の値に結合します。
文字列演算子     内容  
& (アンパサンド)  2 つの文字列を結合、または連結して、1 つの連続する文字列の値を作成します。
          例  "North " & "wind " は "Northwind " となります。

参照演算子 : 次に挙げる参照演算子は、計算のためにセル範囲を結合します。
参照演算子     内容  
: (コロン)    セル範囲の参照演算子です。2 つのセル参照を含め、その間に含まれるすべてのセルによって構成される 1 つの参照を作成します。
         例  B5:B15
, (カンマ)    複数選択の参照演算子です。複数の参照を 1 つの参照に結合します。
         例  SUM(B5:B15,D5:D15)


IF 関数を使って見ましょう

最も基本的な使用法です。
例題1.は、某OB会の年会費表の作成で、男性会員2000円、女性会員1500円と記入しなさい。です。

OB会氏名		性別	年齢(歳)		会費(円)	
山田太郎		男性	80		2000	=IF(B2="男性",$A$12,$B$12)
川田花子		女性	75		1500			
草田一郎		男性	64		2000	B2="男性",	論理式	
木田一美		女性	50		1500	$A$12,		セル参照	
上田春子		女性	68		1500	$B$12		セル参照	
中田夏男		男性	63		2000			
下田秋子		女性	65		1500
						
OB会年会費
男性	女性
2000	1500

上の表で
1.「B2="男性"」は論理式(=条件式)です。比較演算子の[=]の両隣を含めたものが論理式です。 その次は[,]カンマで区切られます。
2.「男性」のような文字列は["]ダブルクォーティションで囲んで、始めて「値」となるのです。
3.「$A$12」と「$B$12」は基準表をセル参照で記入しましたが、それぞれ、2000、1500と記入しても一向差し支えありません。基準表が別枠に用意してある場合の例です。
セルアドレスを絶対参照にしているのは、[D2]に入力した数式を[D3],[D4]等にコピーしても参照先[A12]や[B12]が、変化しない(ずれない)ようにするためです。 4.[D2]セルに[E2]セルのように入力を終えたら、オートフィル機能で下にドラッグ(コピー)して完成します。

例題2

OB会氏名		性別	年齢(歳)		会費(円)	
山田太郎		男性	80		2000	→	
川田花子		女性	75		1600	 |	
草田一郎		男性	64		2000	 |		
木田一美		女性	50		1600	 |		
上田春子		女性	68		1600	 |		
中田夏男		男性	63		2000	 |		
下田秋子		女性	65		1600	 |		
				 	 	 ↓		
OB会年会費		=IF(B2="男性",$A$12,$A$12*(1-$B$12))	
男性	女性割引	
2000	20%			$A$12*(1-$B$12)	は四則演算です。
MS ヘルプに有る使用例
1)予算シートのセル A10 には、現在の予算を計算する式が入力されています。次の例では、A10 の式の結果が 100 以下の場合は "予算内" と表示され、それ以外の場合は "予算外" と表示されます。

IF(A10<=100,"予算内","予算外")

類似検証
90 予算内 =IF(A1<=100,"予算内","予算外") 105 予算外
2)セル A10 に 100 という値が入力されている場合、論理式 が TRUE となり、セル範囲 B5:B15 の合計が計算されます。これ以外の場合は 論理式 が FALSE となり、IF 関数が記述されているセルには、 空白文字列 ("") が返されます。

IF(A10=100,SUM(B5:B15),"")

類似検証
100 10 30 =IF(A1=100,SUM(B1:B2),"") 20
3)次のワークシートは、1 月から 3 月までの実際の支出と予想支出を記録したワークシートがあります。 セル範囲 B2:B4 には、実際の支出 1500000、500000、500000 が入力されていて、セル範囲 C2:C4 には、 予想支出 900000、900000、925000 が入力されています。
次のように IF 関数を利用すると、それぞれの月で予算が超過していないかどうかチェックして、 その結果によって異なるメッセージを表示することができます。

IF(B2>C2,"予算超過","OK") = "予算超過"
IF(B3>C3,"予算超過","OK") = "OK"

検証
実際支出 予想支出 4月 1500000 800000 予算超過 =IF(B2>C2,"予算超過","OK") 5月 500000 900000 OK =IF(B3>C3,"予算超過","OK") 6月 500000 925000 OK
4)次の例では、"平均点" という名前で参照される点数に対して、A から E までの評価を与える場合を考えます。
"平均点" の値 与える評価
90点以上 A
80点以上90点未満 B
70点以上80点未満 C
60点以上70点未満 D
60点未満 F
このような処理を行うには、次のように IF 関数をネストさせて実行します。

IF(平均点>89,"A",IF(平均点>79,"B",IF(平均点>69,"C",IF(平均点>59,"D","F"))))

この例で、2 番目の IF 関数は最初の IF 関数の 偽の場合 になっており、3 番目の IF 関数は 2 番目の IF 関数の 偽の場合 になっています。たとえば、最初の 論理式 (平均点 > 89) が TRUE のとき評価は "A" となり、FALSE のとき 2 番目の IF 関数が計算されます。
検証
平均点 ランク 90 A =IF(A1>89,"A",IF(A1>79,"B",IF(A1>69,"C",IF(A1>59,"D","F")))) 85 B 74 C 63 D 59 F ランク基準 なお、ランク基準は、セル参照には使ってありません。 90以上 A 80〜89 B 70〜79 C 60〜69 D 60未満 F
例題と手順説明

今回は、ボーリングのグループ予選として、表中の7名が争い、アベレージの数値 160 を基準に、160以上の場合は”お目出とう”を、160未満の場合は”残念でした”を表示させます。

氏名	1回戦	2回戦	3回戦	アベレージ	ブロック代表
山田太郎	173	165	155	164		お目出とう
川田花子	126	158	170	151		残念でした
草田一郎	135	155	175	155		残念でした
木田一美	180	150	138	156		残念でした
上田春子	140	150	160	150		残念でした
中田夏男	164	168	162	165		お目出とう
下田秋子	151	166	186	168		お目出とう
手順
  1. 「ブロック代表」下の[F2]セルをクリック
  2. 「fx」ボタンをクリック
  3. 「関数の分類(C)で「論理」を選択」
  4. 「関数名(N)」で「IF」を選択
  5. [OK]ボタン
    すると、「数式パレット」が現れます。、数式バーとセルには既に”=IF() ”と記入状態です。
    パレットを適当な場所にドラッグ移動します。
  6. 「論理式」記入欄に[160<=]と記入し、今度はマウスで左隣の[F2]をクリックします。
    記入欄に追加記入されます。


  7. 「真の場合」記入欄では「何でも良いから適当な文字を記入します。例えば「お目出とう」としました。文字列ですので自動的に「" "」で囲まれました、
  8. 「偽の場合」記入欄も同様に「残念でした」と記入しました。(未記入でも構いません。「真」でないので「FALSE」と表示される筈です。)
  9. [OK]ボタン
  10. {Enter}キーです。
  11. オートフィル機能で[F2]セルから{F8}セルまでドラッグして完了です。

上では、数式を「 =IF(160<=F2,"お目出とう","残念でした") 」と書きましたが、
論理式の順序を入れ替えても意味が同じなら差し支えありません。「 =IF(F2>=160,"お目出とう","残念でした") 」のようにです。

また、[G1]セルに「選考基準」[G2]セルに[160]と記入してある場合ですが、次の式で出せます。  「 =IF($G$2<=E2,"合格","不合格") 」 [160]と入力せずに[G2]セル参照で入力します。次に「<=」と記入して[E2]のセルを参照で入力します。

ここで注意することは、[G2]を[$G$2]と絶対参照で記入することです。
そうしないと、オートフィル機能でコピーしたとき「参照先」も同時に移動しますので正解が返されません。

[IF]関数の書式はIF(論理式,真の場合,偽の場合)でした。
( )内は [引数1],[引数2],[引数3] に区分されています。
[引数3]に更に「条件」を付けて見ました。

それでは、「不合格者」達は「スコアが何点不足していたでしょうか?
 [F2]を回答先に指定「 =IF(E2>=160,"お目出とう",E2-160) 」
と入力、完了後オートフィルで[F2]セルから{F8}セルまでドラッグします。



複数の値を基準に判断する

複数の値を基準にし条件判断をおこなうには、IF 関数を組み合わせます。

例題です。(MS ヘルプ例題 4)と同じです。)

上表を拡張し[引数3]に[IF関数]を入れ子(ネストという)にします。それを、次々に3回繰り返します。

スコア表の[G1]の「選考基準」を「4ランク」に区分します。(基準値[160]を消去してください。)
[160以上]をAランク、[155以上〜159.9]をBランク、[150.1〜154.9]をCランク、[150=&以下]をDランクに区分します。

書式は
=IF(160<=E2,"Aランク",IF(155<=E2,"Bランク",IF(150<E2,"Cランク",IF(150>=E2,"Dランク",""))))
または、「 =IF(160<=E2,"Aランク",IF(155<=E2,"Bランク",IF(150<E2,"Cランク","Dランク"))) 」

下図」のとおり振り分けられました。

空白の場合の処理

(EXCELヘルプより)
セルが空白の場合の処理を加える場合も、複数の値を基準とする場合と同様に IF 関数を組み合わせます。
次の例は、セルが空白の場合は "再試験" を表示し、80 以上の場合は "A" を、 80 未満の場合 "B" を表示します。

  A1: 得点    B1: 評価
  A2: 95      B2: =IF(A2="","再試験",IF(A2>=80,"A","B"))   (結果 : A)
  A3:         B3: =IF(A2="","再試験",IF(A2>=80,"A","B"))   (結果 : 再試験)
  A4: 72      B4: =IF(A2="","再試験",IF(A2>=80,"A","B"))   (結果 : B)

セルが空白の場合の判断は、以下の数式のように ISBLANK 関数を使用することもできます。
どちらの数式を使用しても同じ結果となります。

=IF(ISBLANK(A2),"再試験",IF(A2>=80,"A","B"))

0 表示が目障りなので、表示させなくする
金額欄小計{E3}に「数式 =C3*D3 」を入力し、その合計を求めた場合です。
御見積書  (利根川園果物直販店)  				
品名		規格		単価	数量	金額
鳴門金時	1箱		3300	 5	16500
びわ		15個入り	1500	 5	 7500
ハウススイカ	1個(Mサイズ)	1900	10	19000
静岡メロン	1個		2900	10	29000
						  0
						  0
合計						72000
回避法

品目等の空欄は書類の上で良く見かけます。そうして、下段で合計額が表示されるようです。
途中の「0」表示を無くすには、背景色と同色にしてもできますが、IF 関数の使用で行います。

数式は 「 =IF(A3="","",C3*D3) 」です。

解説

  1. E3を選択します。
  2. [fx]ボタンをクリックします。
  3. 関数貼り付けボックスで[IF]を選択します。
    IF 数式パレットが表示されます。
  4. 論理式記入欄にカーソルの点滅を確認して、右端の斜め矢印ボタンをクリックして、パレット折り畳みます。
  5. セル[A3]を選択し、「 ="" 」 (=空欄の意味です。)と記入します。
    細長く折り畳まれたパレットの右端のボタンをクリックします。元のパレットに戻ります。
  6. [真の場合]の記入欄にカーソルを移します。
  7. 真の場合には「 "" 」と空欄にすることを指定します。
  8. 偽の場合の記入欄にカーソルを移します。
  9. 「 C3*D3 」と記入します。(勿論、パレットを折り畳んで、[C3]をセル参照で選択し, パレットを折り畳みを戻したり、畳んだりして[D3]セルを選択しても構いません。間に[*]記号を入れます。)
  10. OKボタンを押します。
  11. [E3]セルをオートフィル機能で、下にドラッグして完成します。
  12. なお、合計は、別途Σで求められます。
		御見積書  (利根川園果物直販店)  				
品名		規格		単価	数量	金額
鳴門金時	1箱		3300	 5	16500
びわ		15個入り	1500	 5	 7500
ハウススイカ	1個(Mサイズ)	1900	10	19000
静岡メロン	1個		2900	10	29000
				
				
合計						72000

ここでの、「みそ」は数値に無関係とも思える「品目欄」を利用して、数値[0]をコントロールしたことにあります。
何故なら、品目欄に何も書いて無ければ、当然「単価」「数量」欄も未記入の状態になっている筈だからです。

関数入力の基本1〜6(前ページ、本ページ)までを整理

始めに「関数の図式」をご覧ください。

1.「=」等号
関数の計算式の先頭には必ず入力します。
2.「関数名」は半角英数で入力します。
3.「引数1,2,・・・」 は「計算を実行するときに使う値や、計算方法の詳細などを決める値」のことを言います。

4.「,」カンマは引数と引数の間に入れ、引数を区分します。
5.「()」括弧で引数の両端を挟み、引数入力の開始と終了を表しています。

改めて、【関数とは】

前ページの>関数入力の基本1〜3では[AVERAGE]、[MAX]、[RANK]を主体に学習し、[MIN]、[LARGE]、[SMALL]について少し触れました。
当ページでは[COUNT]、[COUNTA]、[COUNTBLANK] 関数、そうして、利用頻度No.1〜2とも言える[SUM]関数と[IF関数(ほんの1〜2例ですが)]について学習しました。
これ等から感じたことは「複雑な計算を簡単に行うために、あらかじめ用意されたプログラム(仕掛け)」のようです。しかも、数値回答だけでなく、[IF関数]に有っては適切な文字列で処理してくれます。
Excelの使用に当たって、適切な関数で処理をすると時間の大幅な短縮が見込まれるようです。関数の種類も一般操作で使う「ワークシート関数」と呼ばれるものが、300程度用意されていますので「何でも関数処理」てなことになりかねません。できるだけ多くの関数に挑戦したいと思っています。

【関数の使用法】について

[fx]ボタンを使用して「戻り値(回答)」を求める方法
  1. 「戻り値(回答)」を求めたい場所としての「セル」を選択します。
  2. [fx]ボタンを押します。
  3. 「関数貼り付け」ダイアログが現れます、
  4. 使用する関数を選択して、[OK]ボタンを押します。
    すると、数式パレットが現れます。
  5. [数値1]記入欄に「セル参照」で記入します。
    (イ)「選択された関数」に引き渡す「引数」が1度で済んだ場合には、数値2の記入は不要です。
    (ロ)「引数」が2個3個とある場合「記入欄」が自動的に増えていきますので、必要なだけ記入します。
  6. 記入が済んだら[OK]ボタンを押します。
  7. [Enter]キーで確定します。
    [fx]ボタンを使用した場合で、ネスト(=入れ子)を伴わない場合は全てこのパターンになります。

【関数の数式】とその傾向をみる。(既に学習した範囲で)

結論は上の例でも分るように「取り扱う関数」によって、引数の内容が異なります。
数式パレットには、計算式に応じた「内容」の記入欄が表示され、その数もまちまちです。

【引数】の形態

<参考>
<その他の論理式で良く使われるものに次があります。
その条件を複数設定して全ての条件を満たしいるか(AND)
複数の条件のうち、一つでも満たしているものがあるか(OR)
条件と等しくないか(NOT)
などがあり、IF関数に組み込まれて使われることが多く、複雑な条件分岐を可能にしています。>

続きます。

トップへ戻る 
  いろいろな関数目次へ戻る  いろいろな関数2へ戻る  いろいろな関数3へ進む 

inserted by FC2 system