- 締切済み
エクセルのマクロについて
エクセルマクロについて教えてください 現在作ろうとしているマクロは下記の通り A列(発注日) B列(発注品名) M列(納入日) 20130822 A 20130826 20130822 B 20130826 20130823 C 20130827 20130823 D 20130827 20130824 E 20130827 20130825 F 20130828 ・ ・ ・ ・ ・ ・ 続く 続く 続く 毎週作成する資料の為、発注件数や納入日は作成のつど 変わってきます。 上記の内容でエクセルシートに表があった場合 N列 O列 20130826 2件 20130827 3件 20130828 1件 と表記したいのですが、どのようにマクロを作れば良いか 誰かご教授して頂けませんでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- akito0417
- ベストアンサー率20% (55/266)
実は既にマクロを組んでいまして 情報の抽出や行列の削除、並び替え等を マクロで行っています。 こうあるから既にあるのを参考にすれば出来ると思ったんですがねぇ。。。 打つのが面倒くさいという勝手な理由から参考ページだけ貼っておきます。 excel vbaの基本的な書き方等 http://excelvba.pc-users.net/ 行のデータ数取得方法 http://www.happy2-island.com/excelsmile/smile03/capter00702.shtml その他 既存のマクロを参考にしてください。 これでも不明な場合は、ググってください。(今回のに必要なのは2つのサイトでいいはず。)
- akito0417
- ベストアンサー率20% (55/266)
さっきのじゃループの条件がダメですね。 loop M列の未処理件数 <= 0 if 比較元の日付 = 比較元の日付のセル+1の値 then カウントアップ else N列のi番目.value = 比較元の日付 O列のi番目.value = カウントアップの結果 M列のみ処理件数 -= カウントアップの結果 カウントアップの結果を0クリア 比較元の日付 = 比較元の日付のセル + カウントアップの結果の値 iのカウントアップ end if next こんなんですかね。 ※日付が変わったら、M列のデータ数からカウントアップの結果を引けば残りの未処理数になるはずです。
- akito0417
- ベストアンサー率20% (55/266)
カテ違いの気もしますが、まあそれはおいといて。 M列のデータ数分繰り返して、一致する日付なら1ずつカウントアップしていけばいいと思います。 日付が変わったら、N列とO列に出力すればいいかと。 んで、比較元のデータ(M列)に次のデータをセットして、カウントアップした変数を0クリアすればいいかと。 loop M列のデータ数分 if 比較元の日付 = 比較元の日付のセル+1の値 then カウントアップ else N列のi番目.value = 比較元の日付 O列のi番目.value = カウントアップの結果 カウントアップの結果を0クリア 比較元の日付 = 比較元の日付のセル + カウントアップの結果の値 iのカウントアップ end if next こんなかんじで。 N列・O列用の添字変数を作れば出来るんじゃないですかね・・・。
お礼
ご回答有難うございます。 カテゴリちがいですかぁ・・・ 申し訳ないです。 回答内容で試してみます。 親切に教えて頂き助かります。
- FEX2053
- ベストアンサー率37% (7995/21381)
ピボットテーブルで行けますし、CountIf関数でもいけます。 http://hamachan.info/excel/piboto.html http://www3.tokai.or.jp/excel/kansu/countif.htm マクロを組む必要は初めからないと思うんですが・・・。
お礼
そうそうのご回答有難うございます。 実は既にマクロを組んでいまして 情報の抽出や行列の削除、並び替え等を マクロで行っています。 そのマクロに追加で組み込めればと思っているしだい です。 説明不足で申し訳ありません。
お礼
大変申し訳ありまえんが マクロが初心者の為 もう少し詳しく教えていただけませんでしょうか? ご回答の内容をどう記載して良いか分かりません(汗) レベルが低くて申し訳ないです。