• 締切済み

Excelの複雑な検索条件

VBAやワークシート関数、何を使ってもかまいません。 一つの品番で厚さが最小0.01~最大1.0まであり、この厚さによって使う原料の種類や量が違い、検索するのに毎回目で資料の中から探すのが大変なので、Excelを使って楽にデータが反映されるようにしたいです。 品番によってですが、厚さによって最大3つの区画に分かれます。 ですが、区画がまったくないものや区画が2つのものもあります。 今回このデータから抽出したいのは、メインとなる同種の原料なのですが、一品番につき最大3種類あります。 この原料は全部で10種程度です。 またその原料の使用量も併せて抽出できるようにしたいです。 以下例です。 品番    厚さ          原料名    使用量(kg) 1000   0.01~0.35      AT-100    102 1000   0.01~0.35      BT-100    80  1000   0.36~0.74      AT-100    110 1000   0.36~0.74      S-100     50 1000   0.36~0.74      CT-100    23 1000   0.75以上       BT-100    150 1000   0.75以上       CT-100    110 品番別のデータはこんな感じで品番はおおよそ50程度あります。上にも書きましたが厚さ分けは品番によりまちまちです。 ●品番1000  厚さ0.5  としたときに原料は何が必要で、その原料はどれだけ必要なのかわかるようにするにはどうすればよいでしょうか? 生産予定で多数の品番と厚さのリストがでますので、ひとつずつの検索よりはまとめて検索できる形になるとよりありがたいです。 使用Excelは2002です。 調べるものが多いのでオートフィルは不可とします。 宜しくお願いします。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

添付画像を忘れていましたのでアップします。 また、確認ですが回答のような表示でよいのですか? もし、ご希望の操作と違う場合は、実際のデータベースと表示したいセル配置のレイアウトやどのような目的で使用するのか、補足説明してください。

arishia0307
質問者

補足

ありがとうございます。素晴らしいです! ただもしできるようなら、次のようにできるともっと助かります。 この作業の目的は「この品番を作るのに必要な原料の量を知ること。」なのですが、必要な製造量に対して、この原料はどれだけ必要なのかということをわかるようにしたいのです。 今回求めようとしている使用量は1回作るのに必要な量なので、オーダーのあった製造量から原料の総重量を割って、その製造量だと何回作れるかという回数を出し、その回数×使用量で最終的にひとつの原料の必要な量がわかります。 製造数量はオーダーにより異なります。 ですので、 品番 厚さ  原料  使用量 1000 0.5  AT-101  110 1000 0.5  S-100   50 1000 0.5  CT-100   23 使用量の右側にさらに品番で使う原料の総重量を入れ、製造数量に対して、今回抽出した原料がどれだけ必要になるのか求めていくようにしたいと思っています。 なので本来のデータベースにはもうすこし項目があります。 また断続的に製造は続くため製造プランが1週間~10日程度で一気にでます。 そこで必要な量をまとめて発注かけるのに使うのがこのデータになります。 長くなってしまいましたが、どのような作業をするかというのは伝わりましたでしょうか? 今回出していただいた数式のように横方向に出るものでも、工夫次第でなんとかできるとは思うのですが、下に下にデータが増えていくので、見やすくなればいいな、という希望があります。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

>2つのセルを使うというのは最少値と最大値に使うということでしょうか? その場合どのような式ができあがるのでしょうか? 該当する原料名を横方向に並べて表示するなら、I2セルに以下の数式を入力して右方向にオートフィルしてください(添付図参照)。 =INDEX($D:$D,SMALL(INDEX((($A$2:$A$1000<>$G2)+($B$2:$B$1000>$H2)+($C$2:$C$1000<$H2))*1000+ROW($2:$1000),),COLUMN(A:A)))&"" 詳細な使用目的が不明なので、添付画像はひとまず他の検索データを下方向に入力してそれらの該当する原料名を表示する数式にしていますが、検索条件が1組だけなら、その下のI3セルに上記の数式の$D:$Dの部分を$E:$Eにした数式を入力すれば(どのセルに入力する場合でも同じ数式でOK)使用量を表示することができます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>●品番1000  厚さ0.5  としたときに原料は何が必要で、その原料はどれだけ必要なのかわかるようにするにはどうすればよいでしょうか? 上記の場合、以下のような結果を出したいのでしょうか? AT-100    110 S-100     50 CT-100    23 >調べるものが多いのでオートフィルは不可とします。 意味がよくわかりません。オートフィルコピーは使用できないということなのでしょうか? また、実際のデータベースの厚さの範囲は「0.36~0.74」と入力するのではなく、2つのセルに分けて「0.36」と「0.74」のようにするほうが数式を簡略化できるので良いと思うのですが(データの修正は区切り位置の機能を利用すれば一発で変換できます)、現在の表示方法にこだわるのでしょうか?

arishia0307
質問者

補足

間違えました、オートフィルではなく単純なフィルター機能のことです。 厚さの表記に関しては特にこだわりはありません。 2つのセルを使うというのは最少値と最大値に使うということでしょうか? その場合どのような式ができあがるのでしょうか?

  • karorumon
  • ベストアンサー率26% (25/94)
回答No.2

VBAで組んで、条件ごとにオートフィルターで抽出し、 結果出力?のシートにコピーをする… これを繰り返せばできると思います。 そのほうが簡単だと思うのですが…

  • k-josui
  • ベストアンサー率24% (3220/13026)
回答No.1

データーベースですから、Accessの方が向いていると思います。

関連するQ&A