こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで複数の条件からデータを抽出する方法

次のような表において、A列の入荷日、B列の製品名から、別表に月別に製品別毎の入荷数及び合計金額を求める関数を教えて下さい。
  A         B    C(個数) D(単価)        
2013/2/15   みかん    100     50
2013/2/30   みかん    200     50
2013/3/2    りんご     50     70
2013/3/4    ぶどう    150     40
2013/4/3    いちご    100     50
 
 よろしくお願いします
    

投稿日時 - 2013-04-10 19:10:48

QNo.8036893

すぐに回答ほしいです

質問者が選んだベストアンサー

簡単に求められるものではありませんね。
いくつかの作業列を作って対応します。
作業列が目障りでしたらそれらの列を選択して右クリックし「非表示」を選択すればよいでしょう。
お示しの表がシート1のA列からD列のデータが2行目から下方に入力されているとしてE2セルには次の式を入力して下方にドラッグコピーします。

=IF(C2="","",C2*D2)

F2セルには次の式を入力して下方にドラッグコピーします。

=IF(A2="","",DATE(YEAR(A2),MONTH(A2),1))

G2セルには次の式を入力して下方にドラッグコピーします。

=IF(F2="","",IF(COUNTIF(F$2:F2,F2)=1,MAX(G$1:G1)+1,G1))

H2セルには次の式を入力して下方にドラッグコピーします。

=IF(F2="","",F2&B2)

I2セルには次の式を入力して下方にドラッグコピーします。

=IF(H2="","",IF(ROW(A1)=1,1,IF(AND(COUNTIF(H$2:H2,H2)=1,G1<>G2),MAX(I$1:I1)+2,IF(COUNTIF(H$2:H2,H2)=1,MAX(I$1:I1)+1,""))))

それらの作業列のデータを使ってお求めの表をシート2に作成するとして

A1セルには月、B1セルには製品名、C1セルには入荷数、D1セルには合計金額とでも項目名を入力します。
A2セルには次の式を入力してD2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(ROW(A1)>MAX(Sheet1!$I:$I)+1,"",IF(COUNTIF(Sheet1!$I:$I,ROW(A1))=0,IF(COLUMN(A1)=1,MONTH(INDEX(Sheet1!$F:$F,ROW(A1)))&"月集計",IF(COLUMN(A1)=3,SUMIF(Sheet1!$F:$F,INDEX(Sheet1!$F:$F,MATCH(ROW(A1)-1,Sheet1!$I:$I,0)),Sheet1!$C:$C),IF(COLUMN(A1)=4,SUMIF(Sheet1!$F:$F,INDEX(Sheet1!$F:$F,MATCH(ROW(A1)-1,Sheet1!$I:$I,0)),Sheet1!$E:$E),""))),IF(COLUMN(A1)=1,MONTH(INDEX(Sheet1!$F:$F,MATCH(ROW(A1),Sheet1!$I:$I,0))),IF(COLUMN(A1)=2,INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!$I:$I,0)),IF(COLUMN(A1)=3,SUMIF(Sheet1!$H:$H,INDEX(Sheet1!$H:$H,MATCH(ROW(A1),Sheet1!$I:$I,0)),Sheet1!$C:$C),IF(COLUMN(A1)=4,SUMIF(Sheet1!$H:$H,INDEX(Sheet1!$H:$H,MATCH(ROW(A1),Sheet1!$I:$I,0)),Sheet1!$E:$E),""))))))

これでシート1のデータの入力に応じて表が変化して月毎に整理されて表示されます。
なお、お示しのデータで2013/2/30とのデータが有りますが、このような日付は存在しませんので文字列としてのデータとなってエラーの原因になりますので注意が必要でしょう。2013/2/20のようにすることが必要でしょう。

投稿日時 - 2013-04-11 10:46:41

お礼

早速のご回答ありがとうございます。
試したところ良好でしたありがとうございました

投稿日時 - 2013-04-11 13:48:45

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問