[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『集計方法を教えて下さい』(ねね)
いつもお世話になっております。
下記のファイルが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
集計ファイルとデータファイルは集計シートとデータシートで
同じファイルにあります。
それと、集計シートとデータシートの商品名は少しちがいますので
コードのみで参照したいです。
同じファイルの中ですれば重くならないですか?
(稲葉)さん、ピボットテーブルを使用したことがないので
勉強します。<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
稲葉さん、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
頑張って挑戦してみました。
この方法でも集計する事ができました。
ただ、データシートはその都度変わってきます。
列を足しなりしたくないので、ファイルがかなり重くなりますが
結局一番最初の方法がいいかと思いました。
ありがとうございました。
(ねね) 2015/02/24(火) 14:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.