• ベストアンサー

EXCELで文字検索&置換え

下記のような処理がEXCELの機能で可能かどうか教えてください。 2つのシートがあります。 1つめのシートには数値のみ(例:1,2,3・・・・)、 2つめのシートには数値とそれに対応する文字列(例:1,2,3・・・・と太郎、次郎、三郎・・・)をテーブルのように持っています。 行いたい処理は、 (1)1つめと2つめのシートの数値を比較して (2)同じ数値であれば2つめのシートから数値に対応している文字列を持って来て、 (3)1つめのシートに表示させる(数値の横の列) ことです。 このような処理がEXCELの機能のみで処理可能かご存知の方がいらっしゃいましたら教えてください。 (可能でないならばVBAで行うことを検討しています)

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

1,2,3がSheet1のA1に 対応する数値と文字列がSheet2のA1からB3として Sheet1のB1に=VLOOKUP(A1,Sheet2!$A$1:$B$3,2,FALSE) で可能です。 ただ、未入力と対応する数値がないと#N/Aが表示されます。 未入力でブランクにする場合は =IF(A1="","",VLOOKUP(A1,Sheet2!$A$1:$B$3,2,FALSE)) 未対応をブランクにする場合は =IF(ISNA(VLOOKUP(A1,Sheet2!$A$1:$B$3,2,FALSE)),"",VLOOKUP(A1,Sheet2!$A$1:$B$3,2,FALSE)) としてください。 結果は#N/Aで見えなければいいというなら 「書式」「条件付き書式」で 「数式が」「=ISNA(B1)」として文字色を白にする方法もあります。

10000sakura
質問者

お礼

ありがとうございます。 未対応(sheet1がブランク)の場合まで教えて頂いてとても助かりました。 実際に作ってみたらどうにかうまくいきました。

その他の回答 (4)

回答No.5

まず、2つのシートを以下の様にします。 Sheet1  |A|B ―|――――― 1|1 |[@1] 2|2 |[@2] 3|3 |[@3] Sheet2  |A|B ―|――――― 1|1 |太郎 2|2 |次郎 3|3 |三郎 次に [@1]に=IF(A2=1,Sheet2!A2,"") [@2]に=IF(A3=1,Sheet2!A3,"") [@3]に=IF(A4=1,Sheet2!A4,"") といった具合にしてはいかがでしょう?

10000sakura
質問者

お礼

ありがとうございました。 助かりました!

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.4

VLOOKUPでできるんじゃないですか? シート2が以下のようにある場合    A  B 1  1  太郎 2  2  次郎 3  3  三郎 4  4  四郎 5  5  吾郎 シート1の比較したいセルがA1なら =IF(A1="","",VLOOKUP(A1,Sheet2!$A$1:$B$5,2,FALSE)) あとはこれをコピペするだけ。 (一応、未入力はブランクになるようにしました) 見当違いだったら済みません。

10000sakura
質問者

お礼

ありがとうございました。 例があったのでとてもわかりやすかったです。

  • sacoman
  • ベストアンサー率56% (33/58)
回答No.3

ご質問のないようですと。 ワークシート関数VLOOKUPをご利用になれば、可能かと思います。 1つめのシートの数値が入っているセルを仮にA列、 2つめのシートの対応表はA列に数値B列に値、100行あると仮定しますと、1つめのシートのB1セルに入力する式は =IF(A1="","",VLOOKUP(A1,Sheet2!$A$1:$B$100,2,FALSE) といった感じです。 ヘルプでVLOOKUP関数をご確認ください。

10000sakura
質問者

お礼

ありがとうございました。 助かりました!

回答No.1

VBAが使える方ならご承知とは思いますが、エクセルのワークシート関数の「IF」で十分可能だと思いますが・・・。 とんでもない勘違いした回答でしたらすみません。

10000sakura
質問者

補足

ご回答ありがとうございます。 VBAも初心者なものですのでできたらEXCELでと考えております。

関連するQ&A

専門家に質問してみよう