• 締切済み

エクセルの抽出機能が使えなくて困っています…!

エクセル(2007)の抽出機能が使いこなせずに困っています…! 現在、自宅の保存食品の在庫管理表を製作しています。 その管理表の製作に伴い、賞味期限を対象とした抽出機能を つけたいと考えています。 そこで、PCのシステムの日付から一週間以内に賞味期限がくる 食品を別のシートに切り取り、あるいはコピーして一覧にしたいと 考えています。 しかし、PCのシステムの日付を利用した抽出の方法がわかりません… どうか助けてください…! マクロやVBAを使用する形でもかまいません! ただ、抽出の条件として今日の日付を毎回手入力で行うことは避けたいです。 どうか、よろしくお願いします…! 例)画像の場合、PCの日付が2011年4月15日だった時、   4月16日から4月22日までの米のリストを抽出、ということがしたいです。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

>エクセル(2007)の抽出機能が使いこなせずに困っています  ⇒「フィルタオプションの設定」から抽出方法ですが如何でしょうか。  (1)画像シートをSheet1、抽出シートをSheet2として、Sheet1のI1~J1は未入力、I2に=A2="米"、J2に=E2>today()、K2に=E2<=today()+7  (2)Sheet2のA1を選択→データタブの詳細設定→「指定した範囲」を選択、リスト範囲欄をクリックし、マウスでSheet1→A:Fを選択、検索条件範囲欄をクリック→Sheet1→I1:K2を選択、抽出範囲欄をクリックしマウスでA1を選択→OK  (3)この(2)操作をマクロ記録しておくと以後の操作が簡単になります。 エクセル関連について参照したURLを添付しますので参考にして下さい

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/
xxxHATENAxxx
質問者

お礼

回答ありがとうございます! とてもスマートなやり方ですね! 目から鱗がおちました!! ぜひ採用させてもらいます! ありがとうございました\(^0^)/

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、元のデーターの表が存在しているシートがSheet1で、抽出したデーターをSheet2に表示するものとします。  まず、Sheet2にSheet1と同じ型式の表(項目名と罫線のみで、データーは未入力)を作成して下さい。  次に、Sheet2のE2セルに次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNTIF(Sheet1!$E:$E,"<="&TODAY()+7),"",SMALL(Sheet1!$E:$E,ROWS($2:2)))  次に、Sheet2のF2セルに次の数式を入力して下さい。 =IF($E2="","",INDEX(Sheet1!F:F,SUMPRODUCT(ROW(Sheet1!$E$1:INDEX(Sheet1!$E:$E,MATCH(9^9,Sheet1!$E:$E)))*(Sheet1!$E$1:INDEX(Sheet1!$E:$E,MATCH(9^9,Sheet1!$E:$E))=$E2)*(COUNTIF(Sheet1!$E$1:INDEX(Sheet1!$E:$E,ROW(Sheet1!$E$1:INDEX(Sheet1!$E:$E,MATCH(9^9,Sheet1!$E:$E)))),$E2)=COUNTIF($E$1:$E2,$E2)))))  次に、Sheet2のF2セルをコピーして、Sheet2のA2~D2の範囲に貼り付けて下さい。  次に、Sheet2のC2セルとE2セルのセルの書式設定を、[日付]にして下さい。  次に、Sheet2のA2~F2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  以上です。

xxxHATENAxxx
質問者

お礼

回答ありがとうございます! 一つのセルにここまで長い数式を入力した経験が なかったのでびっくりしましたが上手くいきました! とても助かりました(^^)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

Sub macro1()  with worksheets("Sheet1")   .autofiltermode = false   .range("E:E").numberformatlocal = "yyyy/m/d"   .range("E:E").autoFilter field:=1, criteria1:=">=" & format(date + 1, "yyyy/m/d"), _    operator:=xland, criteria2:="<=" & format(date + 7, "yyyy/m/d")   worksheets("Sheet2").cells.clearcontents   .range("E1").currentregion.copy destination:=worksheets("Sheet2").range("A1")   .autofiltermode = false  end with End Sub

xxxHATENAxxx
質問者

お礼

回答ありがとうございます! こちらはVBAですよね、現在勉強している最中なので とても参考になりました(^^)

