関数パズル!Excel MID関数だけでIFなし条件分岐

関数パズル!Excel MID関数だけでIFなし条件分岐 Excel

Excelの「IF」なしで条件分岐?非常識な暇つぶしの始まり

Excelで「もし○○だったら△△、そうでなければ××」といった、条件によって結果を変えたいとき、

皆さんの頭に真っ先に浮かぶのは、おそらくIF関数」ではないでしょうか。

それはExcelを使う上での常識中の常識かもしれませんね。

しかし、今日のこの記事では、その「常識」にあえて逆らってみたいと思います!

まず、主役はIF関数ではありません。

IF関数を擬人化した画像

なんと、文字列操作でおなじみの「MID関数」と、
四則演算でおなじみの「算術演算子」(掛け算の「*」や足し算の「+」など)だけを使って、
条件分岐を実現するのです。

MID関数を擬人化した画像

少し風変わりで、面白い「暇つぶし」テクニックをご紹介します。

「え、そんな面倒なことしなくてもIF関数で一発じゃない…?」

その声、よーく分かります(笑)

確かに、実用性だけを考えれば、素直にIF関数を使うのが最も効率的でしょう。

では、なぜわざわざこんな回り道をするのでしょうか?

その答えは、「Excelの奥深さを探求し、関数の意外な可能性を発見する面白さ」にあります。

そして、固定観念にとらわれず、「関数を組み合わせてロジックを組み立てる発想力」を鍛える、究極の知的パズルでもあるのです!

ご紹介するMID関数の基本的な動きや算数のルール、TRUE/FALSEの扱いは、ほとんどのExcelで共通なので、気軽にチャレンジしてみてくださいね。

MID関数とExcelの数値変換の基本をおさらい

はじめに、この条件分岐テクニックを理解するために、
主役となる「MID関数」の基本をおさらいします。

そして、Excelが持つちょっと面白い「論理値の数値変換」という特性についても、簡単に確認しておきましょう。

これらが今回の「暇つぶし」の核心部分です!

MID関数の基本中の基本

MID関数は、指定した文字列の中から、

特定の位置から特定の文字数分だけ文字を「切り出す関数です。

まるで、文章の中から好きな一部分だけをハサミで切り取るようなイメージですね。

MID関数の構文

その構文は至ってシンプルです。

=MID(文字列, 開始位置, 文字数)

それぞれの引数が何を意味するのか見てみましょう。

  • 文字列: 加工したい元の文字列そのもの、または文字列が入力されているセルを指定します。
  • 開始位置: 文字列の先頭から数えて、何文字目から切り出しを開始するかを数値で指定します。(1から数えます)
  • 文字数: 開始位置から何文字分の文字列を切り出すかを数値で指定します。

MID関数の具体例

例えば、セルA1に「今日の天気は晴れです」と入力されているとします。

この文字列から「天気」という2文字だけを抜き出したい場合、MID関数は次のように使えます。

=MID(A1, 4, 2)

「今日の天気は晴れです」の4文字目は「」、
そこから2文字分なので「天気」が結果として表示されます。

MID関数の概要

このように、「文字列の一部を切り出す」という基本的な機能が、
どのようにして条件分岐へと変貌を遂げるのでしょうか?

その鍵を握るのが、次にご紹介するExcelの特性です。

Excelの論理値の秘密(TRUE=1, FALSE=0):この「暇つぶし」の核心!

Excelを使いこなしている方なら、比較演算子(例: =, >, < など)を使った結果が「TRUE(真)」または「FALSE(偽)」という論理値で返ってくることはご存知でしょう。

例えば、「=10>5」という数式は「TRUE」を返します。

数式
=10>5

また、「=A1=”合格”」はセルA1の値が「合格」であれば「TRUE」を、そうでなければ「FALSE」を返します。

ここからが面白いところです!

Excelは、これらの論理値を計算式の中で使用すると、自動的に数値に変換して扱います

具体的には、

  • TRUE は 1
  • FALSE は 0

として扱われるのです。
では、試しにExcelの空いているセルに次の数式を入力してみてください。

=TRUE*1

結果はどうなりましたか?
1」と表示されたはずです。

同様に、

=FALSE*1

と入力すれば、「0」が表示されます。

TRUE FALSEの説明

この一見地味な「TRUE=1、FALSE=0」という変換ルールこそが、
今回の「暇つぶし」、いや、「知的探求」の最重要キーポイント!

この特性を巧みに利用することで、
MID関数の「開始位置」の引数を動的に変化させます。

あたかも条件分岐しているかのような動作を実現するのです。

まさに、MID関数を魔法の杖に変える呪文のようなものですね!

【初級編】MID関数だけで二択の条件分岐をマスターする!〜「合格」か「不合格」か?〜

