• 締切済み

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になったりと変化するため、 引数の「基準」をどうすればいいのかが分からずに頓挫してしまいました・・・。 長々と分かりにくい説明になってしまいましたが、助けて下さい。 よろしくお願いします。

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

日付と品名で在庫がマイナスの日数カウントなら =SUMPRODUCT((表1!$A$2:$A$13<=表2!$B2)*(表1!$B$2:$B$13=表2!$A2)*(表1!$D$2:$D$13<0)) 上記の表だと0,1,3が返りますね。

noname#204879
noname#204879
回答No.4

  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)
回答No.3

私に言わせれば、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)
回答No.2

【表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)) で試してみてください。

noname#16474
noname#16474
回答No.1

(ヒント) vlookupを使えば、 表2の期間を表1とリンクさせられますよね。 それを使って、表1の条件にしてみてください

関連するQ&A