スポンサーリンク/Sponsored Link

【MOS対策のヒント】IF関数とAND/OR。分からなくなったら「分解」してみよう!

IF関数を分解してみる
Excel(エクセル)MOS資格対策
スポンサーリンク/Sponsored Link

教室のMOS対策講座の中で、生徒さんにご紹介した内容から掲載している【MOS対策のヒント】。

今回は、「IF関数と、AND/OR」をとりあげます。(MOS2013以降は、エキスパート資格の範囲に入っています。)

スポンサーリンク/Sponsored Link

IF, AND, OR……とにかくまったく理解できない……

IF関数、そしてAND、ORなどの「論理演算」関数は、「とにかくまったく分からない」「理解できない」という声がよく上がる項目です。

  • 変な記号が出てくる。(>,<,=)
  • かっこ ( )  がたくさん出てきて、訳が分からなくなる。
  • しかも、一つで済むのじゃなく、いろいろ複合することが多い。

これを使いこなすには、関数そして「論理式」についての深い理解が必要となります。

といっても、それなりに「分かりやすい学習法」というものはありまして、当教室でもこの方法でレッスンを行うことがあります。

スポンサーリンク/Sponsored Link

IF関数は部品ひとつずつに分解して理解しよう

例えば次のようなIF関数があるとします。

=IF(AND(E5>=$E$2,F5>=$F$2),”達成”,”未達”)

IF関数の中に論理式

一見すると大変複雑ですが、あわてずじっくりと理解していくことにします。

スポンサーリンク/Sponsored Link

実際に分解してみよう!

一つ一つの部品を実際にExcelのセルに入力して、計算結果を確かめてみることで、理解が深まります。普段けっしてやらない操作だと思いますが、あえてやってみましょう。

条件式の部分

条件式の部分

まずは、この赤枠の部分、「条件式」が一体どういう役割を果たしているのか、実際にExcelに計算させてみます。

まず、「E5>=$E$2」を実際に余白のセルに代入してみましょう。数式として計算させるため、先頭に「=」をつけて「=E5>=$E$2」と入力します。

上期の達成判定をテスト

つまり、田中さんが上期に目標を達成したか?を判定する式だということですね。

結果はこうなります。

結果は「TRUE」

結果は「TRUE」…… なんだこりゃ!!

このように、「< > =」などを使った論理式を単独で計算させると、結果は「TRUE」または「FALSE」となります。これを「論理値」といいます。

普通、数式の答えは「123」とか「50000」といった、数字になりますね。しかし、条件式の場合だけは違うのです。

  • 条件式 「3>2」→結果「TRUE」(3は2より大きい)
  • 条件式 「3<2」→結果「FALSE」(3は2より小さくない)
  • 条件式 「3>=3」→結果「TRUE」(3は3以上である。)
  • 条件式 「3>3」→結果「FALSE」(3は3より大きくない)

このように、等号・不等号で表された「条件」を満たせば「TRUE」満たさなければ「FALSE」という結果になります。

もとのシートにもどってみますと、

IF関数の中に論理式

  • 29133>=28000 →TRUE
  • 28563>=29000 →FALSE

という結果になります。

TRUE,FALSEは、「ホント」と「ウソ」!

ちなみに、TRUE, FALSEといっていますが、訳すると「ホント」と「ウソ」です。

(正式には、「真」と「偽」というのですが、まぁいいじゃないですか)

もし論理式を日本人が発明していたら、今頃エクセルには「ホント」「ウソ」って表示されていたかもしれませんよ……

AND/OR関数は「赤あげて、白あげて……」の役割!

それでは、いまの結果をもとに、その「外側」、AND関数を見てみます。

and関数全体

このままではややこしいので、さきほど既に求めたTRUE, FALSEの結果を、直接ここに書いてみましょう。

半E5>=$E$2が「TRUE」後半F5>=$F$2が「FALSE」でしたね。

and関数に条件式の結果を直接代入

なんとシンプルになりましたね。それではEnterを押して計算させてみます。

AND関数の計算結果

結果は「FALSE」でした。

AND関数とは、次のような結果を返す関数です。

  • =AND(TRUE,TRUE) →結果「TRUE」
  • =AND(TRUE,FALSE) →結果「FALSE」
  • =AND(FALSE,FALSE) →結果「FALSE」

つまり、AND関数は中身が全部TRUEの時だけ結果が「TRUE」になる関数です。中身はいくつあっても大丈夫で、同じように「全部TRUEか?」というチェックをしています。

ちなみにOR関数は次のような結果を返します。

  • =OR(TRUE,TRUE) →結果「TRUE」
  • =OR(TRUE,FALSE) →結果「TRUE」
  • =OR(FALSE,FALSE) →結果「FALSE」

OR関数は、中身に一個でもTRUEがあれば結果は「TRUE」になります。

