- ベストアンサー
エクセル関数:データシートから集計シートに集計させる関数を教えてください
- エクセルでデータシートから集計シートに集計させる関数を使いたいです。
- データシートの管理番号に対して使用者番号ごとに合計数量を出したいです。
- フォーマットが決まっているため、PVやTなどの関数は使用できません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
集計したい。単純集計でなく、条件付き集計だ。それも 管理番号に対して使用者番号と2段階だ。 SUMIFやSUMPRODUCT関数(たぶん後者)をやってみましたか。条件付き集計の常識です。>わかるかたよろしくお願いしますという前に代表的な方法は勉強してやってみないと。 ーー 例データ(*はこの行を拾うということで参考までに入れたもの。) ID 管理番号 使用者番号 数量 日付 1 12E22100 12 1 2008/1/1 * 2 12345678 1 5 2008/1/1 3 12E22100 12 1 2008/1/1 * 4 12Y22100 12 1 2008/1/1 5 001234T7 15 4 2008/1/1 6 12E22100 12 2 2008/1/1 * ーーー 集計シート(簡略化したもの) 管理番号ーーーーーーーーー12 <=D列と仮定。第10行と仮定 12E22100 ーーーーーーーー4 <==結果 D11セルの式は =SUMPRODUCT((B2:B7=A11)*(C2:C7=D10)*(D2:D7)) 上記の*の行の数量の合計 他のマス(セル)も類推してください。 ーー 他のセルにも式を複写するためには =SUMPRODUCT(($B$2:$B$7=$A11)*($C$2:$C$7=D$10)*($D$2:$D$7)) とD11に入れ、縦方向横方向に式を複写する。 例 結果 12 15 12E22100 ーーーーーーー 4 0 001234T7 ーーーーーーー 0 4 ーー PVTという言葉は質問者の勝手な略ではないですか。WEBで調べてもそれらしきものは出てこない。ピボットぐらいは書くべき。そのため既出回答が出ることになると思う。 ーーー 管理番号の一覧はどのようにして質問者は作るのですか。手入力するのですか。数が多いと入力してそろえるのは表には既にあるのにと徒労感があるだろう。 こちらのほうも課題だと思うが。フィルタオプションー重複するレコードは無視する、など。
その他の回答 (1)
- wisemac21
- ベストアンサー率39% (171/429)
ピボットテーブルを使うのがよいと思います。
補足
お返事ありがとうございます *フォーマットが決められているためPVT等は使用できません (ピボット等は使用できませんという意味です)
お礼
できました 参照先DBがおかしかったみたいです ありがとうございました
補足
=SUMPRODUCT((B2:B7=A11)*(C2:C7=D10)*(D2:D7)) お返事ありがとうございます ((B2:B7これはデータ側の管理番号を指定している =A11これは集計がわの検索値だと? (C2:C7これはデータ側の使用者番号を指定している =A11これは集計側の使用者番号の検索値だと? (D2:D7))これはデータ側の数量の指定 上記の考え方であっているのでしょうか? 現在#NUM!のエラー文字が出ます 今一度ご教授願います 又、PVTは自分の勝手な略でした 管理番号一覧はすでに入力されています その元での関数入力です データに対してはADOで値を引っ張ってくるつもりです 理想的な型はADOデータ→関数→値貼り付け→ADOデータ削除 をVBAに組み上げる予定です 一連作業の今は関数の位置にいます わかりにくくてすみません