• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで月ごとの集計を間に入れたい)

Excelで月ごとの集計を間に挟む方法

このQ&Aのポイント
  • Excelで月ごとの集計を行いたい場合、日付が連続して進んでいるシートで列を変動させる必要があります。具体的な方法としては、各月の最終日の直後に集計の列を入れることがあります。日付が存在しない場合は、31列の固定を考慮することもできます。
  • 月ごとの集計を行うためには、ピボットテーブルを使用する方法もあります。ただし、今回の要望ではピボットテーブルを使用することができません。そのため、日付が連続して進んでいるシートで列を変動させる必要があります。
  • 集計を間に挟む方法としては、まとめて最後に持ってくる方法や別シートに集計表を作成する方法があります。どのような操作で可能かは具体的な要件によりますが、Excelの関数やVBAなどを使用することで実現することができます。

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

  • ベストアンサー
  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.6

D1が1/1からで良いのでしょう・ D1に2016/1/1を手動入力又はセル参照による関数等で実うるう年である今年を1/1として下さい。 D2式 =IFERROR(IF(MONTH(D1)=MONTH(D1+1),D1+1,"集計"),C1+1) 右方向にNE1までオートフィル 集計が12作成されてる事を確認 月合計数式 1月 AI2式 =SUM(OFFSET(AH2,,,,-DAY(AH$1))) 下方へオートフィル AI2~数式までをコピー 各月の集計の2行目にペーストする。 2月、3月修正 閏年の月末及び、3/1数式修正 2/29日のBL1式を下記に修正(コピペ) =IFERROR(IF(MONTH(BK1)=MONTH(BK1+1),BK1+1,""),"") BM1に集計を入力 3/1のBN1式 =IF(BL1="",BK1+1,BL1+1) 2月集計数式BM2式 =SUM(OFFSET(BL2,,,,-29)) 下方へオートフィル D1の年を変更で2月の29日表示も自動で行います。 添付画像は1日と月末間は非表示で非表示セルは空白で、1日と月末だけ数値を入力し集計欄で月集計させています。数式は上記の通りです。

hooue100
質問者

お礼

いろいろな方法があるものですね わざわざ画像まで添付くださり、ありがとうございました すごく詳細に書いて頂きありがとうございました しょうしょう難しく、ついて行けていない部分がありますが 今後の材料にさせて頂きたいと思います 今回は、日付の間に挟み込むはなくてもいいと言う事になったので 最後に集計を持ってきます ありがとうございました

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

その他の回答 (6)

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.7

