エクセルで在庫表を作成し、検索結果表示セルのエラーと複数検索の問題、リンク設定の問題

このQ&Aのポイント
  • エクセルを使用して在庫表を作成し、検索結果表示セルがエラーになる問題と、複数検索ができない問題、リンク設定の問題について質問です。
  • 現在エクセル2007を使用して在庫表を作成していますが、行を挿入すると検索結果表示セルがエラーになってしまいます。
  • また、現状では1つの検索部品しか表示できず、複数検索ができるようにしたいです。さらに、検索結果後の在庫数の変更について、全ての表示結果にリンクを設定したいと思っています。
回答を見る
  • ベストアンサー

何度も同じような質問すみません。

何度も同じような質問すみません。 今回もエクセルで検索表作成中の問題です。 エクセルは2007を使用しています。 現在在庫を検索できるようにエクセルで在庫表を作成し(シート1)、在庫検索表を作成しています。(シート2) シート1のほうには在庫表だけなので、部品名、メーカー名、在庫保管場所、個数、備考、単価の順にA1セルからG1まで表記してA2からG1500までの間で各詳細を明記しています。 シート2には =INDEX('在庫管理'!B:B,SMALL(INDEX(('在庫管理'!$A$1:$A$1500<>$A$2)*10^4+ROW($1:$1500),),ROW(A1)))&"" 画像のようになっています。 の関数を入れて各項目を表示できるようにしています。 A2に検索したい型式を入れます。 この場合、近似検索のような形なのですが、 問題1 シート1に行を挿入するとシート2の検索結果表示セルがエラー表示になる。 問題2 現段階では1つしか検索できない。 ベストなのはAセルに検索部品を入れると複数検索できる。 現状は検索部品に関して、関連性のあるものを表示できるようになっています。 問題3 検索結果後、在庫数を変更する場合、ハイパーリンクを使用したものを使うのですが、 =IF(A2="","",HYPERLINK("#在庫管理!D"&MATCH(A2,'在庫管理'!$A$2:$A$1500,0)+1,A2&"の個数訂正")) を表示結果全てにリンクできるようにしたい。 上記の場合だと、ひとつしかリンクできない状態です。 シート2のG2に関数が入っています。 わかりづらい質問ですが、よろしくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! たぶん前回私が投稿したと思いますので・・・ 責任上ちょっと考えてみました。 あくまで一つの案です。 今回は「在庫管理Sheet」に作業用の列を設けています。 質問にある(1)に関してですが数式の範囲指定の関係でエラーになると思います。 質問文を読ませていただくと別Sheetに表示させているみたいなので、列すべてを範囲指定してはどうでしょうか? これでエラーにならないと思います。 尚、行挿入する場合行すべてを挿入するのではなく、↓の画像で在庫管理SheetのA~E列(データ及び数式が入っている行だけを範囲指定し、右クリック → 挿入 → 「下方向にシフト」を選択し、OK そして、E列のセルは数式が入りませんんので、挿入後「挿入オプション」が表示されるはずです。 ここで、「上と同じ数式を適用」を選択し、OK これで挿入行にも数式が入ります。 Sheet2のA1セルに検索したい文字(1文字でも構いません)を入力するとその文字を含むデータを表示するようにしています。 在庫管理Sheetの作業列E2セルに =IF(Sheet2!$A$1="","",IF(ISNUMBER(FIND(Sheet2!$A$1,A2)),ROW(),"")) という数式を入れ、オートフィルでずぃ~~~!っと下へコピーします。 データがなくても構いませんのでかなり下までコピーしておきます。 そして、Sheet2のA4セルに =IF(COUNT(在庫管理!E:E)<ROW(A1),"",INDEX(在庫管理!A:A,SMALL(在庫管理!E:E,ROW(A1)))) B4セルを =IF($A4="","",VLOOKUP($A4,在庫管理!$A:$D,5-COLUMN(A1),0)) として隣のC4セルまでコピー D4セルに =IF(A4="","",HYPERLINK("#在庫管理!D"&MATCH(A4,在庫管理!A:A,0),A4&"の個数訂正")) という数式を入れ、A4~D4セルを範囲指定し、D4セルのフィルハンドルで下へコピーします。 これもかなり下までコピーしておいても構いません。 これでA1セルに検索したいものを入力すると、その文字が含まれるデータがSheet2に表示されると思います。 以上、長々と書いてしまいましたが 参考になれば幸いです。 的外れならごめんなさいね。m(__)m

visual8969
質問者

お礼

すみません!!!! 私の凡ミスでした!!! まさに理想の検索ができました。 大変ありがとうございます!!!

visual8969
質問者

補足

またまた回答ありがとうございます。 やりたいことがまさにこのことですが!!!! まず、最終的なフォーマットまでは私で考えますが、シート2に関数を入れても何も表示されません。 どこがいけないのでしょうか?

その他の回答 (1)

  • MRT1452
  • ベストアンサー率42% (1392/3296)
回答No.2

問題とは直接関係無い意見なのですが、 後々さらに機能を付けて複雑化するようであれば、 式とセルコピーの力技でするのではなく、 きちんとVBAで汎用的に使えるプログラムを組んだほうが良いと思います。 データ数自体も1500行を超えている様ですし。

visual8969
質問者

お礼

回答ありがとうございます。 VBAは現在勉強中の中での作業内容なので、時期もあります 商品などではなく社内的に使用するのにつかうのですが、そこまで時間もないので、今回質問させていただきました。 時間があれば、VBAをある程度理解した上で行うつもりですが、状況が状況なので。

関連するQ&A

  • エクセル関数について

    エクセルの部品管理表を作成しています。 エクセルのシート1に入出庫表、シート2に、実在庫数表、シート3に発注表、シート4に部品名と作成しました。 シート1のA1セルに部品名、B1セルに部品サイズ、C1セルに日付、E1セルに、実在個数(箱数)、F1セルに実在個数(本数・入数)、G1セルに入庫、H1セルに出庫、と入力しました。 シート2にはA1セルに部品名、B1セルに部品サイズ、C1セルに期首在庫(箱数)、D1セルに期首在庫(本数・入数)、E1セルに実在個数(箱数)、F1セルに実在庫数(本数・入り数)と入力。 シート3のA1セルに部品名、B1セルに部品サイズ、C1セルに発注日、D1セルに発注数、E1セルに受取日(入庫日)、F1セルに受取個数(入庫数)、G1セルに受取本数(入庫本数・入数)と入力。 シート4のA1セルに部品名、B1セルに部品サイズ、と入力。(部品名は約200種類、部品名は同じでもサイズ違いの部品がある、部品コードは存在しない。) 教えて頂きたいことは、 ・在庫管理を行うにあたり、上記のようなファイルの作り方でいいのか?。(縦に表を使うのか、横など) ・付け足したほうがいい項目があるか。 ・シート1(入出庫表)には部品名と部品サイズは部品コードが無いため入力規則を使用し、日付、入庫数、出庫数は手入力で行うとし、実在個数(箱数)、のセルには関数を入れ値を表示したい。入庫数と、出庫数は箱数で入力するものとし、入庫があれば、実在個数(箱数)の値が増え、出庫があれば、実在個数(箱数)の値をへらしたい。実在庫数(本数・入数)は実際に入庫してみないと、1箱に何本入っているのか曖昧な為、大体の数値で設定した。(1箱に200本など) 実在個数(箱数)に値を表示するにはどのような関数を使えばいいのか。 ・シート2(実在庫表)に、部品名と部品サイズが約200行程度、入力されており、実在個数(箱数)、実在個数(本数・入数)を在庫一覧としたい。期首在庫(箱数)と期首在庫(本数・入数)は在庫を確認し、数字を入力済み。実在個数(本数・入数)は、大体の数値で設定済み。 部品名、サイズ毎に実在個数(箱数)に値を表示するにはどの様な関数を使えばよいのか。 説明不足でしたら申し訳ございません。 よろしくお願いします。

  • エクセル2007 入力データを転記する方法

    初心者的な質問になりますが、宜しくお願い致します。 現在、部署で在庫管理を明確化するためにエクセルに在庫の部品名、個数、どこで保管されているかを表にして管理しています。そこに、検索できるように関数で検索表を作成しました。 ここまで問題なくできたのですが、ここからやりたいことをどのように作成すればいいのかアドバイスをお願いしたく質問させて頂きます。 やりたいことは、あるセルに日付、部品名、使用内容という3つの項目を入力したら、別シートに転記するというものです。 具体的に記述すると、 sheet1のA2に日付、B2に部品名、C2に使用内容を記述します。 その内容をsheet2のA2に日付、B2に部品名、C3に使用内容を転記するのですが、 単純に=Sheet1!A2とすれば、表示されます。が!!! やりたいことはSheet1のA2、B2、C2に入力された内容を転記したときに、Sheet2では下に追加する方向にしたいのです。 例として書いてみると sheet1に A2に2010/11/22 B2にA C2にA社保守部品として使用 と記述します。 その内容をsheet2のA2に日付、B2に部品名、C2に使用内容を転記します。 次の日にまた在庫から部品を使用したとします。 上記と同じように A2に2010/11/23 B2にB C2にB社保守部品として使用 と記述したときに sheet2のA3、B3、C3に記述していくようにしたいと考えています。 上記で記述したように=sheet1!A2であれば、sheet1に表記が残っていれば、sheet2にも同じように表記されています。 しかし、sheet1のA2、B2、C2を消去してしまうと、同様にsheet2も消えてしまいます。 sheet2は一度記述したら内容を保持しててほしいのと、 書き込み内容があるごとにsheet2は追記していくようにしたい ということです。 この場合、マクロやVBAで作成するほうがいいのか?それとも関数でできてしまうのか? というところで悩んでいます。 私個人としては簡単にできるほうがいいのですが、VBAがまだ未熟なので、できれば関数でできるようならベストです。 VBAを勉強してやればいいのでは?と回答されてしまうとそれまでなのですが、現在業務上、在庫管理システムがそこまでしっかりされていないので、部署的にできるだけ早くパソコン上で在庫確認ができて、個数をしっかり管理したい。 そして、使用内容を明確にし、無駄を省きたいということを実践していきたいということで、今回質問させていただきました。 ちなみに検索内容などはすべて関数で作成しております。 どうぞ、ご教授のほど宜しくお願い致します。

  • 質問させてください。

    質問させてください。 画像のようにVLOOKUP関数で検索できるシート?のようなものを作成しているのですが、 部品名を入れると 個数と保管場所が出てくるのですが、この個数を書き変えた場合、反映できるようにしたいのです。 部品名がA1にあると想定していただけると助かります。 このとき、商品検索のネジと入力すると個数に3、保存箇所に第一工場と表示されます。 ここでやりたいのが、画像のようにデータ数が少ないのであれば、元データの数値をいじればいいのですが、元データ量が多い場合、できるのであれば、検索した時に書き換えられればベストなんです。 何かいい方法はないでしょうか? まぁ、エクセルの検索で調べて、そこのセル付近まで飛んでしまえば、いいのですが、これは最終手段にしたので、できれば関数などでやりたいと考えています。 以上、宜しくお願い致します。

  • エクセル VLOOKUPが反映されない

    エクセルに詳しい方、教えて下さい。 エクセルで部品の在庫管理をしているのですが、月に1度、外注さんからエクセルのデータで在庫表が送られてくるのですが、データ量が多い為、VLOOKUP関数を使って同じ部品があるかどうか(部品コードで検索しています。)検索をかけているのですが、外注さんのエクセルのセルの書式設定が違うのか、同じ部品コードがあっても「#N/A」になってしまうのですが、なぜでしょうか? また、セルの書式設定を「標準」にしても、「#N/A」←エラーになってしまって、どちらかの表に部品コードを入力し直すと反映されるのですが、データ量が多いので1個1個入力し直すと時間がかかってしまうので困っています。どなたかわかる方がいましたら宜しくお願いします。

  • EXCELを使った在庫自動消し込みについて

    EXCELを使った在庫自動消し込みについて 在庫表sheet 在庫番号   型番   個数     入庫日   11     A      50     1/10   12     B    15     1/12   13     B    25     2/11   14     A    31     3/15    出荷報告表sheet 型番   個数 出庫日 (引当在庫番号)  (個数)    (残数)   A    12      4/10   11        12   38   A    55      4/15   11・14    38・17     14   B    38      4/16  ()内に回答を表示したいのですが、教えてください。

  • エクセルで同じワークシート内でデーターを同期したい

    エクセル初心者です。 エクセル2007で同じワークシート内のデーターを同期させる方法ってあるのでしょうか? C5セルに数字の5を入力するとC10セルとC20セルも自動的に5と表示させ、C10に数字の3を入力するとC5とC20セルに3を表示みたいな感じです。 私の考えでは同期させたいセルに【=】を打ち込み入力するセルを限定させる方法しか思いつきません。 別のワークシートの同期の方法は調べると出てくるのですが、同じワークシート内の方法がヒットしませんでした。 機械部品の在庫管理表を作成したいです。 分かりにくい説明で申し訳ありません。

  • エクセルについての質問です。こんなことはできるのでしょうか?

    エクセルについての質問です。こんなことはできるのでしょうか? まず「データ」という名前のシートのA列に動詞,名詞など品詞が入っています。B列に高1,高2など学年が入っています。C列に数字(2や3など)が入っています。D列に英単語が入っています。E列に日本語訳が入っています。F列は作業列でF2のセルに=IF(AND(A2=問題作成!$A$2,B2=問題作成!$B$2,AND(C2>=問題作成!$C$2,C2<=問題作成!$D$2)),ROW(A1),"")が入っており,以下のセルに数式がコピーされています。 次に「問題作成」というシートのA5セルに=IF(COUNT(データ!$F$2:$F$2294)<ROW(A1),"",INDEX(データ!D$2:D$2294,SMALL(データ!$F$2:$F$2294,ROW(A1))))が入っており,以下のセルに数式がコピーされています。B5セルには=IF(COUNT(データ!$F$2:$F$2294)<ROW(B1),"",INDEX(データ!E$2:E$2294,SMALL(データ!$F$2:$F$2294,ROW(B1))))が入っており,以下のセルに数式がコピーされています。 「問題作成」のシートのA2セルは動詞や名詞など品詞が選択できるようになっています。B2セルは学年が選択できるようになっています。 この後,C2セルにWordでページを指定して印刷するときのように,2-3,6,8のように入力すると,「データ」のシートからそのページに該当する単語のみを「問題作成」のA5,B5以下に引っ張ってくるようなことはできますでしょうか? また,入っている数式に問題があれば,お教え願いたいのですが。 よろしくお願いいたします。

  • VBAによる在庫管理について

    Sheet1のA1セルからE1セルまで「品名」、「単価」、「単位」、「在庫数量」、「備考欄」が記入されております。10000品目の在庫管理に使用しております。 Sheet2においてinputboxを使用し品名を入れるとSheet1のA1セルを起点とした表のA列「品名」から部分一致で検索し、検索結果のA列からE列までのデータをSheet3に表示するという構文を教えていただけると幸いです。 宜しくお願い致します。

  • ある条件の時、対象のセルの色を付ける

    私はサイロ会社に勤務しており、サイロの在庫管理について効率的に実施したいと考え質問いたします。 在庫表をエクセルにて作成しました。1つのブックにサイロビンごとの在庫表とそれをマップ化したシート2種類作成してあります。マップ化したシートには、品種名や在庫数量などをサイロビンごとの在庫表のシートから引用しています。 質問事項 (1)マップ表シートの品名セルに、サイロビンごとの在庫表のシートの中で、品名を表示するセルが『とうもろこし』だった場合、黄色にする。というマクロを組みたい場合はどうしたらよいか? (2)(1)へ、複数条件で、『とうもろこし』以外の品名であった場合もそれ相当の色を付けるマクロ文は? (3)(1)、(2)の条件をすべてのサイロビンに反映させるには? 以上のマクロの組み方を教えてください。

  • エクセル関数の使い方について

    エクセルで在庫管理表を作成していますが、在庫数が0場合は印刷しないように隣りに印刷用の表を作成しています。 関数としてINDEX関数など使用しデータを検索、印刷用表に表示するようにしていますがうまくいきません。  サンプルファィルを添付しますのでどこに問題があるのか教えてください。

専門家に質問してみよう