さて、ウォーミングアップはここまで。

いよいよ本題の、MID関数を使った条件分岐に挑戦しましょう!

まずは小手調べとして、おなじみの「合否判定」です。

例えば、セルB1に入力された点数が60点以上なら「合格
60点未満なら「不合格と表示する処理を考えてみます。

「そんなのIF関数なら =IF(B1>=60, “合格“, “不合格“) で一瞬だろ!」

という声が聞こえてきそうですね。

その通り!

でも、今日はそのIF関数を封印するのがルールです。

この制約があるからこそ、新しい発見と達成感が生まれるのです。

さあ、MID関数だけでこの壁をどう乗り越えるか、その驚きのロジックを見ていきましょう!

準備するのは「答えの文字列」!

このテクニックの面白いところは、
まず「表示したい結果の文字列を全部つなげて用意しておく」という点です。

今回の合否判定では、「合格」と「不合格」の2つの結果が考えられますね。

これらの文字列を、例えば “不合格合格” という一つの連続した文字列として、
どこかのセル(ここでは仮にセルC1としましょう)に入力しておきます。

または、数式内に直接書き込んでしまいます。

文字列の画像

「なぜ『不合格合格』の順番なの?『合格不合格』じゃダメなの?」

と疑問に思ったあなたは鋭い!

この順番と、各結果の文字数が、後で解説する「開始位置」の計算に密接に関わってきます。

「開始位置」を論理値の計算で操る!

いよいよ、魔法の数式の登場です。

点数が入力されているセルをB1とします。

今回は、「不合格」(3文字)と「合格」(2文字)という結果を表示したいと思います。

そこで、これらを連結した「不合格合格」という文字列をセルC1に入力するか、
数式内に直接記述します。

結果を表示したいセルに次のような数式を入力します。

=MID(C1, (B1>=60)*3+1, 3)

数式=MID(C1, (B1>=60)*3+1, 3)

もし「不合格合格」という文字列を数式に直接埋め込むなら、こうなります。

=MID("不合格合格", (B1>=60)*3+1, 3)

数式=MID("不合格合格", (B1>=60)*3+1, 3)

たったこれだけ? と思うかもしれませんが、これでちゃんと条件分岐ができてしまうのです!

秘密は、MID関数の第2引数である「開始位置」を計算している (B1>=60)*3+1 の部分にあります。

この部分が、点数に応じて1」または「4という数値を魔法のように生み出します。

そして、MID関数が「3文字」を切り出すことで、目的の文字列をコントロールします。

では、順番に計算過程を見ていきましょう。

ケース1:点数が60点以上の場合 (例: B1セルに 85 と入力)

まず、条件式 (B1>=60) の部分が評価されます。

次に、Excelの特性により TRUE は数値の 1 に変換されます。

すると、開始位置の計算式は 1*3+1 となります。

これを計算すると 3+1 = 4 となります。

この「4」が、MID関数の「開始位置」として使われます。

MID関数は、文字列「不合格合格」の 4文字目 から 3文字 を切り出そうとします。

ケース2:点数が60点未満の場合 (例: B1セルに 45 と入力)

まず、条件式 (B1>=60) の部分が評価されます。

次に、Excelの特性により FALSE は数値の 0 に変換されます。

すると、開始位置の計算式は 0*3+1 となります。

これを計算すると 0+1 = 1 となります。

この「1」が、MID関数の「開始位置」として使われます。

MID関数は、文字列「不合格合格」の 1文字目 から 3文字 を切り出します。

合格合格」→「不合格

どうでしょうか?

IF関数を一切使わずに、点数に応じて「不合格」と「合格」をしっかり表示分けできました!

まるで手品のようなこのロジック、MID関数と論理値の数値変換、
そして簡単な算術演算子の組み合わせが生み出す、まさにExcelの「驚き」と「発見」の瞬間です。

たったこれだけで条件分岐が実現できるなんて、
Excelって本当に奥深く、そして面白いツールだと思いませんか?

この小さな「できた!」という体験が、きっと大きな「ワクワク」に繋がっていくはずです。

【中級編】MID関数だけで三択以上の条件分岐に挑戦!〜「優」「良」「可」の評価〜

さて、二択の条件分岐をMID関数だけでクリアできたなら、
次はもう少しステップアップしてみましょう。

三択以上の条件分岐に挑戦します!

ここでは、点数に応じて」(80点以上)」(60点以上80点未満)」(60点未満)三段階で評価を表示するケースを考えます。

「二択はまだしも、三択となるとさすがにMID関数だけでは無理なのでは?」

そう思うかもしれませんね。

しかし、安心してください。

先ほどのロジックを少し応用するだけで、見事に三択以上の条件分岐も実現できてしまうのです!