[No.2お礼]へのコメント、 》 これは「悪い例」としてあげたものです」 そんなこと書いてありましたっけ、質問文に? 「列が可変長」はマクロの鉄人にお願いするとして、マクロ音痴の私なら次のようにします。 1.m/dd に書式設定したセル D1 に 2015/2/1 を入力して、此れを右方に(セル __AH1 までの合計 31列)ズズーッとオートフィル。 __m/dd に書式設定したセル AJ1 に 2015/3/1 を入力して、此れを右方に(セル __BN1 までの合計 31列)ズズーッとオートフィル。 __以降の月も右側に延々と同様にネ。此処では列CU までとしておく。 __つまり、32日目毎に集計列を置く次第。 2.セル AI2 に次式を入力して、此れを下方にズズーッとオートフィル。 __ =SUM(OFFSET(D2,,,,DAY(EOMONTH(D$1,0)))) 3.範囲 AI2:AI6 を[コピー]して、セル BO2、CU2 に[貼り付け] 4.範囲 D1:CU6 を選択して、次の[条件付き書式]を設定 __数式が→ =MOD(COLUMN(A1),32)<>DAY(D$1) __フォント色→ 白

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 単に、 >2月28日 2月29日 集計 3月1日 3月2日 ~~ 3月31日 集計 4月1日 ~~ とするだけでしたら可能なのですが、おそらく2月28日や4月1日といった日付が表示されている列の2行目以下のセルをデータの入力欄として使用した上で、「集計」と表示されている列の2行目以下のセルには関数が常に入力済みとなっている様にしたいという事なのではないかと思われます。(もし違っていた場合には御補足願います)  2行目以下のセルにデータを手入力してしまいますと、そのセルに入力されていた関数は上書きされて消えてしまいますので、2行目以下のセルをデータの入力欄として使用する場合には、 >2月28日 2月29日 集計 3月1日 3月2日 ~~ 3月31日 集計 4月1日 ~~ というパターンでは、マクロを使わない限り無理という事になります。  或いは、通常の関数を使って行うのであれば、「仕入」や「外注」と言った全てのデータをも別シートに入力する様にした上で、添付画像に写っているシートは月毎の集計結果を表示する事だけに使用して、入力には使用しないと言った方法にするなどと言った方法にするのでもなければ無理という事になります。  只、御質問文に書かれている情報だけでは、「仕入」や「外注」といった元データを別シートに入力して行く際に、別シートをどの様なレイアウトの表にした方が良いのかという事が今一つ不明である事や、「集計」と表示されている列の2行目以下のセルに表示させる集計値とは、単に「同じ行内のその月の数値の合計値」とするだけで良いのかどうかという事なども判りませんので、ここですぐに「全てのデータをも別シートに入力する様にした上で、添付画像に写っているシートは月毎の集計結果を表示するのみとする」という事を実現するために必要となる2行目以下のセルに入力する関数を提示する事は困難です。  ですから、取り敢えず >31列固定で考えて >2月28日 2月29日 空欄 空欄 集計 3月1日 3月2日 ~~ 3月31日 集計 4月1日 ~ とする場合の方法に関してのみ回答する事に致します。  尚、 >別シートの入力項目で入れられた年月の1日を開始日として としか説明が無く、日付けを表示させるのはどのセルから始めれば良いのかという事も不明なら、別シートとは何というシート名のシートなのかも不明、別シートのどこのセルに、どの様な形式で年月が入力されているのかという事も不明ですので、取り敢えず仮の話として、Sheet2のA1セルにのみ例えば2016/1/30などといった基準となる日付データが入力されていて、添付画像に写っているシートのAJ1セルから右に向かって日付を表示させるものとした場合に関して回答させて頂きます。  まず、添付画像に写っているシートのAJ1セルに次の関数を入力して下さい。 =IF(AND(Sheet2!$A$1>=1,Sheet2!$A$1<="9999/12/31"+0),TEXT(Sheet2!$A$1,"yyyy/m/""1""")+0,"")  次に、添付画像に写っているシートのAK1セルに次の関数を入力して下さい。 =IF(MOD(COLUMNS($AJ1:AK1),32),IF(ISNUMBER($AJ$1),IFERROR((TEXT(EDATE($AJ1,INT(COLUMNS($AJ1:AK1)/32)),"yyyy/m/")&MOD(COLUMNS($AJ1:AK1),32))+0,"-"),""),"集計")  次に、添付画像に写っているシートのAJ1セルとAK1セルの書式設定の表示形式を[日付]に設定して下さい。  そして、添付画像に写っているシートのAK1セルをコピーして、同じ行のAK1セルよりも右手にあるセル範囲に貼り付けて下さい。  尚、もし別シートに日付が入力されているセルが1個だけではなく、例えば別シートのA列に日付データが入力されているセルが複数あり、それらの日付の中で最も古い日付けの月の1日の日付とそれに続く日付を、添付画像に写っているシートのAJ1セルから表示し始める、という様な場合には、添付画像に写っているシートのAJ1セルを次の様なものにして下さい。(AK1セルに入力する関数は同じもののままで構いません) =IF(COUNTIFS(Sheet2!$A:$A,">=1",Sheet2!$A:$A,"<=9999/12/31"),TEXT(SMALL(Sheet2!$A:$A,COUNTIF(Sheet2!$A:$A,"<1")+1),"yyyy/m/""1""")+0,"")

hooue100
質問者

お礼

すごく詳細に書いて頂きありがとうございました しょうしょう難しく、ついて行けていない部分がありますが 今後の材料にさせて頂きたいと思います 今回は、日付の間に挟み込むはなくてもいいと言う事になったので 最後に集計を持ってきます ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

