|
▼難問 さん:
>どなたか助けてください。
>業務の中でよく出てくる作業を毎回手作業で時間をかけて
>やっております。
>【マクロにしたい操作】
>2つのDB(大体1万件程度)の共通するフィールドを使い、
>VLOOKUPでDBを1つに合体させています。
>【サンプル】
>売上.xls
>顧客番号&コード 顧客番号 コード 品番 1月 2月 3月
>294072PG001 29407 2PG001 00RP 54350 11350 29850
>
>売上2.xls
>顧客番号&コード 顧客番号 コード 品番 1月 2月 3月
>2040002PG001 20400 2PG001 03RP 179750 259750 34750
>
A2の値は、"294072PG001"と"2040002PG001"で共通してない ように見えますが
C列が共通の項目なんでしょうか?
VBAでやるなら共通項目の列をループさせた値で、
相手側(売上2.xls)の列をFindして
必要なデータをOffsetで取得すれば出来そうです。
もしくは丸ごともってきていらないところを削除するか ですね。
>手作業
>1.2つのDBにフィールドを追加し、共通する複数のフィールドを
>&結ぶ数式をまず、入れます。
>2.売上.xlsの最右列を使用し、vlooup関数を使用して
>売上2.xlsのデータを引っ張ります。
>=IF(A2="","",IF(ISNA(VLOOKUP([売上2.xls]京都!A2,[売上2.xls]京都!A$2:G$51,6,FALSE))=TRUE,"該当なし",VLOOKUP([売上2.xls]京都2!A2,[売上2.xls]京都2!A$2:G$51,6,FALSE)))
>★今回は検索範囲の中から6列目を返すという式を入れていますが、
>毎回列は替わります。
>また、2、3、6、8、23列目の値を返したいという場合は
>どの部分で指定したらよいのかも教えてください。
>手作業だと、1つ式をつくり、それを右にコピーして、
>返したい値のある列部分を数式の中で変更するという
>やりかたでやっています。
>
>
>自動記録でやってみたのですが、なかなか上手くいかないのが現状です。
|
|