より複雑な条件にMID関数がどこまで通用するのか、その限界(と思いきや、意外といける!)に挑戦するようで、なんだか楽しくなってきませんか?

複数条件を「足し算」で重ねる!

まず準備するのは、やはり「答えの文字列」です。

今回は「」「」「」の3つの評価を表示したいので、これらの文字列を連結します。

ここで重要なのは、各評価を表す文字列の長さを揃え、その順番と後の計算ロジックを緻密に連携させることです。

ここでは、各評価を1文字で表現する「可良優」という文字列を使うことにしましょう。

この順番がミソです。

そして、この文字列から目的の評価を切り出すための数式は次のようになります。

点数がB2セルに入力されていると仮定します。

=MID("可良優", 1 + (B2>=60) + (B2>=80), 1)

「おや? さっきの二択の時と比べて、開始位置計算部分が少し変わったぞ?」

と気づいた方は素晴らしい!

そう、 1 + (B2>=60) + (B2>=80) この部分が、三択分岐を実現するための巧妙な仕掛けなのです。

ポイントは、複数の条件式 (B2>=60) と (B2>=80) の結果(TRUE=1, FALSE=0)を足し合わせることです。

これにより、MID関数の開始位置を段階的に変化させている点です。

それでは、具体的な点数で計算の動きを追ってみましょう。

ケース1:点数が80点以上の場合 (例: B2セルに 90 と入力) → 「優」と表示したい!

条件式 (B2>=60):90>=60 なので TRUE (→ 1)

条件式 (B2>=80):90>=80 なので TRUE (→ 1)

開始位置の計算:1 + 1 + 1 = 3

MID関数の動作:=MID(“可良優”, 3, 1)

結果:文字列「可良」の3文字目である「」が切り出されます。

大成功!

ケース2:点数が60点以上80点未満の場合 (例: B2セルに 70 と入力) → 「良」と表示したい!

  1. 条件式 (B2>=60):70>=60 なので TRUE (→ 1)
  2. 条件式 `(B2>=80):70>=80 は成り立たないので FALSE (→ 0)
  3. 開始位置の計算:1 + 1 + 0 = 2
  4. MID関数の動作:=MID(“可良優”, 2, 1)
  5. 結果:文字列「可優」の2文字目である「」が切り出されます。

これもバッチリ!

ケース3:点数が60点未満の場合 (例: B2セルに 50 と入力) → 「可」と表示したい!

  1. 条件式 (B2>=60):50>=60 は成り立たないので FALSE (→ 0)
  2. 条件式 (B2>=80):50>=80 は成り立たないので FALSE (→ 0)
  3. 開始位置の計算:1 + 0 + 0 = 1
  4. MID関数の動作:=MID(“可良優”, 1, 1)
  5. 結果:文字列「良優」の1文字目である「」が切り出されます。

完璧ですね!

このようにして、複数の論理式の結果(0か1)をうまく足し合わせることで、
まるで条件分岐の「階段」を一歩ずつ登るように、

求める結果が格納されている「答えの文字列」上の正しい開始位置へと導いていくのです。

このパズルのような組み立てこそが、MID関数を使った条件分岐テクニックの醍醐味です。

そして、Excelの関数の柔軟性を示す面白い一例と言えるでしょう。

条件が増えても、この「足し算で重ねる」という考え方を応用すれば、四択、五択…と拡張していくことも理論上は可能です。

ただし、数式はどんどん複雑になりますが、それもまた一興!

まとめ:MID関数で遊べば、Excelはもっと面白くなる!

今回は、「MID関数と算術演算子のみを使ったIF関数なしの条件分岐」という、

ちょっぴりマニアックで、でも面白い「暇つぶし」テクニックをご紹介しました。

一見、実用性には乏しい、まるでExcelの裏技のようなアプローチだったかもしれません。

しかし、この挑戦を通して、私たちはExcelの関数の驚くべき柔軟性を垣間見ることができました。

そして、私たちの発想次第で無限に広がる応用の可能性の一端を知ることができたのではないでしょうか。

「TRUEは1、FALSEは0」というExcelの基本的な性質を最大限に活かしました。

そして、MID関数の引数を巧みに操ることで、

IF関数を使わずに条件に応じた結果を取り出す!

この一連のロジックは、まさにExcelの奥深さ、そして関数を「組み合わせる」ことの面白さを象徴しているかのようです。

ぜひ、今日ご紹介したこのテクニックを、
まずは「暇つぶし」として、お手元のExcelで実際に試してみてください。

これまでとは違うExcelの面白さ、そして底知れない奥深さに気づかせてくれるはずです。

一緒にExcelの可能性を探求し、楽しんでいきましょう!

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