- 締切済み
Excelで当月分、翌月以降分と抽出するには
今までAccessで行っていた商品の受注リストをExcelで 処理することに成りました。 今ExcelにはA3~P3がタイトル行として (1行目2行目には表のタイトル等が入っています。)、 顧客名、登録日、伝票番号、納期などが入っており、 その下の行からはそれぞれのデータがあり今後毎日増えていく予定です。 業務処理上、「納期」での当月分と翌月以降分の2種類の受注リスト を毎日O/Pする必要があります。オートフィルタで期間を指定したり、 フィルタオプションで納期の期間を指定して、またそれをマクロに登録 して・・・といろいろやってみているのですが今ひとつ効率がよくなく 毎月日付を指定しなおさなければならないという点で、 Excelが得意ではない人が操作するには少々複雑すぎるようです。 もし、具体的な日付(2007/01/01など)を使うことなく 当月や翌月以降の分を抽出できるマクロがあれば教えて下さい。 Accessでは納期の開始と終わりを入力するフォームを出させて 抽出していました。もし、Excelでもこのようなことができる のであれば、この方法でもかまいません。 なお、データはリンク貼付けされたデータなので、 抽出先はそのまま使用しているシートにと考えています。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- zap35
- ベストアンサー率44% (1383/3079)
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行まであるものとして式を作りましたが、行数が多いと再計算の時間がかかります。実際のデータ量にあわせて数字を直してください。
お礼
回答していただいてありがとうございます。 フィルタオプションを駆使してやるしかないのかと思い 検索条件を入れるセルに期間の始めと終わりが入力されている 二つのセルを参照させるという条件式がどうしてもうまくいかず 悪戦苦闘していました。 教えていただいた方法でもチャレンジしてみます!