このように、AND,ORなどの論理関数は、中身をチェックしてそれぞれ「TRUE」「FALSE」を返す、ただそのためだけに存在してる関数です。

SUM関数やAVERAGE関数を使ってきた身からは、なんだか変な関数だな、と感じるかもしれませんが、

赤あげて、白あげて

赤あげて、白あげて……をやってくれる関数だ、と覚えてもらえればいいと思います。

いよいよIF関数全体をみてみる

では、「中身」の結果が全部でたので、いよいよIF関数全体を見てみます。

IF関数全体

いままで確認した結果を直接入れてみると

IF関数に直接結果を代入

とってもシンプルになりました。それで、計算結果はというと

IF関数の計算結果

  • IF(TRUE,”達成”,”未達”) →結果「達成」
  • IF(FALSE,”達成”,”未達”) →結果「未達」

というわけですね。残念、田中さんは、上期だけ達成しましたが、年間では達成とみなされませんでしたー( ;∀;)

スポンサーリンク/Sponsored Link

部品を一つずつ作っていけば、複雑なIF関数はこわくない

いまお見せしたのは、できあがった数式を分解して、一つ一つの要素ごとに計算させる過程でしたが、実際に数式を自分で一から作るときは、同じように部品ひとつずつ完成させていくとよいのです。

できた部品をひとつずつ取り付けていけば、間違いも起きにくいと思います。 かっこ( )が ((()))みたいにたくさん重なっていても、順番に一つずつ作っていけば間違いにくいです。

時間はかかりますが、間違うよりはずっといいし、やっているうちに仕組みが分かってきます。すると、だんだん、いっぱつで全部書けるようになってきます。

お試しください!

 

パソコン教室・キュリオステーション志木店からのお知らせ
レッスンはオンラインで受講できます

パソコン教室・キュリオステーション志木店では、オンラインでの在宅レッスンを実施しております。
教室の全コースがオンラインで受講可能。実際にインストラクターがご対応いたします。
1時間の無料体験レッスンはいつでも予約できます。詳しくは公式ページをご覧ください。

キュリオステーション志木店運営をフォローする
スポンサーリンク/Sponsored Link

コメント

  1. サンタロウ より:

    おはようございます。

    フォントの取り消し線で対応できそうです。

    それで、お教えいただいた「訂正済み」フィールド以外をCOUNTで数える方法で
    カウントしてできそうです。

    お忙しい中、ご対応、ご教授頂き

    ありがとうございました。

  2. サンタロウ より:

    早速のご解答ありがとうございました。

    罫線の状態を取得する関数はやはりないのですね。

    >その「1」に反応して斜線を自動で引く「条件付き書式」を設定すると言った案が考えられます。
    ですが、
    「条件付き書式」で罫線が縦、横は選択できるのですが、
    斜めは選択できないようになってました。

    又、塗りつぶしでは斜めでも縞でした。

    「条件付き書式」で斜め罫線の引き方とは通常の罫線の斜めではないのでしょうか。

    すいません、知識が浅く、「条件付き書式」での罫線の斜線がみつけることができなかったです。

    「条件付き書式」での罫線の斜線の引き方をご教授いただければ幸いです。

    お忙しい中、ご迷惑おかけします。

    お願い致します。

    • ああ、本当ですね、条件付き書式のダイアロクでは、斜め罫線がグレーアウトして押せないですね。
      すみません、試さず返信してしまって。ご指摘ありがとうございます。
      代用できそうなのは「フォント」の「取り消し線」でしょうか。これならば、消したのだということは分かりそうです。

  3. サンタロウ より:

    こんばんは。

    いつもお世話になります。

    斜線(セルの書式設定の斜線の右上がり)したもの以外をカウントしたく、
    斜線したセルは訂正したもの)以外をカウントしたく、
    if関数やcount関数系でいろいろためしてみたのですが、
    方法がみつかりませんでした。
    ネット検索すると
    VBAでの方法しかないとの解答しかなく、
    ご教授頂きたく
    ご相談させて頂きました。

    ご多忙の中、ご迷惑おかけしますが
    ご教授宜しくお願い致します。

    • こんにちは、コメントありがとうございます。
      セルの値に関する関数はたくさんありますが、セルの書式に反応する関数は、実はありません。
      色とか罫線ではなく「数値の表示形式」だけは、CELL関数によってあるていど情報がとれますが、罫線の状態を取得する関数はありません。
      VBAを使いたくない、ということであれば、ちょっと一工夫が必要です。例えば、斜線を引く操作をして斜線を引くのではなく、「訂正済み」というフィールドを作って「1」と入力し、その「1」に反応して斜線を自動で引く「条件付き書式」を設定すると言った案が考えられます。
      そうすると、カウントする際は、その「訂正済み」フィールドをCOUNTで数える、または、「1」を入れているならばSUMで合計しても同じ結果です。

タイトルとURLをコピーしました