Excel TEXT関数の意外な使い方!条件分岐もできる

Excel TEXT関数の意外な使い方!条件分岐もできる Excel

本記事では、Excel 2021およびMicrosoft 365で動作を確認しています。表示形式の仕様により、古いバージョンでは意図した通りに動作しない可能性があります。

IF関数を使わず条件分岐!TEXT関数だけで点数を評価せよ!

「Excelで点数を『不可』に評価するなら、IF関数をたくさん重ねる(ネストする)か、IFS関数を使うのが普通でしょ?」

そう思ったあなた、もちろん大正解!

実務でこの課題に直面したら、IFS関数を使うのが最もスマートで分かりやすい方法です。間違いありません。

でも、ここは「Excelで暇つぶし」をするブログ。

最も簡単で正しい道を選ぶだけでは、面白くないですよね?

以前、MID関数だけで条件分岐を行うという、奇妙な挑戦をしました。

今回は、その続編です!

「え、じゃあ今回はどの関数で…?まさか、数値を文字列に変換する、あの地味なTEXT関数で条件分岐を…?」

そのまさかです!


今回は、普段は日付の書式を整えたり、数値に桁区切りを入れたりするために使われる、あのTEXT関数だけで、この4段階の評価を見事に実現させてみせます!

断言します。これから紹介する方法は、TEXT関数の適切な使い方ではありません(笑)
しかし、この一見無駄とも思える挑戦を通してTEXT関数の隠された能力を知ることで、あなたの関数への理解は、間違いなく一層深まるはずです!

今回のミッション

現在の状態

以下のような、名前と点数が入力されたシンプルな表があります。

Excel画像

目指すゴール

C列に、IFやIFS関数を一切使わずに、以下の基準で評価を自動表示させる。

  • 80点以上 →
  • 60点以上80点未満 →
  • 40点以上60点未満 →
  • 40点未満 → 不可
Excel画像

STEP1:主役の紹介 – TEXT関数の基本と「隠された能力」

作戦会議の前に、まずは今回の主役であるTEXT関数のプロフィールを、少し詳しく見ていきましょう。

TEXT(値, 表示形式)の基本

TEXT関数は、指定した「値」(数値や日付など)を、指定した「表示形式」の文字列に変換する関数です。

ここまでは、多くの人が知っている基本的な使い方ですね。

表示形式に隠された「条件分岐」の力

しかし、このTEXT関数の第二引数「表示形式」には、実は条件分岐の機能が隠されています。

表示形式は、セミコロン;で区切ることで、条件を指定できるのです。

[条件1]書式1 ; [条件2]書式2

そして、角括弧[]で囲むことで、数値に対する条件を指定できます!

例えば、

=TEXT(B2,"[>=80]""優"";""それ以外""")

と入力すると、B2が80以上なら「」、それ以外なら「それ以外」と表示されます。まさに簡易的なIF関数ですね。

「なるほど!じゃあ、この条件を;で4つ繋げれば、簡単にできるんじゃない?」

鋭い!しかし、残念ながら、この条件分岐で指定できる条件は2つまでという制約があるのです。

だからこそ、今回の「暇つぶし」が面白くなるわけです。

STEP2:TEXT関数の「ドミノ倒し」!究極の入れ子(ネスト)構造を解き明かす

条件が2つまでしか使えないなら、どうやって4段階の評価を実現するのか?

答えは、TEXT関数を3重に入れ子(ネスト)にすることです。

完成形となる数式

まず、C2セルに入力する完成形の数式をご覧ください。

=TEXT(TEXT(TEXT(B2,”[>=80]“”“”;[<80]0“),”[>=60]“”“”;[<60]0“),”[>=40]“”“”;[<40]“”不可“””)

Excel画像

一見すると、何が何だか分かりませんね。

この数式を、内側から順に、ドミノが倒れていくように解き明かしていきましょう。

ステップ・バイ・ステップ解説

[最重要ポイント!]
今回のロジックの鍵は、表示形式の”0“にあります。これは「値の0」ではなく、「元の数値を、そのままの数値で(ただし文字列として)表示しなさい」という意味の書式記号です。この違いを理解することが、この数式を解読する最大のポイントです!

① 内側のTEXT関数:まず「優」だけをふるい分ける

TEXT(B2,"[>=80]""優"";[<80]0")

最初のドミノです。この関数は、B2セルの点数を評価します。

  • 点数が95の場合: [>=80]の条件に合致し、結果は文字列の「優」になります。
  • 点数が68の場合: [<80]の条件に合致し、表示形式”0″が適用され、結果は文字列の「68」になります。
Excel画像

② 中間のTEXT関数:「良」をふるい分け、残りを次に渡す

TEXT( [内側の結果] ,"[>=60]""良"";[<60]0")

2番目のドミノです。この関数は、内側の関数の結果を評価します。

  • 内側の結果が「68」の場合: Excelは文字列「68」を数値の68として評価します。[>=60]の条件に合致するため、結果は文字列の「」になります。
  • 内側の結果が「52」の場合: Excelは文字列「52」を数値の52として評価します。[>=60]の条件は満たされないため、[<60]の条件に移ります。表示形式”0″が適用され、結果は文字列の「52」になります。
Excel画像

③ 外側のTEXT関数:最後に「可」と「不可」を判定する

TEXT( [中間の結果] ,"[>=40]""可"";[<40]""不可""")

最後のドミノです。この関数が、最終的な評価を決定します。

  • 中間の結果が「52」の場合: [>=40]の条件に合致し、結果は「」になります。
  • 中間の結果が「38」の場合: [>=40]の条件に合致せず、[<40]の条件に移ります。結果は「不可」になります。
Excel画像

これで、全ての条件を正しく判定できる、完璧なTEXT関数のドミノ倒しが完成しました!

まとめ

今回は、IF関数を使わずに、TEXT関数の入れ子だけで4段階の条件分岐を実現するという、非常に奇妙で、しかし奥深い挑戦をしました。

この一見、無駄とも思える探求の旅を通して、TEXT関数の表示形式が持つ「条件分岐機能」や、表示形式”0“の本当の意味、

そしてExcelが文字列と数値をどう扱うかなど、普段は意識しない関数の側面を垣間見ることができたのではないでしょうか。

もちろん、実務では素直にIFS関数を使いましょう(笑)

しかし、このような探求は、Excel関数への理解を、間違いなく一層深いものにしてくれるはずです。

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