SUMIF(サムイフ)Googleスプレッドシート関数
SUMIF(サムイフ)は、指定範囲内の列から条件を検索して一致した行のセルと指定した列の数値を合計します
・関数 | SUMIF(読み方:サムイフ) |
・書式 | =SUMIF(範囲,検索条件,合計範囲) 合計範囲を省略すると範囲を合計します |
・内容 | 一覧表の中から指定された検索条件に一致するセルの値を合計します。 |
使い方
SUMIF は SUM と IF をあわせたような関数で、SUM は範囲を指定して合計する関数ですが、SUMIFは範囲を指定して、条件を指定することで条件に合ったものだけを合計します。
例)=SUMIF(
D3:D13,
F16,
E3:E13)
スプレッドシートサンプル
|
A |
B |
C |
D |
E |
F |
1 |
|
|
|
|
|
|
2 |
|
日時 |
分類 |
内容 |
金額 |
|
3 |
|
8月10日 |
支出 |
通信費 |
10,800 |
|
4 |
|
8月13日 |
支出 |
外食 |
3,150 |
|
5 |
|
8月15日 |
支出 |
通信費 |
6,755 |
|
6 |
|
8月15日 |
支出 |
外食 |
4,000 |
|
7 |
|
8月20日 |
支出 |
定期代 |
5,500 |
|
8 |
|
8月20日 |
支出 |
外食 |
2,100 |
|
9 |
|
8月22日 |
支出 |
外食 |
2,100 |
|
10 |
|
8月25日 |
収入 |
給与 |
354,570 |
|
11 |
|
8月27日 |
支出 |
家賃 |
120,000 |
|
12 |
|
8月28日 |
支出 |
外食 |
4,200 |
|
13 |
|
8月28日 |
支出 |
電気代 |
12,545 |
|
14 |
|
8月28日 |
支出 |
外食 |
2,100 |
|
15 |
|
|
|
|
|
|
すべてを合計するならば SUM関数で合計できますが、SUM関数を使うと収支に-(マイナス)をつけなければいけなくなります
=SUMIFは収入だけ、や通信費だけと条件をつけたものだけを抽出して合計します。
サンプルの支出の出し方 =SUMIF(
C:C,
"支出",
E:E)
サンプルの収入の出し方 =SUMIF(
C:C,
"収入",
E:E)
サンプルの外食の出し方 =SUMIF(
D:D,
"外食",
E:E)
サンプルの通信費の出し方
例1)=SUMIF(
D3:D14,
"通信費",
E3:E14)
例2)=SUMIF(
D:D,
"通信費",
E:E)
例1は範囲で指定、例2は列で指定しています
※
空白以外を選びたいときとワイルドカード
SUMIF関数はワイルドカードを使うことができます
上記サンプルから
=SUMIF(
C:C,
"支出",
E:E)
この
"支出"を
"支?"としたり
"支*"でも検索されます
例
"*"と指定すると空白以外のセル
"支*"と指定すると
「支」で始まるセル
"*費"と指定すると
「費」で終わるセル
"*食*"と指定すると
「食」を含むセル
"?"と指定するとセル内が1文字
"??"と指定するとセル内が2文字
※
結果が0になる、足されないなどの場合
=SUMIF(
範囲,
検索条件,
合計範囲)
=SUMIF(
C:C,
"支出",
E:E)
検索条件は完全一致のセルでないと呼び出してくれません
範囲か
検索条件が"支出"でなく
"支 出" ← 文字の間に半角スペース
"支出 " ← 文字の後ろに半角スペース
" 支出" ← 文字の前に半角スペース
半角スペースが1つあるだけでも一致したセルにはなりません
検索条件の数式を間違えることはあまりないと思われるので、
範囲の文字列に半角スペースなどが含まれていないか、含まれていたら検索条件に指定した文字以外は削除します
※
結果が0になる、日時を呼び出している場合
2通りが考えられます
=SUMIF(
B:B,
"8月28日",
E:E)
1つ目:
範囲が文字列で入力されている場合
検索条件は「8月28日」を探しているわけではなく
「8月28日」のシリアル値を検索します
8月28日 表示が日時の場合:「8月28日」
検索しているシリアル値:「43705 」
したがって
範囲が文字列で「8月28日」と入力されている場合
「8月28日」という数字と漢字なので一致しません
対応策:
範囲の表示形式を日付の8月28日を選択して日付で打ち直します
2つ目:
範囲の「8月28日」が今年ではない場合
何かの表や去年から使いまわして日付をコピーした場合
「8月28日」が実は「2017年8月28日」など今年ではない場合
検索条件の「8月28日」は今年なので一致しません(条件の年号を省略すると今年になります)
対応策:セルをクリックして見ると年号も表示されるので今年に直します
また検索している関数がTODAYやNOWの場合
TODAYもNOWも表示を日付にすれば「11月21日」ですが
シリアル値が違うので一致しません
=NOW() 45617.694803241
=TODAY() 45617
NOW()は小数点以下に時間を表示しています
今日を検索するにはNOW()ではなくTODAY()を使います
SUMIFとよく使うスプレッドシート関数