• 締切済み

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     

みんなの回答

回答No.1

VBAなど使わなくても関数だけでもできるでしょう。 品名の検索は、VLOOKUP関数で可能です。 また代用品の検索は、IF関数でVLOOKUPの結果がN/Aの時という条件でで、代用品のデータを利用して可能です。 具体的には 価格データベースの右側にセルを追加して下記の式を入れます J2  =LEFT(C2,5)   これで左から5桁のデータができます。 K2  =G2       この製品の価格をここに表示します。 そしてJとK列を他の離れた列に値のコピーして、これを品目でソートします。これが代用品のデータベースです。 このコピーとソートはマクロで簡単できますよね。 VLOOKUPを使う時は、価格データベースのデータは品名で昇順になっていること、代用品のデータベースも上5桁のコードで昇順になっていることが必要です。 以上でVBAなどの面倒なことはしなくても目的は達成できます。

iiji4547
質問者

お礼

有難うございました。 解決しました。 また、本依頼重複していましたので、キャンセルします。

iiji4547
質問者

補足

申し訳御座いません。 データベース量と状況説明が不足していました。 データベースの行数は数千行あります。 また、データベースは社内の共有資料のため加工付加です。 第一の見積資料も200行以上あります。 第一の見積資料はフォーマット(共通)ですが、物件毎に内容が異なります。 毎回、Excel関数で作成するのはキツイので、VBA化を考えました。 検索条件は、完全一致でなくても良いと考えています。(大文字/小文字を判別しない) 以上を踏まえご指導頂ければ幸いです。 宜しくお願い致します。

関連するQ&A