取引先ごとの「請求 − 入金」(SUMIFS を2回)

ふつう 数学
問題文
ヒント 0/4
模範解答 2
–
テストケース
1
2
3
リセット
提出
fx
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行だけでは入金額になりません。

問題のデータ

表でデータ全体を見る(選択・コピーできます)
この問題のデータ表
ABDEF
1VendorInvoicedVendorPaidVariance
2Acme5000Acme4800
3Bolt3200Acme200
4Cobalt1800Bolt3200
5Cobalt1000
6Cobalt500

ポイント解説

同じ SUMIFS を、表を替えて2回使います。請求列を取引先で合計し、入金列を取引先で合計し、引き算します。0 は正当な答え(完済)なので、IF(x=0,"") で隠さないでください。探している取引先が消えてしまいます。

解き方のヒント

回答は F2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。

  1. 対象セルは F2
  2. B2:B4 を A2 の取引先で合計し、E2:E6 も同じ取引先で合計する
  3. 後者を前者から引く
  4. 形:=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 はデータでありエラーではありません。