• ベストアンサー

年月毎の集計の方法について。

下記の様にシート1にデータがあり、シート2にシート1のデータをコード別、年月別に集計したいのですが、どの様な計算式を作成すればよいでしょうか?SUMPRODUCTを使っていますが、「シート1の年月日」と「シート2の年月日(1日付けにしています)」をどの様にマッチさせるのかが分かりません。ご教示お願いいたします。 シート1  A(コード)  B(年月日)  C(金額) 1 001     2008/12/20   2,000 2 001     2009/1/20   1,000 3 003    2009/12/25   3,000 4 003    2009/2/10   6,000 5 002    2009/1/10   3,000 6 001    2009/1/10   2,000 7 003    2009/2/25   1,000 シート2  A(コード)    B      C       D 1    2008/12/1   2009/1/1   2009/2/1 2 001    2,000   3,000   0 3 002    3,000   0   0 4 003    3,000   0   7,000

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

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

こんばんは! 参考になるかどうか分かりませんが・・・ ↓の画像のように表をつくってみました。 コードNOはすでに入っているものとします。 結論として、年月日が入っているその月すべて(1か月分)を 合計すればいいわけですよね? 一応、そういうことだと解釈させてもらっての回答です。 Sheet2のB2セルに =SUMPRODUCT((Sheet1!$A$2:$A$8=Sheet2!$A2)*(Sheet1!$B$2:$B$8>=Sheet2!B$1)*(Sheet1!$B$2:$B$8<=EOMONTH(Sheet2!B$1,0)),Sheet1!$C$2:$C$8) という数式をいれて行・列方向へオートフィルでコピーすると 画像のような結果になります。 尚、質問ではSheet1に2008年の12月のデータは一つしかないので 質問内容の下側のような結果にはならないと思います。 そしてEOMONTH関数を使っていますので メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておいてください。 以上、当方使用のExcel2003での回答になります。 参考になれば幸いですが 的外れなら軽く読み流してくださいね。m(__)m

nao37330
質問者

お礼

ありがとうございました。 EOMONTH関数は初めて使います。 こちらの式で対応してみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

シート1のD列を作業列として使う例です。 シート1のセルD2に以下の式を入れ、下へコピーします。 =CONCATENATE(A2,"_",TEXT(B2,"yyyy/m")) シート2のセルB2に以下の式を入れ、全セルにコピーします。 =SUMIF(Sheet2!$D$2:$D$8,CONCATENATE($A2,"_", TEXT(B$1,"yyyy/m")),Sheet2!$C$2:$C$8) 以上です。式は、質問の例を基につくりました。実情に合わせて修正してください。

nao37330
質問者

お礼

CONCATENATE(A2,"_",TEXT(B2,"yyyy/m")) と計算式を入れるとコードと年月が表示されるのですね。 驚きでした。ありがとう御座いました。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1では1行目が項目名で2行目からデータがあるとします。 シート2ではB1セルから右横方向に2008/12/1、2009/1/1などが入力されているとします。 A2セルから下方にはコード番号があるとします。 B2セルには次の式を入力し右方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(B$1="",$A2=""),"",SUMPRODUCT((YEAR(Sheet1!$B$2:$B$100)=YEAR(B$1))*(MONTH(Sheet1!$B$2:$B$100)=MONTH(B$1))*(Sheet1!$A$2:$A$100=$A2)*Sheet1!$C$2:$C$100)) この式ではシート1でのデータが100行までに対応しています。適宜修正してください。 なお、余談ですがシート2の1行目での日付ですが2008/12/1と入力しますが、セルの書式設定で表示形式のユーザー定義でyyyy年mm月として2008年12月と表示させるようにしてもよいですね。

nao37330
質問者

お礼

