IFS(イフス)Googleスプレッドシート関数
IFS(イフス)は、複数の値をテストして指定された条件の真のときの値を返し、どの条件にも当てはまらない場合「#N/A」エラーになります
・関数 | IFS(読み方:イフス) | |
・書式 | =IF(論理式,真の場合,論理式,真の場合,論理式,真の場合,・・・) | |
・内容 | IFS 関数を使用して値または数式が複数の条件を満たしているかどうかをテストできます。(論理式,真の場合,)は最大127個テストできます。どの条件にも当てはまらない場合#N/A エラーになります | |
真の場合と表現しているので「偽の場合」は?と思いますが、
1つの
論理式に対して
真の場合を判断しているだけで、偽の場合は次の
論理式に進み、
どの条件にも当てはまらない場合は「#N/A」エラーになります
=IFS(
F3=1,
1,
F3=2,
2,
F3=3,
3,
F3=4,
4,
F3=5,
5,
F3=6,
6,
F3=7,
7)
F3の値が1なら1、2なら2、3なら3を返します
IFS関数がうまくいかない原因の多くはIFS関数は
論理式を左から実行して一致したらそれ以上探しません
セルF3が1の場合
=IFS(
F3=1,
1,
F3=2,
2,
F3=3,
3,
F3=4,
4,
F3=5,
5,
F3=6,
6,
F3=1,
7)
結果:1
最後を
F3=1にしても最初にF3=1を見つけているので
以降が一致していても無視されます
#N/A エラー:条件が見つからない場合
#VALUE! エラー:TRUE または FALSE 以外の値
上記は数字ですが
真の場合が文字列の場合は「"(ダブルクォーテーション)」ではさむ必要があります。
サンプル
数字をアルファベット(大文字)にする
数字をアルファベット(小文字)にする
アルファベット(大文字小文字区別無)を数字にする
IFS関数のエラーを回避する方法
セルF3に1~4の数値が入る場合
=IFS(F3=1,1,F3=2,2,F3=3,3,F3=4,4)
セルF3がまだ未入力の場合を空白にする場合
=IFS(F3=1,1,F3=2,2,F3=3,3,F3=4,4,
F3="","")
最後に
F3が空白の場合空白を追加するとまだ未入力の場合空白になります
エラーすべてを空白にする場合
=
IFERROR(IFS(F3=1,1,F3=2,2,F3=3,3,F3=4,4)
)
数式を
IFERROR()に入れることですべてのエラーは空白になります
エラーの場合警告を表示する方法
=
IFERROR(IFS(F3=1,1,F3=2,2,F3=3,3,F3=4,4),
"1~4の数字を入力してください")
数式を
IFERROR()に入れて
エラーの場合のメッセージを表示
応用編)
BMI(ボディー・マス・インデックス)値の結果を出してみる
BMI値:体重kg ÷ (身長m)
2
BMIは、体重と身長の関係から人の肥満度を示す体格指数です。
日本肥満学会の判定基準(成人:高校生以上)
指標 | 判定 |
18.5未満 | 低体重(痩せ型) |
18.5~25未満 | 普通体重 |
25~30未満 | 肥満(1度) |
30~35未満 | 肥満(2度) |
35~40未満 | 肥満(3度) |
40以上 | 肥満(4度) |
上記の表を基にIFS()関数を使って判定します
|
A |
B |
C |
D |
E |
F |
G |
1 |
|
|
|
|
2 |
|
名前 |
年齢 |
身長(cm) |
体重(kg) |
BMI値 |
体形 |
3 |
|
一郎 |
56 |
177 |
49 |
15.64 |
普通体重 |
4 |
|
二朗 |
49 |
181 |
75 |
22.89 |
普通体重 |
5 |
|
三郎 |
71 |
170 |
65 |
22.49 |
普通体重 |
6 |
|
四朗 |
80 |
166 |
73 |
26.49 |
肥満(1度) |
7 |
|
五郎 |
44 |
176 |
56 |
18.07 |
低体重(痩せ型) |
8 |
|
六郎 |
40 |
169 |
58 |
20.3 |
普通体重 |
セルF3にBMI値がある場合
セルG3)
※セルF3)=ROUNDDOWN(D3/((E3/100)*(E3/100)),2)
不等式の使い方
< 未満
<= 以下
>= 以上
IFS関数が使えない場合、IF関数で上記の式は
セルG3)
となります
論理式をよく見ると
1番目の論理式:F3<18.5
2番目の論理式:F3<25
3番目の論理式:F3<30
4番目の論理式:F3<35
5番目の論理式:F3<40
数値が17や18の場合、全部条件を満たしていますが、IFS関数は
論理式を左から実行して一致したらそれ以上探さないので、最初のF3<18.5が判定されます
不等式を使う場合以下や未満の場合は小さい数字から論理式を設定する必要があります
IFS関数と組み合わせてよく使うスプレッドシート関数
エクセル(EXCEL)のIFS 関数との違い
引数を省略した場合のみ結果が違います
=IF(論理式,真の場合,論理式,真の場合,論理式,真の場合,・・・)
「真の場合」の値は省略できますが省略した場合
Googleスプレッドシートでは「空白」になり
エクセルでは「0」になります
IF関数の引数を省略した場合と同じく
SUM関数や合計値なら問題ありませんが
COUNT関数やAVERAGE関数などでは結果が変わってきます
「空白」は無視されますが「0」はカウントされます
=IFS(F3=1,)
上記はGoogleスプレッドシートではF3が1の場合「空白」になり、
そのセルをCOUNT関数で数えても含まれませんが
=COUNT(IFS(F3=1,))
と中に入れると結果は「1」とカウントされます