直接のご相談としての集計と書かれたセル(=先頭行が「集計」になっている)を月替わり位置に挟んで可変にすることは簡単ですが、後の仕事を考えると集計列の集計式(2行目以下)をイチイチ動かさなきゃならないってことで、手間が増えるだけです。 それよりは集計列を32列ごとの固定位置として、その列に当月分の集計関数を最初から配置しておいた方が実際的です。 >計算の結果、月が変われば空欄にして、集計の直後から改めて翌月からはじめる 全ての日付セルにイチイチ計算させたいご相談が実際とっても多いのですが、集計の続きの1日2日3日…セルは、どう考えても1日2日3日であり空白になるハズがありません。空白になる可能性のある29日以降のセルについてだけ、空白の計算をすれば十分ということです。 たとえばAD1:仮にB列が1日として29日 =IF(MONTH(B1+28)=MONTH(B1),B1+28,"")

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>別シートの入力項目で入れられた年月の1日を開始日として とは例えばSheet2のA1へ2016年1月のように入力され、実質の値が2016/1/1のシリアル値(42370)を開始年月日と考えて良いのでしょうか? >どだい、集計を間に挟む事自体無理がありますでしょうか? 1行目の日付と集計と言う文字列を配置するだけでしたら次のような数式を使えば可能です。 D1=IF(NOT(ISNUMBER(C1)),MAX(B1+1,Sheet2!$A$1,-1),IF(DAY(C1+1)=1,"集計",C1+1)) しかし、集計列の2行目以降には月の合計を求める数式を設定する必要があるように思います。 従って、実際に使えるテーブルはVBA等で処理しなければ目的に合わないでしょう。 VBA等のマクロについては不得手なので他の回答者のご意見を参考にしてください。

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

「集計の列を各月の最終日の直後に入れないといけない」と宣わっているにも拘わらず、添付図では「12月1日」と「12月2日」の間に「集計の列」があるの? 「アレは単なるサンプルでぇ~」なんて仰らないでぇ~!

hooue100
質問者

お礼

参考の画像が紛らわしくて、申しわけないです これは「悪い例」としてあげたものです 31列固定でやると、こんな風になってしまうし うまいこと月替わり(最終日の次の列)に週系列を持ってくる方法 がどうしてもわからない状況です 31列固定でも構いません それでも、30,29,28日の月では、この悪い例のようになるので 回避する方法があればご教授願いたいです

全文を見る
すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

ピボットテーブルを使って、ピボットテーブルの結果を引用してみてください。

hooue100
質問者

お礼

集計はできても、連続する日付の間にうまく挿入する方法が わからず、ピボットは集計には役立ちますが 月替わりの境目に集計を持ってくる操作は無理でしょう?

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

