• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:関数での在庫管理表を作成しようとしているのですが見当がつかず困ってます)

関数での在庫管理表を作成する方法

このQ&Aのポイント
  • 関数を使用して在庫管理表を作成する方法について教えてください。エクセルで在庫リストを作成していますが、複数条件の表示に困っています。
  • エクセルのSheet2に在庫リストを作成し、Sheet1で複数条件での検索結果を表示したいです。具体的な例を教えてください。
  • また、数値の範囲での検索結果も取得したいです。例えば、数値1が0.1から0.19の間の商品を表示させる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

お示しのデータが次のようになっているとします。 シート1ではC3にNo、D3に製品名、C5に材料1、D5に材料2、C7に数値1、D7に数値2の文字があり検索に使用するデータはそれぞれの項目の1行下の行に入力するものとします。 A14セルからF14セルにはNoから数値2までの項目名が並んでいるとして、検索の結果はそれ以下の行に表示されるとします。 シート2ではA4セルからF4セルまでに項目名が並び、それ以降の行にデータが入力されているとします。 なお、検索に使用する数値1のデータおよび数値2のデータについては、すなわち、C8セルやD8セルに入力するデータについては、ある範囲を指定して検索する場合には0.9-0.19などと半角英数文字で入力することとします。 非常に操作が複雑になりますので作業列や作業のセルを用意して対応することとします。 シート1のF3セルには次の式を入力します。 =IF(Sheet1!D4="","",D4&"/")&IF(Sheet1!C6="","",C6&"/")&IF(Sheet1!D6="","",D6&"/")&IF(Sheet1!C8="","",IF(ISERROR(FIND("-",C8)),C8&"/","OK/"))&IF(Sheet1!D8="","",IF(ISERROR(FIND("-",D8)),D8,"OK")) A15セルには次の式を入力し、F15セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(COUNTIF(Sheet2!$J$5:$J$1000,ROW(A1))=0,A$14=""),"",INDEX(Sheet2!$A$5:$F$1000,MATCH(ROW(A1),Sheet2!$J$5:$J$1000,0),COLUMN(A1))) シート2についてはG5セルに次の式を入力しH5セルまでオートフィルドラッグしたのちに、下方にもオートフィルドラッグします。 =IF(OR($A5="",Sheet1!C$8=""),"",IF(ISERROR(FIND("-",Sheet1!C$8)),"",IF(AND(E5>=VALUE(LEFT(Sheet1!C$8,FIND("-",Sheet1!C$8)-1)),E5<=VALUE(MID(Sheet1!C$8,FIND("-",Sheet1!C$8) +1,10))),"OK","NG"))) これらの列は数値1や数値2のデータについて範囲指定の検索があった時に使用するものです。 I5セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A5="","",IF(Sheet1!$D$4="","",$B5&"/")&IF(Sheet1!$C$6="","",$C5&"/")&IF(Sheet1!$D$6="","",$D5&"/")&IF(Sheet1!$C$8="","",IF(G5="",$E5&"/",G5&"/"))&IF(Sheet1!$D$8="","",IF(H5="",$F5,H5))) これらの操作が終わった後で検索のデータを入力すれば、それらのデータを満足するデータが15行目以降に表示されます。 式が複雑ですので、必ずこちらが指定した条件で表を作成し、一度検証してから実際のデータに適応してください。

aria1234
質問者

お礼

詳細な説明ありがとうございます。 現在は帰宅しているので、明日朝からやってみたいと思います。 助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

大変失礼いたしました。 シート2のJ2セルに入力する式が間違っていました。次の式をJ2セルに入力し下方にオートフィルドラッグしてください。 =IF(Sheet1!$F$3="","",IF(I5=Sheet1!$F$3,MAX(J$4:J4)+1,""))

aria1234
質問者

お礼

できました。 これから応用して、本データを入れていこうと思います。 いろいろありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答2では A15セルには次の式を入力し、F15セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(COUNTIF(Sheet2!$J$5:$J$1000,ROW(A1))=0,A$14=""),"",INDEX(Sheet2!$A$5:$F$1000,MATCH(ROW(A1),Sheet2!$J$5:$J$1000,0),COLUMN(A1))) とのことでF15までオートフィルドラッグしたのちにA15からF15セルまでを選択してF15セルの右下はじの■をクリックして下方の行にドラッグするのです。そのことによって100行までの好きな行だけ式がコピーし貼り付けられますので、該当するデータがたくさんあれば下の行に表示されることになりますね。 A14からF14セルまでの間には項目名を入れるのですよ。

