関数IFSを使って「数多くの条件分岐」を行いたい場合もあるだろう。この場合、引数の数も多くなるため、記述ミスを犯しやすくなる。そこで、関数を途中で改行してプログラムのように記述する方法を紹介していこう。1行で書くと気が遠くなるような関数であっても、改行することでスッキリとした見た目に仕上げられる。

関数IFSの記述が複雑になる例

関数IFSは、最大で127組まで「条件と処理」を記述できる仕様になっている。とはいえ、「条件と処理」を何組も連続して記述していくと関数の見通しが悪くなり、記述ミスが発生しすくなる。また、後から関数を修正するときも「どこを修正すればよいか?」を見つけるだけで大変な作業になってしまう。

そこで今回は、関数を途中で改行して見やすく記述する方法を紹介していこう。

  • 改行(Alt+Enter)を使って関数を見やすく記述

今回も体脂肪率の測定結果を「低」、「標準」、「高」の3つにグループ分けする場合を例に話を進めていく。前回の連載と異なる点は「男性」だけでなく「女性」のデータも記録されていることだ。

  • 体脂肪率の測定結果をまとめた表

体脂肪率の判断基準は諸説あるが、ここでは以下の基準に従ってデータを分類していくことにする。

【男性の体脂肪率】
  低:15%未満
 標準:15%以上、25%未満
  高:25%以上

【女性の体脂肪率】
  低:25%未満
 標準:25%以上、35%未満
  高:35%以上

このグループ分けを関数IFSで実現するには、「性別」と「体脂肪率」を基準に以下のような手順で6つの条件分岐を行う必要がある。

 (1)「男」かつ「15未満」の場合 ・・・・ 低
 (2)「男」かつ「25未満」の場合 ・・・・ 標準
 (3)「男」かつ「25以上」の場合 ・・・・ 高
 (4)「女」かつ「25未満」の場合 ・・・・ 低
 (5)「女」かつ「35未満」の場合 ・・・・ 標準
 (6)「女」かつ「35以上」の場合 ・・・・ 高

第47回の連載で紹介したように、「かつ」の条件は関数ANDで記述できる。「性別」がD3セル、「体脂肪率」がE3セルに記録されていた場合、(1)の「条件」と「処理」は、

AND(D3="男",E3<15),"低"

と記述できる。とはいえ、このような「条件」と「処理」をダラダラと続けて記述していくのは少し気が遠くなる。そこで、もっとスマートに、わかりやすく関数IFSを記述していく方法を紹介しよう。

関数IFSを改行しながら記述するには?

といことで、関数を改行しながら記述していく方法を紹介していこう。まずは「数式バーの領域」を展開する。以下の図に示したアイコンをクリックする。

  • 数式バーの展開

