- 締切済み
Excel VBAで自動見積を行いたいと考えています。ご教授下さい。
Excel VBAで自動見積を行いたいと考えています。ご教授下さい。 まだ、VBAを始めたばかりの初心者です。 下記の様な独立した2つのブックがあります。 実行したいのは 第一のブック(sheet1)のC列の品名を見て第二のブック(Sheet1)のC列の品名が一致する場合、 その行にある単価(F列)を第一のブックの単価欄(G列)にコピーしたいのです。 その作業を第一のブックの品名欄が空白になるまで繰り返し行い、合計値を算出したいと思っています。 また、見積依頼者が品名記載ミスをした場合に備え、類似品(上5桁程度で検索)も可能でしょうか? 第二のブックに該当品名が無い場合には(?)等を第一のブック価格欄に表示したいのですが・・・・ 初心者には、欲張り過ぎているため、作業スタートが出来ません。 ご教授頂きたくお願い致します。 見積部品シート(第1のブック/sheet1) A B C D E F G H I J 1 記号 規格 品名 品番 メーカー 数量 単価 小計 2 R1 1W10Ω AAAA 0123 あ 1 =F2*G2 3 C1 50V10μF BBBB 4567 い 2 =F3*G3 4 D1 1S2000 CCCC 8901 う 1 =F4*G4 5 T1 10VA DDDD 2345 え 2 =F5*G5 6 価格データベース(第2のブック/sheet1) A B C D E F G I J 1 名称 規格 品名 品番 メーカー 単価 2 抵抗 1W10Ω AAAA 0123 あ 2 3 コンデンサー 50V100μF BBBB 4567 い 20 4 ダイオード 1SS*** CCCC 8901 う 45 5 IC XXXXD DDDD 1245 え 100
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yosifuji2002
- ベストアンサー率51% (969/1888)
VBAなど使わなくても関数だけでもできるでしょう。 品名の検索は、VLOOKUP関数で可能です。 また代用品の検索は、IF関数でVLOOKUPの結果がN/Aの時という条件でで、代用品のデータを利用して可能です。 具体的には 価格データベースの右側にセルを追加して下記の式を入れます J2 =LEFT(C2,5) これで左から5桁のデータができます。 K2 =G2 この製品の価格をここに表示します。 そしてJとK列を他の離れた列に値のコピーして、これを品目でソートします。これが代用品のデータベースです。 このコピーとソートはマクロで簡単できますよね。 VLOOKUPを使う時は、価格データベースのデータは品名で昇順になっていること、代用品のデータベースも上5桁のコードで昇順になっていることが必要です。 以上でVBAなどの面倒なことはしなくても目的は達成できます。
お礼
有難うございました。 解決しました。 また、本依頼重複していましたので、キャンセルします。
補足
申し訳御座いません。 データベース量と状況説明が不足していました。 データベースの行数は数千行あります。 また、データベースは社内の共有資料のため加工付加です。 第一の見積資料も200行以上あります。 第一の見積資料はフォーマット(共通)ですが、物件毎に内容が異なります。 毎回、Excel関数で作成するのはキツイので、VBA化を考えました。 検索条件は、完全一致でなくても良いと考えています。(大文字/小文字を判別しない) 以上を踏まえご指導頂ければ幸いです。 宜しくお願い致します。