質問: excel シート間のデータ抽出と置き換え aとbのシートを比較して、 aと同じ単語のあるセルがbにもあった場合には、 該当単語のある行から、特定セルの内容を、 bのシートの該当行(同単語のある行)の特定場所にコピーする。 説明がヘタですみません。 例を挙げますと、 a1:あ b1:goo a2:い b2:yahoo a3:う b3:google a1:あ b1:データなし a2:か b2:データなし a3:さ b3:データなし この様な場合、 aシートa1のデータ"あ"は、bシートのa1にもありますので、 その場合には、b1データの"goo"を bシートのb1にコピーし a1:あ b1:goo a2:か b2:データなし a3:さ b3:データなし と、なるようすることを関数だけで行うことは可能なのでしょうか。 自分なりに色々調べてみたのですが、該当例を探すことができませんでした。 ご存知の方がいらっしゃいましたらご教授ください。 補足説明といたしまして、 データは全て文字です。 b1のシート内で検索データが重複することはありません。 検索語(検索対象語)の文字列にスペース(半角・全角共)含まれていた場合 そのスペースは検索対象から除外(無視)して認識する。 検索語は複数あります。 できれば、一括で行いたいのですが、それですとvbaでないと無理でしょうか。 宜しくお願いいたします。 教えてgooさんの枠を超えた質問であれば申し訳ありません。
回答: vlookup関数ですね。 bシートのb列(b1~b3)に以下のように書きます。 =vlookup(a1,a!a:b,2,false) ←b1セルに書く内容 =vlookup(a2,a!a:b,2,false) ←b2セルに書く内容 =vlookup(a3,a!a:b,2,false) ←b3セルに書く内容 ただ、これでは一致しない場合に「#n/a」と出てしまうので ちょっと長いですが、以下のようにすると回避できます。 =if(iserror(vlookup(a1,a!a:b,2,false)),"",(vlookup(a1,a!a:b,2,false))) =if(iserror(vlookup(a2,a!a:b,2,false)),"",(vlookup(a2,a!a:b,2,false))) =if(iserror(vlookup(a3,a!a:b,2,false)),"",(vlookup(a3,a!a:b,2,false)))