ありがとうございました。 ご教示頂いた式でOKでした。 ただ計算式の長さが微妙ですが、No.1の方の式が短く済みそうでしたので、そちらを使ってみます。 また、年月表示の件もありがとう御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBA 年月で集計したい

    お世話になります。 下記の様にシート1に入力した値をボタンで シート2の集計シートの該当年月に加算させたいたいのですが、 年月で振り分ける方法が分かりませんでした。 ●シート1(個数入力)   A     B    1      H24/12/25 2りんご    1 3みかん    2 4ばなな    3 5すいか    4      ⇒GOボタン ●シート2(年月毎の集計)   A     B      C      D    1     24年10月 24年11月 24年12月 2りんご   0      1 3みかん   0      2 4ばなな   0      3 5すいか   0      4 シート1のB1の日付の年月とシート2のB1の年月が一致したら、値をB2~B5に加算 一致しなければ、C1、D1 という感じで考えております。 IF文の条件式がどのようになれば良いか教えていただけないでしょうか? 分かりづらくて申し訳ございませんが、よろしくお願い致します。 エクセルは2000を使用しております

  • Excelでの別シート集計について

    Excelで月別、項目別で時間を集計するシートを作成しようとしています。 シート2ではシート1 F列コード別に集計してD列の時間データを月別に合計 シート3ではシート1 F列コードとG列コード別(Fが1001でGが1001、、、)に集計してD列時間データを合計、という表データにして抽出したいと考えています。 シート1には K欄に年月を表示  =IF(OR(A7="",B7="",C7=""),DATE(2100,12,31),DATE(A7+2000,B7,C7)) L列にF列コード+年月  =F7&(2000+A7)&B7 M列にG列コード+年月  =G7&(2000+A7)&B7 というところまでは設定したのですが、出力先となるシート2、シート3にはどのような設定をすればよいのか行き詰っています。 なにとぞ易しい回答をよろしくお願い申し上げます。

  • EXCEL2007 集計方法を教えて下さい。

    EXCEL2007 集計方法を教えて下さい。 sheet1は、商品の出荷データが入っています。 A列・・得意先コード、B列・・品番、C列・・出荷数 sheet2で集計します。 A2以降に商品コードが入力してあります。 A1に得意先コードを入力すれば、sheet1のA列を参照し、該当得意先の商品出荷数をsheet2のC列に集計したいのです。 (sheet1のデータは羅列です。 例えば、山本屋のりんご購入履歴が1行目や10行目21行目と入力されているイメージです。

  • COUNTIFでの集計

    ExcelはVer.2003です。 いつも助けて頂いて感謝しております。 集計業務を頼まれたのですが困っております…。 SHEET!Aに数字と文字列にて下の様にA1:Y50まで入っております。       A       B      C      D・・Y 1   7191-03   2242-37   2212-40    5445-52・・ 2   1544-12   2242-01    2212-03    3555-52・・ 3   7190-01    2242-12   2222-40    5445-12・・  :     :      :       :      : 50 7191-03や7190-01が表示形式の標準や数値では表せない為、一部を 文字列としております。 このデータから、右の2桁が同じ数字をカウントしてSHEET!Bの 特定のセルに集計したいのですが、MATCHやRIGHTをネストしても 私ではCOUNTIFやSUMPRODUCTでは式が作れませんでした・・・。 フォーマットを変更したくないので作業列を使わずに試みてるの ですがよい方法はありませんでしょうか?? 最終目的として、-01や-40の合計をSHEET!Bの1つのセルに1つの 関数で集計するのが理想です。 当方、関数はほんの少し理解できますが、VBAは全くわかりません。 どうか宜しくお願い致します。

  • Excelでシート間のデータの抽出方法

    1つのブックに集計用のシートと、A店、B店、C店という各店舗別の売上シートがあります。 Sheet集計用のA1にA店のコード(A店は001、B店は002というようなコード)を入れると、Sheet集計用のB列の上期売上、C列の下期売上にSheetA店のB列の上期売上、C列の下期売上のデータが入るようにすることは可能でしょうか? Sheet集計用のA1のコード変更することによってデータを引っ張ってくるシートが変わる様にしたいということなんですが、Excelでどのようにすればいいかわかりません。 各店舗のシートのA1のセルにも、その店舗のコードが入力されています。

  • エクセル関数でグループ単位に集計を行う

    エクセル初心者です。 入力伝票データを元に、集計シートに自動的に品名コード順の合計を作成したいのですが、うまくできません。 データシートのデータをソートせずに関数だけで出来る方法をお教えください。 ※エクセルはExcel2003を使用しています。 《データシート》例 [見出し] A1:年月日,B1:伝票番号,C1:品名コード,D1:数量,E1:単価,F1:金額 [データ] A2:2008/10/1,B2:Z-001,C2:S0001,D2:3,E2:1,000,F2:3,000 A3:2008/10/1,B3:Z-002,C3:S0002,D2:1,E3:2,000,F3:2,000 A4:2008/10/1,B4:Z-003,C4:S0003,D4:2,E4:3,000,F4:6,000 A5:2008/10/2,B5:Z-004,C5:S0002,D5:1,E5:2,000,F5:2,000 A6:2008/10/2,B6:Z-005,C6:S0001,D6:3,E6:1,000,F6:3,000 A7:2008/10/3,B7:Z-006,C7:S0003,D7:2,E7:3,000,F7:6,000 《集計シート》例 [見出し] A1:品名コード,B1:伝票数,C1:数量計,D1:合計金額 [集計値] A2:S0001,B2:2,C2:6,D2: 6,000 A3:S0002,B3:2,C3:2,D3: 4,000 A4:S0003,B4:2,C4:4,D4:12,000 ※品名コードは固定せず、データシートに入力されたものだけを集計したい

  • エクセルでの稼働日数集計

    使用ソフトはエクセル2003です。 期間内の稼働日数を集計したいのですが、同日の結果が複数行存在します。 この場合にどのような関数で集計できるかを御教示頂きたく、宜しくお願いします。 例: A列 2014/01/01 2014/01/01 2014/01/03 2014/01/05 2014/01/09 2014/01/09 2014/01/15 2014/01/31 2014/01/31 2014/02/01 2014/02/04 2014/10/27 上記の場合、2014年1月中の稼動日数として「6」日を集計したいのです。 尚、作業列としてB列にそれぞれの月の1日の日付データをB列に入力しており 2014/01/01 2014/02/01 2014/03/01 : 2015/01/01 一ヶ月のトータル稼動件数をSUMPRODUCT関数を用いて、 =SUMPRODUCT((A1:A12>=B1)*(A1:A12<B2)) ※今回のサンプルデータの場合「9」 を計算しております。

  • ExcelのVBAで集計をしたいです。

    EXCELで、VBAを使用して元データのシートから、集計シートを作成したいです。 Sheet1 A B C D E F 1 品名 サイズ1 サイズ2 サイズ3 元のサイズ 売り上げた量 2 A 1 100 150 200 1000 50 3 B 2 100 200 100 1500 10 4 A 2 200 300 500 2000 100 5 A 1 150 150 100 1000 80 6 A 2 150 150 600 3000 100 Sheet2(集計用に新規作成されたシート:作成時は空シート) A B C D 1 品名 サイズ1 元のサイズ 売り上げた量の合計 2 A 1 1000 130 3 B 2 1500 10 4 A 2 2000 100 5 A 2 3000 100 元のサイズのものがどれだけ使用されて売れたのかを集計しようとしています。 ちなみにサイズ1は変更されません。 条件が複数個になるので、Sheet2の合計は、SUMPRODUCTを使用することになると思うのですが、 C列までの、品名、サイズ1、元サイズが重複しないように抽出するためには、 どのようにしたらよいのでしょうか?

  • エクセルで複数のシートからデータを集計したい。

    エクセルで複数のシートから、あるデータを取り出し、別のシートに集計したいのですが、関数を入力すると莫大な量になってしまいました。 関数とは別の方法で集計する方法をご教授お願いします。 1日~31日のシートがあります。 シート1日内容は A   B    C    D      E     1  NO  原因(1) 原因(2)  原因(3)   2 101   10       15   (b2+c2+d2)  3 105   20   40       (b3+c3+d2) 4 108       20   100 (b4+c4+d4) といった内容です。 1日から31日のセルA2などは固定した数値でありません。 なんで、例えばA3に101が入っている場合があります。 集計シートは A   B    C    D      E     1  NO  原因(1) 原因(2)  原因(3)   2 101               (b2+c2+d2)  3 102               (b3+c3+d2) 4 103              (b4+c4+d4) のようになってます。 B2に=SUMIF('1日'!A2:A4,A2,'1日'!b2:b4)+SUMIF('2日'!A2:A4,A2,'2日'!b4:b4)+・・・・・が31日のシート分まで作成するとファイルが重くなりすぎてしまい困っております。 よろしくお願いします。

  • 集計方法を教えてください。

    複数シートのデータを集計用に作成したシートにデータをコピーしたい。 シート1(支店A)  2008/03/31 ノート 100  2008/04/20 乾電池 200 シート2(支店B)  2007/10/31 乾電池 200  2008/01/06 鉛筆  100 シート3(集計表) (品名) (営業所)(数量) (日付)  乾電池  支店A  200  2008/04/20       支店B  200  2007/10/31  鉛筆   支店B  100  2008/01/06  ノート  支店A  100  2008/03/31 ※集計表には、品名と営業所名のみが記載されているため「数量」と「日付」のみをコピーしたい よろしくお願いします。

このQ&Aのポイント
  • ファックス送信ができないトラブルについて相談します。子機の設置が必要なのでしょうか?
  • お使いの環境はiPhone12で、無線LANで接続されています。電話回線はひかり回線です。
  • ブラザー製品のMFC-J739DNでファックス送信ができない問題についての質問です。
回答を見る

専門家に質問してみよう