[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『上期下期ごとの集計』(もみじまんじゅう)
Excel2003 WindowsXP
現在下記のようなデータが有ります。 列方向にひと月2列づつ(売上・粗利)データが有り、 3年半分まで続きます。 このデータからマクロで上期、下期ごとの粗利だけの集計を取りたいのですが 上期下期をどうやって取得したらいいかつまづいています。
上期=4月〜9月 下期=10月〜3月です。 何年?の上期、何年?の下期、かを判断して11行目に入れてある小計を 期ごとに足し算した結果を別シートの表に転記するのですが、ご享受願います。 2011年下期粗利=C11+E11+G11+I11+K11+M11 2012年上期粗利=O11+Q11+S11+U11+W11+Y11
A B C D E ..........DV 1案件番号 2011/10売上 2011/10粗利 2011/11売上 2011/11粗利...2015/03粗利 2 AA001 100 150 1100 1200 1000 3 AA002 1200 0 260 1100 500 4 AA003 0 1500 0 150 4000 5 AA004 300 800 100 0 200 . . . 11 =SUBTOTAL(9,B2:B10)..=SUBTOTAL(9,C2:C10)..
マクロの質問とのことですが、回答がつかないようなので 参考までに関数での一例
リストの一番下の空いた行にでも(仮に20行目だとして)
C20 =LEFT(C1,4)-(MID(C1,6,2)*1<4)&"年"&IF(MOD(MID(C1,6,2)-4,12)<6,"上期","下期")
※1行目は「2015/03粗利」のように、1桁の月はすべて「01」「02」などとなっていることが前提
C20とD20の2つのセルを選択して(D20セルには何も入力しないこと) 「2015/03粗利」の列までオートフィル (例ではDV列になっていますが、CG列では?)
これで粗利の列だけに「20**年*期」のデータが入りますから あとはSUMIFで集計すればいいと思います。
同一シートでの例ですが
A B 25 2011年下期粗利 26 2012年上期粗利
B25 =SUMIF($C$20:$CG$20,LEFT(A25,7),$C$11:$CG$11)
下にコピー
(JPN)
JPN様、回答ありがとうございます。 >(例ではDV列になっていますが、CG列では?) はい。CG列です m(_ _"m)ペコリ 質問用に短くしましたが、実際は月に3列づつ(売上・粗利・損益)と有りまして こちらの列の端を間違って書いてしまいました。
回答頂いた式をマクロコードの中にFormula=(回答頂いた式) で組み込み、さらにSUMIFで集計して、無事できました。 上期、下期の出し方が分かれば後はSUMIFでできるかなーとは思っていましたが 1行目の年月が日付型データじゃないのでMONTH関数とかで書けずにつまづいていました。 ありがとうございました。(もみじまんじゅう)
すみません、再びの質問です。 エクセル上に数式を入れて、やりたかった事の確認ができたので 解決済みを載せさせてもらったのですが、 いざ、マクロコードの中に入力したら Range("C20").Formula = "=LEFT(C1,4)-(MID(C1,6,2)*1<4)&"年"&IF(MOD(MID(C1,6,2)-4,12)<6, "上期","下期")" コンパイルエラー 修正候補:ステートメントの最後 と出まして "上期"のあたりで止まります。 どういう風に修正すればよいでしょうか?(もみじまんじゅう)
Range("C20").Formula = "=LEFT(C1,4)-(MID(C1,6,2)*1<4)&""年""&IF(MOD(MID(C1,6,2)-4,12)<6,""上期"",""下期"")"
文字のところ(年、上期、下期)をダブルクォテーションで2回囲んでいないので文字として認識されていないのではないでしょうか?
(毛虫通過中)
今、過去ログを見ていて年と上期、下期3箇所に付けてまわり 実行してみたらできましたので、急いで戻ってきましたら 毛虫さんからすでに回答して頂いておりました。 お騒がせしました。解決です。(もみじまんじゅう)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.