• ベストアンサー

Excelで集計

時間 商品 13:00 みかん 13:00 みかん 13:05 ぶどう 13:05 ぶどう 13:05 りんご 13:07 りんご 13:07 りんご 13:07 ぶどう Excelで上記のような表があった場合、各時間ごとに(売れた数ではなく)何種類のものが売れたかを集計したいと思っています。 (13:00では1種類、13:05では2種類、13:07では2種類といった感じです。時間に規則性はありません。) こういう目的に適した機能はないでしょうか?それともマクロを作成しないといけないでしょうか。 ちなみに、データは2000行ほどあります。 詳しい方、ご教授願います。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像で説明させていただきます。 Sheet1のデータをSheet2に抽出するようにしてみました。 作業用の列を3行使わせてもらっています。 Sheet1の作業列C2は =A2&B2 D2は =IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"") E2は =IF(OR(A2="",COUNTIF($C$2:C2,C2)<>1),"",ROW(A1)) として、C2~E2セルを範囲指定し、E2セルのフィルハンドルの(+)マークでダブルクリック! またはオートフィルで下へずぃ~~~!っとコピーします。 そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$D$2:$D$20000)<ROW(A1),"",INDEX(Sheet1!$A$2:$A$20000,SMALL(Sheet1!$D$2:$D$20000,ROW(A1)))) B2セルに =IF(A2="","",SUMPRODUCT((Sheet1!$A$2:$A$20000=A2)*(Sheet1!$E$2:$E$20000<>""))) という数式を入れ、A2・B2セルを範囲指定し、B2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

hanamogeru
質問者

お礼

丁寧な回答ありがとうございます! 確認したところ、正常に動きました。ずっと悩んでいたので本当に助かりました(><)大変感謝しております。

その他の回答 (2)

noname#106000
noname#106000
回答No.2
hanamogeru
質問者

お礼

ありがとうございます。 このままだと「時間ごとに」という部分には対応できていないので、これだけでは難しい気がします。

  • bari_saku
  • ベストアンサー率17% (1827/10268)
回答No.1

ピボットテーブルでいけませんか?

hanamogeru
質問者

お礼

ありがとうございます。調べてみます。

関連するQ&A