[[20150219161306]] 『集計方法を教えて下さい』(ねね) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『集計方法を教えて下さい』(ねね)

いつもお世話になっております。

下記のファイルが2つ有ります。

集計用ファイル

    A           B      C   D   E   F   G    H     I   J   K   L   M   N
1 コード     商品名 6月 7月 8月 9月 10月 11月 12月 1月 2月 3月 4月 5月
2 900038312  aaaaaaaa 
3 500009106  bbbbbbbb 
4 200020612  cccccccc
5 200007006  dddddddd
6 200026912  eeeeeeee
7 200015706  ffffffff

データファイルは

1 取引日付   コード   商品名   数量    金額
2 2014/6/3   900038312   aaaaaaaa   12  2500
3 2014/6/3   500009106  bbbbbbbb    2  12500
4 2014/6/9   200020612   cccccccc   5  1000
5 2014/6/20  200007006  dddddddd  11  850
6 2014/6/26  200026912   eeeeeeee  8  8900
7 2014/6/30  200015706   bbbbbbbb  3  3000
8 2014/7/3  900038312   aaaaaaaa  10  1950
9 2014/7/3  500009106   bbbbbbbb  1  112600
10 2014/7/9  200020612   cccccccc  7  5600
11 2014/7/20  200007006   dddddddd  4  3500
12 2014/7/26  200026912   eeeeeeee  50  4900
13 2014/7/30  200015706   bbbbbbbb  100  1050
以下、続きます。

集計用ファイルの6月にデータファイルと同じ商品コードの
数量を足した数を表示したいのですが、可能ですか>
同月に同じ商品がある場合があります。
集計用ファイルの「6月」は表示を「2014/6」に変更しても
大丈夫です。
SUMIF関数を使うと思いますが、日にちが違うので
どうしたらよいですか?

よろしくお願いします。

< 使用 アプリ:Excel 97-2003、使用 OS:WindowsXP >


 集計用ファイルの月の部分を「2014/6」「2014/7」・・・と変更して
 集計用ファイルのC2セルに
 =SUMPRODUCT((TEXT([データ.xls]Sheet1!$A$2:$A$1000,"yyyymm")=TEXT(C$1,"yyyymm"))*([データ.xls]Sheet1!$B$2:$B$1000=$A2)*([データ.xls]Sheet1!$C$2:$C$1000=$B2)*[データ.xls]Sheet1!$D$2:$D$1000)
 右と下にフィルコピー

 でも回答しておいて何ですが、件数が多ければ多いほど処理が重くなるのであまりおすすめできません・・・。
(se_9) 2015/02/19(木) 16:54

 ピボットテーブル案

 1列追加して、年月だけ取り出します。
 例として金額の横に「年月」という項目を作り
 2行目に(日付をA列とすると)

 =TEXT(A2,"yymm")
 必要な範囲にコピー

 取引日付から↑で作ったデータまでを範囲選択して、ピボットテーブルを作成します。
http://hamachan.info/excel/piboto.html

 行ラベルに「コード」と「商品名」
 列ラベルに「年月」
 値に「数量」を入れて、「合計」にする
 これで希望の表になりませんか?
(稲葉) 2015/02/19(木) 16:57

 あああ、別ファイルを読み飛ばしていました。
 外部データの取り込みでそのままピボットテーブルにするか、
 一度集計用ファイルに入れてからピボットテーブル用に加工でいかがでしょう?
http://www.microlab.jp/xcutedoc/documents/manual/XCuteHelpNew/GaibuDeta3.htm

(稲葉) 2015/02/19(木) 16:59


(se_9)さん、ありがとうございます。

集計ファイルとデータファイルは集計シートとデータシートで
同じファイルにあります。

それと、集計シートとデータシートの商品名は少しちがいますので
コードのみで参照したいです。

同じファイルの中ですれば重くならないですか?

(稲葉)さん、ピボットテーブルを使用したことがないので
勉強します。<m(__)m>

(ねね) 2015/02/20(金) 10:19


私だったら単純に、
コードと年月を使用しカウントします。

まず、「データ」シートに「年」と「月」の列を追加します。

「年」列の式
=Year([取引日付のセル])
※例:A1に取引日付がある場合、「=Year(A1)」

「月」列の式
=Month([取引日付のセル])

上記より求めたものを、判定値とするため列を追加します。

「判定」列の式
=[年セル]&[月セル]&"-"&[コードセル]

とします。

集計ファイルの方には、

    A           B      C   D   E   F   G    H     I   J   K   L   M   N
1                     2014              2015
2 コード     商品名 6月 7月 8月 9月 10月 11月 12月 1月 2月 3月 4月 5月
3 900038312  aaaaaaaa 
4 500009106  bbbbbbbb 
5 200020612  cccccccc
6 200007006  dddddddd
7 200026912  eeeeeeee
8 200015706  ffffffff

とし、

C3には下記の式を入力し、

=Countif(データ![判定列範囲],$C$1&C$2&"-"&A3)

集計するかな…。

気が向いたら試してみてください。
(K) 2015/02/20(金) 10:40


 =SUMPRODUCT((TEXT(データ!$A$2:$A$1000,"yyyymm")=TEXT(C$1,"yyyymm"))*(データ!$B$2:$B$1000=$A2)*データ!$D$2:$D$1000)

 でも同一ファイル内だからって軽くなるものではありません。なので稲葉さんやKさんの方法も検討してみてください。
(se_9) 2015/02/20(金) 10:50

(se_9)さん、ありがとうございます。

稲葉さん、Kさん、ありがとうございます。
少しづつ勉強します。
(ねね) 2015/02/20(金) 13:04


お世話になっております。

(K)さんの方法で集計しようとしていますが
集計シートのC3に下記の式を入力
=Countif(データ![判定列範囲],$C$1&C$2&"-"&A3)

とありますが、数量の合計を求めるので
「データ![判定列範囲]」とはデータシートの数量の列ですか?

(ねね) 2015/02/24(火) 11:12


 	A	B	C	D	E	F	G	H
 1 取引日付 コード	商品名 数量	金額			
 2 2014/6/3 900038312	aaaaaaaa 12	2500			
 3 2014/6/3 500009106	bbbbbbbb 2	12500			

 データシートのセル位置が上記のようになっているとして
 データシートのG2セル =IF(A2="","",YEAR(A2)&MONTH(A2)&"-"&B2)
 下にフィルコピー

 集計シートの6月、7月・・・となっているところは6、7・・・と入力して表示形式で 0"月"
 集計シートのC3セルに =SUMIF(データ!$G$2:$G$1000,LOOKUP(10^16,$C$1:C$1)&C$2&"-"&$A3,データ!$D$2:$D$1000)
 右と下にフィルコピー
(se_9) 2015/02/24(火) 11:35 一部修正 11:39

(se_9)さん、ありがとうございます。

頑張って挑戦してみました。
この方法でも集計する事ができました。

ただ、データシートはその都度変わってきます。
列を足しなりしたくないので、ファイルがかなり重くなりますが
結局一番最初の方法がいいかと思いました。

ありがとうございました。
(ねね) 2015/02/24(火) 14:45


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.