「大量」かつ「速い」注文を数える(SUMPRODUCT)

むずかしい 数学
問題文
ヒント 0/4
模範解答 2
–
テストケース
1
2
3
リセット
提出
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
インタラクティブなスプレッドシートを読み込み中...
セルと数式の計算エンジンを準備しています
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。

問題

問題文

調達は「100個を超え、5日以内に出荷された」注文を知りたい。個数は B2:B6、出荷日数は C2:C6 にあり、しきい値はシート上の E1、E2 にあります。件数を Both セル F3 に入れてください。

1つの式で2つの条件を同時に扱います。作業列を足したり、2つの件数を合計したりしないでください。

問題のデータ

表でデータ全体を見る(選択・コピーできます)
この問題のデータ表
ABCE
1OrderUnitsDays to shipUnits > 100
2SO-11204Days < 5
3SO-2809Both
4SO-33003
5SO-4607
6SO-52102

ポイント解説

SUMPRODUCT((B2:B6>100)*(C2:C6<5)) は TRUE/FALSE の配列を2つ掛けます。掛け算は AND の働き(1*1 = 1、0 が入れば 0)で、SUMPRODUCT が積を合計するので、両方を満たす行数になります。COUNTIFS は条件文字列で同じことができ、比較が単純なときは読みやすくなります。

解き方のヒント

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

  1. 対象セルは F3
  2. B2:B6>100 と C2:C6<5 の2つの配列を作る
  3. 掛け合わせて両方成り立つ行だけ残す
  4. 形:=SUMPRODUCT((?)*(?))

模範解答

模範解答を表示(2 通り・まずは自分で試してみましょう)

方法1:2つの真偽値配列を掛ける

=SUMPRODUCT((B2:B6>100)*(C2:C6<5))

SO-1(120, 4)、SO-3(300, 3)、SO-5(210, 2)が条件を満たし、1+0+1+0+1 = 3。掛け算が AND、SUMPRODUCT が件数になります。

方法2:COUNTIFS と2つの数値条件

=COUNTIFS(B2:B6, ">100", C2:C6, "<5")

条件文字列でも同じ答えです。しきい値が単純なら COUNTIFS が読みやすく、条件の中に関数(LEFT、MONTH、ISNUMBER)が必要なら SUMPRODUCT を使います。

関数ガイド

関連する練習問題

よくある質問

2つの数値条件を同時に満たす行はどう数えますか?

=SUMPRODUCT((範囲1>a)*(範囲2<b))、または =COUNTIFS(範囲1, ">"&a, 範囲2, "<"&b) です。どちらもすべての条件を満たす行だけを数えます。

SUMPRODUCT にかっこが必要なのはなぜ?

かっこがないと比較の結合が変わり、SUMPRODUCT(B2:B6>100) は最初の要素しか評価しません。各比較をかっこで囲むことで、配列全体を作ってから掛けられます。