- ベストアンサー
EXCELで文字検索&置換え
下記のような処理がEXCELの機能で可能かどうか教えてください。 2つのシートがあります。 1つめのシートには数値のみ(例:1,2,3・・・・)、 2つめのシートには数値とそれに対応する文字列(例:1,2,3・・・・と太郎、次郎、三郎・・・)をテーブルのように持っています。 行いたい処理は、 (1)1つめと2つめのシートの数値を比較して (2)同じ数値であれば2つめのシートから数値に対応している文字列を持って来て、 (3)1つめのシートに表示させる(数値の横の列) ことです。 このような処理がEXCELの機能のみで処理可能かご存知の方がいらっしゃいましたら教えてください。 (可能でないならばVBAで行うことを検討しています)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
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)」として文字色を白にする方法もあります。
その他の回答 (4)
- sapporoSweets
- ベストアンサー率30% (3/10)
まず、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,"") といった具合にしてはいかがでしょう?
お礼
ありがとうございました。 助かりました!
- hinebot
- ベストアンサー率37% (1123/2963)
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)) あとはこれをコピペするだけ。 (一応、未入力はブランクになるようにしました) 見当違いだったら済みません。
お礼
ありがとうございました。 例があったのでとてもわかりやすかったです。
- sacoman
- ベストアンサー率56% (33/58)
ご質問のないようですと。 ワークシート関数VLOOKUPをご利用になれば、可能かと思います。 1つめのシートの数値が入っているセルを仮にA列、 2つめのシートの対応表はA列に数値B列に値、100行あると仮定しますと、1つめのシートのB1セルに入力する式は =IF(A1="","",VLOOKUP(A1,Sheet2!$A$1:$B$100,2,FALSE) といった感じです。 ヘルプでVLOOKUP関数をご確認ください。
お礼
ありがとうございました。 助かりました!
- shishishishi
- ベストアンサー率39% (362/921)
VBAが使える方ならご承知とは思いますが、エクセルのワークシート関数の「IF」で十分可能だと思いますが・・・。 とんでもない勘違いした回答でしたらすみません。
補足
ご回答ありがとうございます。 VBAも初心者なものですのでできたらEXCELでと考えております。
お礼
ありがとうございます。 未対応(sheet1がブランク)の場合まで教えて頂いてとても助かりました。 実際に作ってみたらどうにかうまくいきました。