続いて、関数を入力するセルを選択し、数式バーに「=IFS(」の部分まで入力する。その後、関数の記述を改行する。この操作は「Alt」+「Enter」キーを押すと実行できる。

  • 「=IFS(」と入力し、Alt+Enterで改行

あとは、関数IFSの引数を順番に記述していくだけだ。1番目の「条件」と「処理」を記述し、「Alt」+「Enter」キーで改行する。

  • 1番目の「条件」と「処理」を入力

同様の手順を繰り返して、2番目以降の「条件」と「処理」を記述していくが、このままでは「数式バーの領域」が足りなくなってしまいそうだ。このような場合は、数式バーの下端をドラッグすると「数式バーの領域」を広くできる。

  • 数式バーの高さ調整

関数IFSの記述を続けていこう。2番目の「条件」と「処理」は、以下の図のように記述すればよい。

  • 2番目の「条件」と「処理」を入力

同様の手順で3~6番目の「条件」と「処理」を記述していく。似たような記述が多いので、各行をコピー&ペーストして必要な部分だけを修正してもよいだろう。このとき、最後の「条件」と「処理」の後には「,」(カンマ)を記述しない、ということに注意しておく必要がある。その後、「カッコ閉じる」を入力すると、関数IFSの記述が完了する。

  • 3~6番目の「条件」と「処理」を入力

「Enter」キーを押して関数IFSの入力を確定すると、その結果が表示される。以下の図の場合、「男」かつ「25未満」の条件に合致するため、「標準」の文字が表示されることになる。

  • 関数IFSの結果

関数の動作を確認できたら「数式バーの領域」を元のサイズに戻しておこう。以下の図に示したアイコンをクリックする。

  • 数式バーの折りたたみ

あとは関数IFSをオートフィルでコピーするだけ。あわせて「高」や「低」を強調表示する「条件付き書式」を指定すると、以下の図のような結果を得られる。

  • 関数IFSをオートフィル―でコピーした様子

念のため、関数を入力したセルをダブルクリックしたときの様子も紹介しておこう。この場合も関数は改行されて表示される。数式バーを使わずに、この状態のまま関数の記述を修正していくことも可能だ。

  • セルをダブルクリックしたときの表示

このように、記述の長い関数を「Alt」+「Enter」キーで改行しながら入力していくと、関数の記述が見やすくなり、コピー&ペーストを活用した入力も行いやすくなる。

ただし、どこでも自由に改行できる訳ではない。たとえば、「関数名」と「(」の間で改行するのは不可、となっている。通常は、引数を区切る「,」(カンマ)を基準に改行していくのが一般的な記述方法といえるだろう。

インデントを使って見やすくする

プログラムのようにインデントを設けて記述を見やすくすることも可能だ。以下に示した例は、引数部分の先頭に「2文字の半角スペース」を挿入して、関数の記述を見やすくした例だ。

  • 「半角スペース」でインデントを設けた例

このように、関数の途中に「半角スペース」を入力しても構わない仕様になっている。こちらも上手に活用していくとよいだろう。

少し余談ではあるが、「全角スペース」でインデントを指定したときの挙動も紹介しておこう。この場合は「全角スペース」が「半角スペース」に自動置換される仕組みになっている。

以下の図は、3番目の「条件」と「処理」の行だけ「2文字の全角スペース」を挿入した例だ。「Enter」キーを押して関数の入力を確定し、その後、もういちど関数の記述を確認してみると、「全角スペース」→「半角スペース」の自動置換が行われているのを確認できる。

  • 「全角スペース」でインデントを設けた例

  • 関数の入力後に記述を再確認

このような挙動があることも、念のため覚えておくとよいだろう。

IFとIFSを組み合わせた手法

「数多くの条件」でグループ分けするときに、関数IFと関数IFSを組み合わせて使う手法もある。今回の例の場合、まず関数IFで「性別」の条件分岐を行い、その中に関数IFSを記述して「体脂肪率」での条件分岐を行う、という流れになる。

具体的な例を紹介しておこう。以下の図に示した例では、最初に関数IFで「性別が"男"か?」の条件分岐を行っている。続いて、「男」の場合の処理、「男」でない場合の処理を、それぞれ関数IFSで処理している。

  • IFとIFSを組み合わせた記述

このような場合も「Alt」+「Enter」キーで改行しながら関数を記述すると、関数の見通しがよくなる。上図の例では、それぞれの「条件と処理」の間に「半角スペース」を挿入することで、より見やすくなるように工夫している。

もちろん、この記述でも先ほどと同じ結果を得ることができる。関数ANDを使わずに処理したい場合に活用するとよいだろう。

  • 関数の結果

あとは、この関数をオートフィルでコピーするだけ。これで全員の体脂肪率を判定できるようになる。

  • 関数IFSをオートフィル―でコピーした様子

今回の連載で紹介したように、途中に「改行」や「半角スペース」を挿入して、プログラムのように関数を記述するのも便利で効果的な手法となる。関数の記述が複雑になるときの対処法として、覚えておくと役に立つだろう。