- 締切済み
Excelで条件に合った数字の数をカウントしたいのですが・・・
エクセルで【表1】のような表がある時、各品名別に在庫数<ゼロ のセルを、 関数を使ってカウントしたいのです。 【表1】 日付 品名 販売数 在庫数 1 A 30 52 2 A 20 22 3 A 25 2 4 A 15 -23 1 B 40 48 2 B 55 8 3 B 50 -47 4 B 45 -97 1 C 35 10 2 C 20 -25 3 C 40 -45 4 C 20 -85 但しこの時条件があり、品名ごとにカウントする期間が異なります。 別表で、【表2】のように 期間が入力された表があり、 品名Aなら 1~2日目のマイナスの在庫数を、 Bなら 1~3日目のマイナスの在庫数をカウントしたいのです。 【表2】 品名 期間 A 2 B 3 C 4 最終仕上げたいのは【表3】で、「在庫がマイナスになった期間」の列に入れる 関数を教えて頂きたいのです。 【表3】 品名 在庫<ゼロ になった期間 A 0 B 1 C 3 COUNTIF関数とOffset関数などを使ってみたのですが、 【表1】の日付が品によって 3になったり10になったりと変化するため、 引数の「基準」をどうすればいいのかが分からずに頓挫してしまいました・・・。 長々と分かりにくい説明になってしまいましたが、助けて下さい。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mshr1962
- ベストアンサー率39% (7417/18945)
日付と品名で在庫がマイナスの日数カウントなら =SUMPRODUCT((表1!$A$2:$A$13<=表2!$B2)*(表1!$B$2:$B$13=表2!$A2)*(表1!$D$2:$D$13<0)) 上記の表だと0,1,3が返りますね。
F G H 1 期間 品名 在庫<ゼロ になった期間 2 2 A 0 3 3 B 1 4 4 C 3 H2: =SUMPRODUCT((A$2:A$20<=F2)*(B$2:B$20=G2)*(D$2:D$20<0))
- imogasi
- ベストアンサー率27% (4737/17069)
私に言わせれば、2条件以上集計はSUNPRODUCTか配列数式を使うのが、定石で思いつきやすいが、 (1)表1から品名一覧を作る(もちろん重複なし)のが1つの問題です。 目で見て一覧を作るとか、別途完成しておれば簡単ですが。 (2)(1)の品名一覧(列)ができれば、SUNPRODUCTか配列数式を組み立て、式の複写で一気に件数一覧が出る。 本当は(1)の質問が先行すべきなんです。 A18にA A19にB A20にC とできてあるとして 配列数式ですが B18に=SUM(IF((B2:B13=A18)*(D2:D13<0),1,0))と入れてSHIFT+CTRL+ENTERキーを同時に押す。 B19,B20に式を複写。 結果は B18 1 B19 2 B20 3 です。
- EL-SUR
- ベストアンサー率76% (83/108)
【表1】が A1:D13 【表2】が J1:K4 【表3】が F1:G4 にあり、【表2】と【表3】の品名の並びが同じだとすれば、 F G 1 品名 在庫 2 A 0 3 B 1 4 C 3 G2: =SUMPRODUCT((A$2:A$13<=K2)*(B$2:B$13=F2)*(D$2:D$13<0)) で試してみてください。
(ヒント) vlookupを使えば、 表2の期間を表1とリンクさせられますよね。 それを使って、表1の条件にしてみてください