dポイントプレゼントキャンペーン実施中!

今までAccessで行っていた商品の受注リストをExcelで
処理することに成りました。

今ExcelにはA3~P3がタイトル行として
(1行目2行目には表のタイトル等が入っています。)、
顧客名、登録日、伝票番号、納期などが入っており、
その下の行からはそれぞれのデータがあり今後毎日増えていく予定です。

業務処理上、「納期」での当月分と翌月以降分の2種類の受注リスト
を毎日O/Pする必要があります。オートフィルタで期間を指定したり、
フィルタオプションで納期の期間を指定して、またそれをマクロに登録
して・・・といろいろやってみているのですが今ひとつ効率がよくなく
毎月日付を指定しなおさなければならないという点で、
Excelが得意ではない人が操作するには少々複雑すぎるようです。

もし、具体的な日付(2007/01/01など)を使うことなく
当月や翌月以降の分を抽出できるマクロがあれば教えて下さい。
Accessでは納期の開始と終わりを入力するフォームを出させて
抽出していました。もし、Excelでもこのようなことができる
のであれば、この方法でもかまいません。

なお、データはリンク貼付けされたデータなので、
抽出先はそのまま使用しているシートにと考えています。

よろしくお願いいたします。

A 回答 (1件)

Sheet1のD列が当月のデータをSheet2の3行目以降に、翌月のデータをSheet3の3行目以降に表示させる


という処理でよいですか?

Sheet2のA3セルの式は
=IF(SUMPRODUCT((MONTH(Sheet1!$D$3:$D$1000)=MONTH(TODAY()))*1)>=ROW(A1),INDEX(Sheet1!A$1:A$1000,LARGE(INDEX((MONTH(Sheet1!$D$3:$D$1000)=MONTH(TODAY()))*ROW(Sheet1!$D$3:$D$1000),),SUMPRODUCT((MONTH(Sheet1!$D$3:$D$1000)=MONTH(TODAY()))*1)-ROW()+3)),"")

Sheet3のA3セルの式は
=IF(SUMPRODUCT((MONTH(Sheet1!$D$3:$D$1000)=MONTH(TODAY())+1)*1)>=ROW(A1),INDEX(Sheet1!A$1:A$1000,LARGE(INDEX((MONTH(Sheet1!$D$3:$D$1000)=MONTH(TODAY())+1)*ROW(Sheet1!$D$3:$D$1000),),SUMPRODUCT((MONTH(Sheet1!$D$3:$D$1000)=MONTH(TODAY())+1)*1)-ROW()+3)),"")

Sheet2、Sheet3のA3セルは右方向(P列まで)、および下方向にコピーして下さい。その後日付が入るセルは書式を日付に再設定します。

Sheet1の行は1000行まであるものとして式を作りましたが、行数が多いと再計算の時間がかかります。実際のデータ量にあわせて数字を直してください。
    • good
    • 0
この回答へのお礼

回答していただいてありがとうございます。
フィルタオプションを駆使してやるしかないのかと思い
検索条件を入れるセルに期間の始めと終わりが入力されている
二つのセルを参照させるという条件式がどうしてもうまくいかず
悪戦苦闘していました。

教えていただいた方法でもチャレンジしてみます!

お礼日時:2007/03/14 23:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!