OR & AND

OR関数およびAND関数をarrayformula内で使用する時のhow-toです。
(恐らくIF関数内で使う場合が大半ですが、IF関数の外でも使用できます)

例えば、講義Aから講義Eまでの5つの講義のうちどれを履修するかに対して、

というように、

  • 必修ならば(="必修"の列が"YES"ならば)"取るべき"

  • 必修でなくても、テストとレポートの両方ともある講義でなければ(="テスト"と"レポート"の列が両方とも"あり"でなければ)"取るべき"

  • 必修でなく、テストとレポートの両方がある講義は"やめるべき"

と返してほしい状況があるとします(まあこんな乱暴な講義の選び方はしないでしょうが…)。

このとき、通常の全てのセルに書いていく形式だと以下のようになるでしょう。

ただし、OR関数とAND関数は引数のセルの大きさに関わらず1つのセルにしか返さないため、基本的にArrayformulaの中で使用することができません。

そこで、ここでは

  • OR関数の代わりに条件どうしを"+"でつなげる

  • AND関数の代わりに条件同士を"*"でつなげる

ことによって解決します。

(もちろんこの記法は通常のIF関数の中でも使用可能です)

上記の書き方の解説というよりかは補足になりますが、

explainの一番目のように条件節はもともとTRUE/FALSEで表されます。

しかし、"+"および"*"を用いて記述した場合、explainの2番目・3番目のように整数値となります。

(explainの4番目のようにTRUE/FALSEを返す関数内に入れた場合は当然TRUE/FALSEに戻ります)

ここらへんはgoogle spread sheetの実装内部がにじみ出ますね。