取引先ごとの「請求 − 入金」(SUMIFS を2回)
テストケース
1
2
3
リセット
提出
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。
テストケース
1
2
3
リセット
提出
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。
問題
問題文
2つの表を1つのレポートにします。請求は A2:B4、入金は D2:E6 にあり、1社が分割で入金することもあります。A2 の取引先について、未決の差額(請求 − 入金)を Variance セル F2 に入れてください。
両側とも取引先で合計します。入金の1行だけでは入金額になりません。
問題のデータ
表でデータ全体を見る(選択・コピーできます)
| A | B | D | E | F | |
|---|---|---|---|---|---|
| 1 | Vendor | Invoiced | Vendor | Paid | Variance |
| 2 | Acme | 5000 | Acme | 4800 | |
| 3 | Bolt | 3200 | Acme | 200 | |
| 4 | Cobalt | 1800 | Bolt | 3200 | |
| 5 | Cobalt | 1000 | |||
| 6 | Cobalt | 500 |
ポイント解説
同じ SUMIFS を、表を替えて2回使います。請求列を取引先で合計し、入金列を取引先で合計し、引き算します。0 は正当な答え(完済)なので、IF(x=0,"") で隠さないでください。探している取引先が消えてしまいます。
解き方のヒント
回答は F2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。
- 対象セルは F2
- B2:B4 を A2 の取引先で合計し、E2:E6 も同じ取引先で合計する
- 後者を前者から引く
- 形:=SUMIFS(?, ?, ?) - SUMIFS(?, ?, ?)
模範解答
模範解答を表示(2 通り・まずは自分で試してみましょう)
方法1:SUMIFS を2つ引く
=SUMIFS($B$2:$B$4, $A$2:$A$4, A2) - SUMIFS($E$2:$E$6, $D$2:$D$6, A2)
Acme は請求 5000、入金 4800 + 200 = 5000 で差額は 0。一部だけ入金された場合は、状態の文字ではなく差額そのものが返ります。
方法2:両側とも SUMIF
=SUMIF($A$2:$A$4, A2, $B$2:$B$4) - SUMIF($D$2:$D$6, A2, $E$2:$E$6)
SUMIF は条件範囲が先、合計範囲が後です。結果は同じで、条件が単純な等号のときは短く読めます。
関数ガイド
よくある質問
2つの表の同じキーの合計を比べるには?
それぞれキーで合計して引き算します:=SUMIFS(請求, 取引先列, キー) - SUMIFS(入金, 取引先列, キー)。VLOOKUP では、各表に1社1行のときしか正しく動きません。
差額が 0 ではなくダッシュや空白になるのはなぜ?
0 をダッシュ表示する書式か、IF(x=0,"") で包んでいるためです。差額 0 はデータでありエラーではありません。