関連するQ&A

  • エクセル抽出機能

    エクセル抽出機能のフィルタオプション設定を使って、データを抽出しようとしています。抽出する内容は日付です。 抽出するデータには2003/09/12(書式設定で表示されると、2003年9月12日となっています)となっていますが、2003/09の月で抽出したいと思っています。 しかし、”日”まで認識してしまって9月分全てを抽出することが出来ません。何か良い方法はありますか?**を入れると、その文字全てを含むデータを抽出してくれるとありますが、日付の場合はそれを入れると書式設定が文字で認識してしまい、日付として成立せずまたそれも出来ません。 どなたか教えてください。

  • 在庫日付順に先入先出しをエクセルで管理できるのでしょうか?

    食品の賞味期限を管理しようとしています。 在庫日付順に先入先出しをエクセルで管理できるのでしょうか? 例えば、 材料名  ロットNo.  賞味期限  在庫 みかん  123     2008/3/1   10 みかん  124     2008/3/20   15 バナナ  111     2008/4/10   20 としておいて、 みかん  20出荷する場合、 みかん  124     2008/3/20   5 に エクセルで管理することできるのでしょうか? ごぞんじな方教えて頂けませんでしょうか? 宜しくお願い致します。

  • Excelで出荷・在庫管理の方法

    仕事でExcelで商品の出荷と在庫の管理表を作るように言われたのですが、次のような場合の関数の書き方を教えてください。 賞味期限がある商品で、出荷指示が出た場合に賞味期限の古い方から自動的に在庫を減らしたいです。 例えば、2011/12/10賞味期限のオレンジジュースが200個、2011/12/25賞味期限のが500個あったとして、300個出荷する時に12/10のから200個、足りない100個を12/25賞味期限のから自動的に差し引かれるようにしたいのです。 [セルA1]オレンジジュース、[B1]2011/12/10(賞味期限)、[C1]200(在庫) [B2]2011/12/25、[C2]500 IF関数とか考えてみたのですがなかなかうまくいかなくて… ちなみにExcel2007です。 よろしくお願いしますm(__)m

  • エクセルのデータ抽出で。

    エクセルで以下のようのな、 3列を持つ表があるとします。 日付    コード   名称 20090901  001    Aさん 20090904  002    Aさん 20090905  003    Aさん 20090901  023    Bさん 20090902  024    Bさん 20090903  025    Bさん ----------------------------------------- まず名称でデータを絞り、 更に一番新しい日付のデータのみ取得したいのですが。 20090905  003    Aさん 20090903  025    Bさん VBAでもなんでもよいので、 抽出の仕方があればお願いします。

  • EXCEL『SUMIF???』

    初投稿です。どうぞよろしくお願いします。さて、賞味期限管理で、今日から一ヶ月以内に賞味期限を迎える個数の合計を返したいのですが、SUMIFで対応できず、困り果てています。どうかお知恵を拝借させてください。     A          B (1)賞味期限       在庫数   (2)11月30日        4 (3)12月15日        1 (4)12月20日        1 (5)12月26日        2  ・  ・ (10)=TODAY() (11)=EDATE(A10,1) 以上よろしくお願いいたします。      

  • EXCELで表を抽出する

    ・A列に日付、B列に件名を入力した表があります。 ・A列の日付は、ランダムに、繰り返し現れます。 この表から、たとえば7月だけの、A列に日付、B列に件名の表を抽出する場合、 手動でする場合は、最初の表を日付順にソートし、黙視で7月分をコピーし、別表に貼り付ける、というやり方でできますが、 数式や関数で自動的にやる方法はないでしょうか? マクロが必要になりますか?

  • エクセルで期限管理表作成

    エクセルで期限管理表を作りたいのですが、いかんせん初心者なのでなかなか進みません。本を読みながらしていますが。。 私は、賞味期限の管理をしています。今まで、納品されたものはすべて日付ごとに分けたノートに、賞味期限を記入していました。商品ごとに割引するタイミングが違うために、漏れが出ています。 (例)商品a  製造日より1年が賞味期限なので14日前より30パーセントオフ   商品b 製造日より半年が賞味期限なので3か月前より30パーセントオフ    そこで、エクセルを使って管理した方が効率がいいかなと考えたんですが、、なかなか進みません。 作りたい表は、以下です。 製造日より、1年。2年。などにシートを分けて管理。←入力しやすいかなと。 設定した期日の前になると点滅。 賞味期限がちかくなると、赤色。 期日が切れると、違う色に。 フリーソフトでもいいので、教えて頂けないでしょうか?

  • excelのVBAを利用し検索抽出を行う方法

    検索というよりデータの抽出の方が正しいかもしれません。 現在、顧客情報を種類別でシートに分けて表で管理しています。 情報には名前などの文字列、日付、時間などが含まれます。 この表の形式を説明すると、 ・列 … B~AI まで項目があります。(A列は使用していません) ・行 … 1行で1つのデータとなります。 ・行数…シートにより行数は異なります。 この形式の表が全部で14シートあります。 このシートのB列に「未・済」のステータスがあるのですが、 すべてのシートの「未」である行のデータを"Sheet1"に抽出させたいと考えています。 さらに、抽出されたデータの"D"列の日付にソートされるようにしたいのですが、 説明がわかりづらかったら申し訳ありません。 VBA初心者のためご教授いただければと思います。 よろしくお願いします。

  • エクセルの引算

    エクセルの引き算でお聞きしたいの ですが、、、 倉庫にある食品の在庫の数を賞味期 限日の早い順で倉庫から出していっ て残りの数を出していきたいのです が、 A1が商品を出した数、A2に在庫数 、A3に在庫にある賞味期限日、A4 に新しく入って来た商品の数、A5に 賞味期限と入れます。 1 2 3 4 5 A100 50 6/1 100 8/1 A2の間にもう一つ列を入れて(A1-A2)と入れると-50になってしまい希 望とすれば-になった数を次に仕入れ た数から引いていって欲しいのです が、そんな計算式みたいのを知って いたら教えていただけないでしょう か? 希望を言うと-50はゼロまたは空欄に したいのですが。 よろしくお願いします。

  • 賞味の管理表について

    私は会社で材料を調達する事務係をしています。 材料の管理を昨年からすることになりました。 現在、材料の管理はロットNo.と賞味期限と在庫数をエクセルで簡単な表で管理しており、現場が持ち出す時(週1ペース)は、在庫数を現場が入力しています。月末の棚卸も現場が入力します。 表は 材料名  ロットNo.  賞味期限  在庫    ロットNo. 賞味期限 在庫 みかん  123     2008/3/1   10      124   2008/3/20   15  バナナ  111    2008/4/10   20 という表で、材料毎に表が下へ延びます。同じ材料でロットNo.が違う場合は横に延びます。 この表を現場が入力しているのですが、種類が多くなったので表が縦長くなってしまい、入力間違いなどのトラブルがあったりします。 私も気をつけて見てはいるのですが・・・ ソフトを導入せずに管理するとなれば、エクセルが一番無難でしょうか・・・?マクロは出来ませんが、詳しい人がいますのでマクロでも大丈夫ですが、どういう表が適しているか第三者の意見を聞いてみたいです。