関連するQ&A

  • EXCEL 集計について

    月別に集計しています。 そこで質問です。エクセル得意ではありませんので、できるだけ簡単な方法でお願いします。 (1)日付があるので、月の列”=month(2010/2/12)の列を作成しています。 そして月の列を基準にして月別の合計を出して集計しています。 ここで問題があります。集計は2年分ずつとっています。2011年と2012年がはいっている 場合、この方法で集計をかけると、ぐちゃぐちゃになってしまいます。きちんと2011年の1-12月 2012年の1-12月の各月別の集計をかける方法はありますか? (2)まれに売上が0の月があります。そうするとうまく集計できません。   こういう場合はどうすれば、きちんと集計できますか?? 以上、わかりにくい質問でしたら申し訳ありません。 よろしくお願いいたします。

  • ピボットテーブルグループ化によるデータ集計

    エクセルで、各月毎の21日~20日までのデータごとに集計をしたい場合、どのようにすればよいのでしょうか? ピボットテーブルのグループ化を利用すると、月ごとや、日付ごと(31日ごと)で集計できますが、各月が28~31日なので、1/21~2/20、2/21~3/23というようにずれていってしまいます。何かいい方法があれば教えてください。よろしくお願いします。

  • エクセルの関数での集計について

    エクセルで家計簿を作成しています。年間のカード使用履歴を1シートで管理してます。 B列に月(1~12)、G列に金額、I列に区分(飲食費など)が入力してあります。 別シート(各月ごと12シート)に各月ごと区分ごとのカード使用金額を集計したいのですが、やり方が分かりません。関数で出来るのでしょか。

  • エクセルの集計について教えてください

    エクセルの集計について教えてください 添付のように、A列からは入力用 A列 日付(複数月にまたがる) B列 金額 C列 項目 E列からは集計用として E列 項目 F列からは月ごとに集計できるような表を作りました 集計用は、また別途ほかのシートで参照して使用する予定です A列には、今後も次々データを足していく予定です 月単位でデータを抽出したのち、項目ごとに合計を算出したいのですが、どの関数を組み合わせればいいのかわかりません。 エクセルはほぼ初心者です ピボットテーブルを使用してもよいのですが、ほかのシートで参照できる方法を教えてください よろしくお願いします

  • エクセル 集計する

    二つ表を添付していますが、使用するのは今日の分だけでお願いします。 月別に集計しています。そこで質問です。 エクセル得意ではありませんので、できるだけ簡単な方法でお願いします。 (1)日付があるので、月の列”=month(2010/2/12)の列を作成しています。 そして月の列を基準にして月別の合計を出して集計しています。 ここで問題があります。集計は2年分ずつとっています。2011年と2012年がはいっている 場合、この方法で集計をかけると、ぐちゃぐちゃになってしまいます。きちんと2011年の1-12月 2012年の1-12月の各月別の集計をかける方法はありますか? (2)まれに売上が0の月があります。そうするとうまく集計できません。   こういう場合はどうすれば、きちんと集計できますか?? 以上、わかりにくい質問でしたら申し訳ありません。 よろしくお願いいたします。 投稿日時 - 2011-01-27 22:33:47

  • エクセルで頻度の集計をする方法について

    A列に日付(1日からその月の末日まで)、B列にその日に訪れた会員氏名が入っています。 ある1日に訪れる人は当然複数人います。(つまりある1日の行は複数ある事になります) これを前出のシートとは別のシートで個人ごとにいつ来たかを集計したいのです。 A列に会員氏名、B列以降に来た日付を表示したい。 (例) 田中太郎  7/3 7/9 7/10 7/12 山田太郎  7/1 7/10 7/15 のようなイメージです。 どなたか良い方法を教えてください。

  • エクセルでの集計についておしえてください

    エクセルで1シートひと月にし、日ごとにどこの部署の誰が何をいくら販売したかの入力を行い、月ごとの集計を別シートで行います。 さらに月ごとの集計を別シートに1年の集計する、という作業を これまで月ごと集計をピボットテーブルで、1年集計を月ごとシートを +するというちからワザでおこなってきましたが、もう少し簡潔で、 日々の入力が簡単になる方法を教えてください。 毎日、集計結果が必要となるので、自動集計になるような・・・ マクロ等は初心者ですので、なにとぞやさしくおねがいします。 わかりずらい説明ですが、一応エクセルのファイルを添付します。

  • エクセル 月ごとに集計する

    日付、顧客名、各顧客の合計金額に分かれているシートがあります。 各月ごとの合計と、件数を簡単に表示する方法を教えてください。 また、データとしては、日付、顧客名が、月ごとに表示され、その合計金額と 件数として表示されるようにしたいです。 エクセル初心者です。よろしくお願いします。 ピポット、集計など考えましたが、いまひとつわかりません。

  • エクセル 集計のエラー

    1枚目のシートに日付、内容などの一覧があります。 2枚目のシートでそれを集計しています。 1枚目のシートの日付を消すと、2枚目で#N/Aのエラーが出ます。 シートの内容を全部消しても出ます。 一覧はどんどん足しているので、一覧の一番下の列は日付が空欄ですが エラーは出ません。 どこが違うのでしょうか? やりたいことは、このシートを空にして新たな一覧を作成して集計したいのです。 説明が下手で申し訳ありませんが教えてください。

  • エクセル2007 集計について

    エクセルである月の集計を複数のセルの合計を別のシートに出したいのですが、ある月とは、2007/1とか年月を打ち込み その行のセルを別シートに集計させます。 そういったデータベース的な使い方は、エクセル2007ではできますか?

専門家に質問してみよう