aria1234
質問者

補足

すいません、解答4のところで15行以降への表示がされないという答えがあったにも関わらず、変な補足の書き方をしてしまいました。 解答4で仰られたとおりに、Sheet2のJ5セルに入力後下方にオートフィルを行いました。Sheet1のA15セルのオートフィルは行ってます。 その状態で検索を行うと、複数の条件の答えのもの「製品名:XXX」を入れると J5セル、J6セル には 1 と帰ってきます。 ここでチェックされたものがその後Sheet1の15以降に行くということですよね、しかし、表示される結果は15行の1行のみなのです。 他の検索も同様です。いい忘れましたが当方Office2003です。 バージョンによってできない可能性もあるのでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答2で重要なことが抜けていました。 シート2のJ5セルには次の式を入力し下方にオートフィルドラッグします。 =IF(Sheet1!$F$3="","",IF(I5=Sheet1!$F$3,MAX(I$4:I4)+1,"")) この式が入力されていないとシート1で15行以降への該当行の表示ができません。

aria1234
質問者

補足

すべて同様のものを作成し、検証を行ってみましたが、 製品名:XXX と入れたら、14行の所にXXXに該当するもので  No  製品名  材料1  材料2  数値1  数値2 0001  XXX    PPP   VVV   0.152  12.3 0002  XXX    MMM   VVV   0.152  12.3 を複数表示というものがうまくできませんでした。 で、よく考えてみるとこの表記では、15行のみに表示させる形の書き方ですね。 15行と16行に渡って複数表示させたいのですができるのでしょうか? たとえば「製品名」では15、16行に2つ「材料1」で「PPP」と検索したら15,16、17行の3つに出てくるような形です。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2で数値の範囲を入力する例で0.9-0.19のように書きましたが0.1-0.19の誤りです。-の前にある数値はーの後にある数値よりも小さいことが必要です。

aria1234
質問者

お礼

補足ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • ksys2009
  • ベストアンサー率33% (1/3)
回答No.1

質問の回答とは異なりますが、オートフィルタ機能を使用してはどうでしょうか。

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm
aria1234
質問者

お礼

