- ベストアンサー
エクセルの関数で
商品の在庫表があり、 別のシートで現在あるぶんだけを表示して印刷したいのですが 商品数が多く見づらいので在庫が0個の商品の行をとばして 上詰めで表にして毎日印刷したいのですが 日付だけを変えると簡単に変わるように作るにはどうしたらよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 参考になるかどうか分かりませんが・・・ ↓の画像のように表を作ってみました。 Sheet1にデータがあり、Sheet2の日付欄に日付を入力すると その日付の在庫が0以外の商品名と説明を表示させるようにしています。 まずSheet1に作業列Eをつくり E2セル =IF(AND(C2=Sheet2!$B$1,Sheet1!D2<>0),ROW()-1,"") としてオートフィルで下へコピーしています。 又は、オートフィルのフィルハンドルが(+)マークでダブルクリック 次にSheet2の A4セル =IF(COUNT(Sheet1!$E$2:$E$10)>=ROW()-3,INDEX(Sheet1!$A$2:$A$10,SMALL(Sheet1!$E$2:$E$10,ROW()-3)),"") B4セル =IF(A4="","",VLOOKUP(A4,Sheet1!$A$2:$B$10,2,0)) としてA4・B4を範囲指定し、オートフィルでコピー(商品が多い場合はかなり下の方までコピーします) データの量によって数式は多少変わってきますので アレンジしてみてください。 これで希望に近い形にならないでしょうか? 尚、数式内にある「row()-○」というのは表の行位置によって引く数値が変わってきます ↓の画像の場合は、先ほどのマイナス値になります。 以上、参考になれば幸いですが、 的外れの回答ならごめんなさいね。m(__)m
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
No.1です。 フィルタ処理をマクロ記録すると、望みの物に近くなるかもしれません。 画像を見てください。 データが入っているのがSheet1、表示したいのがSheet2だとします。 Sheet2に検索条件のエリアを作ります。 A1に日付、例:2009/6/1 と入力 A2に条件、この場合 >=1 か >0 どちらでも良い Sheet2が選択された状態で、ここからマクロ記録します。 1.メニューの[データ]-[フィルタ]-[フィルタオプションの設定]を選択。 2.「フィルタオプションの設定」画面で、 2-1.「指定した範囲」を選択。 2-2.「リスト範囲」をSheet1の表全体を指定(画像の例ではSheet1!A1:F11) 2-3.「検索条件範囲」に先ほど作った検索条件のエリアを設定。 (画像の例ではA1:A2) 2-4.「抽出範囲」は、結果を貼り付けたいセルを設定(例:C1) 3.<OK>ボタンを押す マクロ記録を終了 これで、6/1に在庫が1以上の商品のリストが出来たと思います。 あとは、Sheet2!A1の日付を変えて、先ほど記録したマクロを実行して見てください。変更した日の在庫1以上の商品リストが出来たはずです。 なお、操作はExcel2003の物です。2007では多少異なるはずです。
お礼
ありがとうございます 大変参考になりました!
- mt2008
- ベストアンサー率52% (885/1701)
どんなシートなのか判りませんので具体的な事は何とも言えませんが、オートフィルタのオプションで、在庫が1以上の物だけ表示させてはいかがですか。
お礼
ありがとうございます 大変参考になりました!
補足
ちなみにシートの内容は A列に商品名がずらっとはいっていて B列には商品の簡単な説明がはいっています その後C列、D列・・・と頭には日付で その日朝に数えた在庫数がデータではいっています 別のシートに今在庫がある商品と商品の説明だけとばしたいのですが 日付を変えるだけで在庫がある商品だけ上詰めで表示できるように できないでしょうか?><
お礼
ありがとうございます 大変参考になりました!