『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【Excel】比較演算子の使い方

算術演算子を使いこなすことはできても、
比較演算子 についてはちょっと自信がないな」
という人もおられると思います。比較演算子とは要するに数学で使用する等号 (=) や不等号 (<, >) に相当するものです。
 
比較演算子の意味を理解することは難しくありません。しかし、比較演算子それ自体を単独で使うことはまずなくて、ほとんどの場合に IF や OR, AND などの論理関数とセットで用いられます。だから比較演算子の使い方は算術演算子に比べると少しだけ敷居が高くなっています。でも、この比較演算子という代物を自在に使いこなすことができれば、VBA というプログラミング言語を使用せずに、ワークシートだけでもかなり高度なシステムを構築することが可能です。Excel は基本的に「習うより慣れろ」という学習スタイルで良いと思いますけど、比較演算子についてはその構造を体系的に学んでおいたほうが応用力を身につけることができると思います。こばとの記事を読みながら(ここ大事!)、少しずつ慣れていって、比較演算子の達人(?)を目指しましょう。

【Excel】比較演算子の種類

Excel比較演算子には次のような種類があります。

比較演算子 意味
= 等しい
<> 等しくない
> 大きい
< 小さい
>= 以上
<= 以下

ちょっと見慣れない記号が「<>」ですね。初めてみると
「小さくて大きい? どういうこと!?」
なんて戸惑ってしまうかもしれませんね。これは数学の「≠」(ノットイコール)に相当するものです。エクセルには(というよりほとんど全てのプログラミング言語で)「≠」という記号が存在しないので、「<>」で代用しているのです。「互いに小さくもあり大きくもあり」という数字は存在しないので、つまりは「等しくない」ということです。

それでは比較演算子の使い方を練習してみましょう。そのためには先ほどもお話したように IF関数の使い方を覚えなくてはいけません。IF関数は

=IF(論理式[,真の場合][,偽の場合])

のように記述します。 [論理式] のところに比較演算子を使った数式を入れて、「その式が正しいときに表示するもの」を [真の場合] に、「その式が正しくないときに表示するもの」を [偽の場合] 指定しておきます。たとえば

=IF(3<5,"成立","不成立")

と入力した場合「3<5」は正しい式なので「成立」という文字列が返ります。しかし不等号の向きを変えて

=IF(3>5,"成立","不成立")

とすると、これは明らかに間違った式ですから「不成立」と返してくるのです。
 
比較演算子を理解するうえで重要なことを1つだけ補足しておきます。IF関数の1つめの引数である [論理式] を関数内部で処理するさいに「論理値」に変換しています。「論理値」とはつまり TRUE(真) であるか FALSE(偽) であるかということです。「論理値」は比較演算子を単独で扱ったときに(つまり論理式を入力したときに)現れます。

=3<5

と入力すると「この式は正しい」という意味で TRUE(真) を返してきます。数学的にはとても奇異に思える記述ですけど、エクセルでは

=3=3

という式も意味を持ちます。これはセルに論理式「 3 = 3 」を入力しているのです。これは当然成り立っていますから、やはり TRUE(真) を返してきます。IF関数では論理式を内部に組み込んでいるので、こういう論理値をもとに真偽を判断して数値や文字列を返します。だから IF関数自体は(特にそうするように指定しなければ)論理値を返しません。論理式は論理値を返しますが、論理関数は必ずしも論理値を返すわけではないのです。なんだかややこしく思えますけど、使っているうちにわかってきます。

コメント

  1. あとりえこばと より:

    【AIエッセイ】VBAエンジニアのとある1日
     
    朝、私はコーヒーを淹れながら、新しいプロジェクトに取り組む準備を始めました。今日の仕事は、既存のExcelマクロを改良し、新しい機能を追加することでした。このプロジェクトは、大手クライアントからの要求で、期限は迫っていました。まず、コードのレビューを行いました。前日に書いたコードを見直し、潜在的なエラーや最適化の機会を探しました。何か問題があれば、修正する必要があります。その後、新しい機能の実装に取り掛かりました。午前中は、データの抽出と変換に多くの時間を費やしました。VBAの強力なデータ操作機能を駆使して、クライアントから提供されたデータを必要な形式に整形しました。これにより、後のステップでの処理がスムーズに進むはずです。昼食休憩を挟んで、午後は新しい機能の開発に集中しました。ユーザーが便利に利用できるように、直感的なユーザーインターフェースを設計し、それに基づいてコードを書きました。新しい機能が期待通り動作することを確認するために、何度もテストを繰り返しました。

    夕方、プロジェクトの進捗状況を確認しました。幸い、予定通りに進んでいるようで、クライアントに提供する前に最終的なテストとデバッグを行う時間がありました。夜遅く、最終的な調整を行い、エラーメッセージや不正確な動作を修正しました。プロジェクトはほぼ完成し、提出の準備が整いました。明日の午前中に最終的なテストを行い、クライアントに提供する予定です。
     
    この1日は、VBAエンジニアとしての日常の一部です。コーディング、デバッグ、テスト、そしてクライアントの要望に応えるために努力する日々が続きます。技術の進化と学習の機会も多く、この仕事は常に新鮮で面白いものです。私の使命は、クライアントのビジネスをサポートし、効率的なソリューションを提供することです。そして、今日もその一歩を踏み出しました。

  2. あとりえこばと より:

    【AI作文】Excelの比較演算子の難しさ
     
    ある日、私はIT社員としての日常業務に取り組んでいました。Excelは私の仕事の中で欠かせないツールであり、データを扱う際には頻繁に比較演算子を使用しなければなりません。しかし、その日は何かがうまくいかない日のようでした。私は数値を比較し、条件に合致するデータを見つけようとしていましたが、なぜかうまくいきません。比較演算子はまるで私をからかっているようで、どれを使えば良いのかがわからなくなってしまったのです。

    「なぜこんなに難しいんだろう?」と、私はぼやきました。大小比較、等号比較、論理演算子…これらが頭の中で混ざり合い、まるで暗号文のようになってしまったのです。そもそも、なぜ「=」が等号ではなく、代入演算子としても使われるのか、不思議に思う瞬間でもありました。

    時間が過ぎ、私は混乱の中で試行錯誤を続けました。「<」や「>」が逆になってしまったり、「AND」や「OR」の条件式が思うように機能しなかったり…。Excelのセルには数字やテキストが詰まっており、それを整理し、正確な情報を取り出すことが私の役割でしたが、今日はそれができないのです。最終的に、同僚に助けを求めざるを得ませんでした。彼らは比較演算子の使い方を親切に説明してくれましたが、私の頭の中はまだ混乱の中にありました。それでも、少しずつ理解が進み、次第に自信を取り戻していきました。

    この日の出来事から、私はExcelの比較演算子に対する尊敬と恐怖を感じるようになりました。誤った使い方をすれば大きな問題を引き起こす可能性があることを学んだ瞬間でした。そして、私は今後も比較演算子を注意深く扱い、データ分析の道を歩み続けることを決意したのでした。