それも視野に入れましたが、今回のデータの応用で他の作業にも使えそうな事が有りましたので、あえて関数でと投稿しました。 回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで構成表の作成

    会社で急遽棚卸表をつくることになり、マクロや関数などほとんど触ったことがなかったので困っています。 どなたか教えてください。 まずシート1には製品リストが表記されています シート1 製品番号 製品名 在庫数 ○○○   ○○    ○○ ×××   ××    ×× △△△   △△    △△ シート3以降にはその製品を作るための材料が展開されています シート3以降のシート名については製品番号になっています シート3~(製品番号) 材料番号 材料名  使用数 ○○○   ○○    ○○ ×××   ××    ×× △△△   △△    △△ 上記の状態からシート1の在庫数に数を入力すると シート3以降の構成表よりその製品に使われる材料の使用数を導き出し その材料が実際に何個あるかをシート2へとまとめたい。 また製品毎に同じ材料を使用している場合については 合算して表記したい。 自分で試してみましたが 締切が押し迫り、どなたかのお力添えをいただきたいです。 プログラムの理解度はVBはないですがPerl、PHPについては触ったことがある程度です。 マクロでもなんでも結構ですのでご教授願います。

  • SQL文を教えてください

    いつもお世話になっております。 ウェブサイトを作っているのですが、以下のようなデータを表示するのに良いSQL文が分からず悩んでいます。 ID | DATE     | DATA --+----------+----- 1 | 2010-11-11 | aaa 2 | 2010-11-11 | bbb 1 | 2010-11-10 | ccc 3 | 2010-11-12 | ddd 3 | 2010-11-11 | eee 4 | 2010-11-10 | fff 1 | 2010-11-12 | ggg 2 | 2010-11-12 | hhh 1 | 2010-11-12 | iii 3 | 2010-11-12 | jjj 1 | 2010-11-09 | kkk 1 | 2010-11-09 | lll 1 | 2010-11-08 | mmm 1 | 2010-11-08 | nnn 1 | 2010-11-07 | ooo 1 | 2010-11-07 | ppp 1 | 2010-11-06 | qqq 3 | 2010-11-05 | rrr 2 | 2010-11-13 | sss 5 | 2010-11-08 | ttt 6 | 2010-11-05 | uuu 7 | 2010-11-04 | vvv 8 | 2010-11-03 | www 9 | 2010-11-02 | xxx 10| 2010-11-01 | yyy 11| 2010-10-30 | zzz 上のようなテーブルから、各IDを10件まで日付順に取り出すことはできるでしょうか? 具体的には、1つのページに以下のように表示したいのです。 2 | 2010-11-13 | sss 2 | 2010-11-11 | bbb 1 | 2010-11-12 | ggg 1 | 2010-11-11 | aaa 1 | 2010-11-10 | ccc 1 | 2010-11-12 | iii 1 | 2010-11-09 | kkk 1 | 2010-11-09 | lll 1 | 2010-11-08 | mmm 1 | 2010-11-08 | nnn 1 | 2010-11-07 | ooo 1 | 2010-11-07 | ppp 3 | 2010-11-12 | ddd 3 | 2010-11-11 | eee 3 | 2010-11-05 | rrr 4 | 2010-11-10 | fff 5 | 2010-11-08 | ttt 6 | 2010-11-05 | uuu 7 | 2010-11-04 | vvv 8 | 2010-11-03 | www 9 | 2010-11-02 | xxx 10| 2010-11-01 | yyy ・各IDのうち、最も新しい日付のものが上にくる ・表示するIDは10件まで ・表示はIDごとにまとめて行う ・一つのIDに属するデータは10件までしか取り出さない 上記のことを実現する方法をご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • エクセルでの表作成

    エクセルで表を作成するとします。ある製品の番号、数量を入力します。その製品番号、数量を、他の表(シート)に反映させます。 ある製品の数量が0になったら、反映させた表から、その製品の番号が入力されているセルを削除、又は、数値が消えて、下のセルに入力された数値が上のセルに繰り上がって、表示される。 こんな事、出来ますか?

  • Vlookupで作った表の作成

    初めての投稿で要領が得られないお願いですが、回答お願いします。 Sheet1のAに1~100のナンバーがふられた販売データがあります。 A   B    C    D     E     F    G    NO  課名  担当名 注文No. 顧客名  売上  製品   1 一営  山田  X1230  松下  10,000円  冷蔵庫  2 二営  鈴木  Y3450  日立  20,000円  テレビ 3 三営  加藤  W5670  東芝   5,000円  洗濯機 VLOOKUPにより、Sheet2にNOに連動した帳票を作ります。 NO(1) 課名   担当名   オーダNo.   一営   山田    X1230  顧客名  売上    製品 松下   10,000円  冷蔵庫 このNOに連動したsheet2のNO1~100の帳票をsheet名1からsheet名100を作るマクロを教えてください。このとき、VLOOKUPのの関連式は値としたい。

  • 関数について教えて下さい。

    エクセル2003を使用してます。 商品名と材料名と参照して、関数を使用して商品名の個数を 出したいのですが、やり方がわかりません。 (現在の表内容) シート1 「A2:D9」  に商品名を入力する表があります。 シート1 「F2:I9」  材料の個数を表示する表があります。 シート2 「A2:B10」 に商品一覧表があります。 (例) シート1「F2」のセルの場合。 「F列」に V と言う材料名が入ってます。 「A2:D2」に ● ■ → ●  と言う商品名が入力されました。 シート2の商品一覧表に ● の場合 V の材料を使用するとなってます。 Fの列は、Vなので●の数を入れたいので、 「F2」のセルには2個と関数を使用して入れたいです。 このような事、可能でしょうか? 教えて頂けませんか? よろしくお願いします。

  • エクセル2007で在庫管理

    現在エクセルを使って在庫管理のシートを作成しておりますが、 シート2枚で構成させようと思ってます。 シート1の方に商品番号や商品名どの棚(棚番号)に置いてあるかを表示してあります。 このシートに降順又は、昇順フィルターつけてます。 シート2に(棚番号付きの)棚のレイアウトを作成しました。 ここからが問題です。 もしシート2にシート1の商品番号をリンクさせたとします。 もちろん自分で商品番号を打ち込んでリンクされた事を確認しました。 ところがシート1の降順フィルターを使った時に(セル全体が動いた時)、シート2にリンクしたはずの商品番号が0になってしまいます。と言うことは、中身ではなくセル自体にリンクされてしまったということになるのでしょうか。 もしこのリンクがセル自体にではなく、セルの中身(商品番号)だけをリンクすれば問題なくフィルター使うことが出来るのでしょうか? もしご存知の方がいましたら、ご教授お願いします。

  • エクセルでの在庫管理。

    仕事で使う、在庫管理のソフトをダウンロードしました。 週別の在庫数(シート1が、第1週・シート2が第2週・・・という感じで)を入力すると、自動で月別の在庫数を管理したり、グラフが表示できたりするものです。 とても便利なんですが、在庫品の商品名の入力枠が足らなくて(シート1に商品名を入力すると、すべてのシートにデータが反映されるしくみ)製品の種類ごとに名前を変えて保存しています。 簡単に入力枠を増やすにはどうしたら良いですか? パソコンは独学で学んできたので、専門知識がありません。 セルを挿入して、数式をコピーするだけでは次のシートに反映されませんし、下手なことをして数式が壊れたりするのが怖くて・・・何も手出しできない状態です。 専門書を買ってみたのですが、目次から知りたい項目を探そうにも「何がわからないのかが、わからない」という最悪の状況なのです。 どんな小さなことでも良いので、アドバイスいただけませんか?

  • 関数式を組み立ててください。

    下記のような場合のExcelの関数式を組み立ててください。 sheet1のシート名を「イロハ」 sheet2のシート名を「アイウ」とします。 今、「イロハ」のセル[a1]に数値[10,000]が入力されています。 そして、2011.07.01日が到来した時以降、「アイウ」のセル[a1]に「イロハ」のセル[a1]の数値が表示されるようにしたい。(2011.06.30以前は空白のまま) 初心者です、具体的にお願いします。

  • Excel関数について

    if関数をいれて、参照元が空白なら空白とし、 参照元に数値が入っていれば前年度比を出すようにしたいです。 参照元が空白であるのに、数値が返ってくるため、 ご質問させていただきます🙇🏻‍♀️ まず、シートの構成は以下の通りとなっています。 ・年度ごとに分けた売上集計表と前年度比を出したいシートがあります。 ①シート名:2022年度 ②シート名:2021年度 ③シート名:前年度比 ・フォーマットは全て同じの為、前年度比を出すための参照したいセルはそれぞれシートは別ですが、同じセルとなります。 また、前年度比を出したいセルも同じセルです。 ・前年度比を出すためのシートは、年度を可変とするため、シート名をR1セルとR2セルへ入れるようにしています。 R1セル:前年度のシート名を入力 R2セル:今年度のシート名を入力 そこで、シート①のD6セルに売上を入力したら、 シート③のD6セルへ前年度比を表示させたく、 以下の数式を入力しましたが、参照元が空白であるのに、 数値が返ってきてしまいました。 =if("'"&$R$2&"'!D"&ROW(D6)="","",INDIRECT("'"& R$2&"'!D"&ROW(D6)-INDIRECT("'"& R$1&"'!D"&ROW(D6)),"") 数式の誤っている点や対処策等ご教示いただければ幸いです! よろしくお願いいたします。

  • VLOOKUP関数 列番号の設定の仕方教えて下さい

    VLOOKUP関数の列番号を 1、2、とかではなく、 計算して列番号を設定することはできますか? シート2 に入っているデータを参照して シート1 に関数をいれて、表示させたいと思っています。 シート2 データは 3行目に、項目(品名、(1)材料名、(2)数量、(2)材料名、(2)数量、...、(10)材料名、(10)数量) A列、 B列、 C列、 D列、 E列、...、 M列、 N列 クッキー、小麦粉、100、卵、1、...、砂糖、20 クラッカー、小麦粉、100、米粉、10、...、りんご、0.2 が入っていて、4行目から100行目くらいまでデータがはいっています。 シート1 の セルA5に品名を入力すると、 シート2の(1)材料名がセルA6に、 (1)数量がセルB6に、 (2)材料名がセルA7に、 (2)数量がセルB7に、 ... (10)材料名がセルA15に、 (10)数量がセルB15に、 入るように作りたいのですが、VLOOKUPの列番号を COLUMNやINDEXなど試してみましたが、エラーばかりで うまくできません...VLOOKUPでは無理なのでしょうか? どなたか詳しい方教えてください。よろしくお願いします・

専門家に質問してみよう