• ベストアンサー

EXCELで文字検索&置換え

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

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答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

  • 【Excel VBA】コピー&ペーストの自動化

    以下のエクセル表があり、同じ日付ごとのデータを自動的に別のシートに移したいです。 例えば、別のシートに、2004/1/1に書かれているデータのみを移す。(シート2参照) それをVBAで書くにはどうすればいいでしょうか。 マクロの記録をするのではなく、この表の日付を増やしたり変えたりしても機能するようにコードを書きたいと思っております。 For LoopとIf thenを使い、A1セルがそれより下のセルの値と異なるまでコピーし続ける、、といった作業をすればよいのでしょうか。 全くの初心者で勉強中です。よろしくお願いいたします。 列行 A B 1 2004/1/1 太郎 2 2004/1/1 次郎 3 2004/1/1 三郎 4 2004/1/1 一郎 5 2004/1/1 五郎 6 2005/3/3 三郎 7 2005/3/3 次郎 8 2005/3/3 太郎 9 2005/3/3 四朗 10 2006/2/2 次郎 11 2006/2/2 一郎 12 2006/2/2 太郎 シート2 2004/1/1 太郎 次郎 三郎 一郎 五郎 シート3 2005/3/3 三郎 次郎 太郎 四朗 シート4 2006/2/2 次郎 一郎 太郎

  • シート内の抽出について(Excel)

    シート内の抽出について(Excel) シート内に同じ文字列が複数存在するデータから抽出して使用したいのですが、ご存知の方おりましたら教えていただきたいのですが。 例    A   B   C   D  1 001  ABC 500  太郎 2 001  ABC 200  花子 3 001  ABC 150  太郎 4 002  DEF 500  次郎 5 002  DEF 200  三郎 6 002  DEF 150  次郎 7 002  DEF 100  次郎 このようなシートがあったとしますと 抽出条件として ’001’ とした場合 番号:001    A   B   C   D  1 001  ABC 500  太郎 2 001  ABC 200  花子 3 001  ABC 150  太郎 このように他のシートに抽出できればベストなのです。 データーが膨大なものでオートフィルターで抽出しコピー&ペーストでは時間がかかり過ぎてしまいます。関数でなんとかなればと思っておりますがお知恵をかしていただけないでしょうか?

  • エクセルのピボットテーブル集計ごとに印刷

    お世話になります ピボットテーブルでの印刷ですが全体の印刷はすぐに可能ですが 集計ごとの印刷は大変です。 集計ごとに印刷させるVBA等ありましたらよろしくお願いします 太郎 売り上げ|100 交通費 |100 集計 |200 次郎 売り上げ|100 交通費 |100 集計 |200 三郎 売り上げ|100 交通費 |100 集計 |200 上記がピボットとします。 太郎、次郎、三郎同時に印刷させるのではなく A4用紙1枚で太郎の表 A4用紙1枚で次郎の表 A4用紙1枚で三郎の表 と 個々に印刷させたいのですがこんなわがままな印刷ボタンできますか? わかる方ご教授よろしくお願い致します。

  • エクセル 数値を決まった文字で表示したい

    よろしくおねがいします。 excel2003 または excel2007 です。 数値を決まった文字列であらわしたいのです。できれば VBA を使わずに。 たとえば 1・・・あ 2・・・い 3・・・う などとして  123(数値)を あいう(文字列)で表示したいのです。 数値の桁数は最高で7桁です。 よろしくおねがいします。  

  • EXCELで文字を数字に変換したい

    お世話になります。 エクセルシート上の見た目数字、実は文字列という値を、数字に変換したいのですが、EXCEL-VBAでどのように処理すればいいのでしょうか? 1.セルから文字列型の見た目数字の値をとってくる。 2.VBAで文字列型から整数型に変換する。 3.元のセルに貼り付ける。 4.セル書式を数字のカンマ形式にする。 リンクではなくこのような処理をしたいのですが、どうすればいいのでしょうか?

  • エクセルの集計での質問

    A列に日付、BからF列に担当者名(1~5)が入っています。 この表で誰が何日稼働したか調べたいのですが、日付の被りがあるのと、例えば▲▲さんが「担当者1」、●●さんが「担当者2」と決まっているわけでなく、早いもの順に「担当者1~5」までに名前が入っています。 A B C D E F 日 担1 担2 担3 担4 担5 1/3 太郎 次郎 花子 三郎 和子 1/3 次郎 太郎 三郎 美和 和子 1/4 花子 次郎 孝夫.......... この場合求められたものが 1/3 太郎 ×1、次郎 ×1、三郎×1、花子×1、和子×1 、美和×1 1/4 花子×1、次郎×1、孝夫×1 なので 太郎1日 次郎2日 三郎1日 花子2日 和子、美和、孝夫各1日 という風にエクセルで集計できないでしょうか?

  • EXCEL VBA 別シートの文字をシート内で検索

    excel2003 VBAで SHEET2に格納されているセルの文字をSHEET1のB列1~9000程度までの文字列の中で一致または部分一致するものがあればそのセル(B列のセル)をSHEET3に順次A列に出力したいのですが、うまくできません。SHEET2に格納されている場所はA列で(SHEET1、SHEET2の文字とも増える可能性あり) 宜しくお願いします。

  • エクセルの同じ名前をカウントする方法

    エクセルの同じ名前をカウントする方法 初歩的な質問ですみません。 山田太郎 田中一郎 鈴木三郎 高橋次郎 鈴木三郎 高橋次郎 鈴木三郎 A1のセルにこういった状態で名前が入力されていた場合に 山田太郎 1 田中一郎 1 鈴木三郎 3 高橋次郎 2 となるように同じ名前がいくつあるかをカウントさせ上記のように表示させたいのですが、 どうしたらいいのでしょうか? (同じシートでも、別のシートでもどちらでも構いません) 至急お答えいただけるとありがたいです。 よろしくお願いします。 

  • Excelで該当する名前を挙げるには?

    vlookupは使えるのですが以下のような方法は作りこまないと出来ないでしょうか? 手動でソートして、そのデータから何かを作るような数ステップは手動でも構いません。 出来るだけ簡単な方法がありましたら教えてください。 マクロとかデータベースとか別のソフトとか使うと簡単なのかもしれませんが Excelの基本的な関数で作りたいです。 データ1 A組:1番:太郎 A組:2番:次郎 A組:3番:三郎 B組:以下略 ・・・ 質問:データ1からA組に該当する名前を羅列せよ。 答え: A組:「太郎、次郎、三郎」 「太郎、次郎、三郎」の文字列を取得したいです。

  • Excelのドロップダウンリストについて

    Sheet1において, A列 B列 1 田中太郎 2 佐藤次郎 3 山田三郎 のようなリストを作成してあるとします。 Sheet2において, A1のセルに1を入力すると,B1のセルに田中太郎と表示される様,B1にVLOOKUP($A1,Sheet1!$A$1:$B$3,2,0)と入力しています。 この時,A1をドロップダウンリストで入力する場合,リストの表示と入力値を変更するようなことはできるのでしょうか。 すなわち,リストには, 田中太郎 佐藤次郎 山田三郎 と表示され, 田中太郎 を選ぶとA1には1が入力され,B1にはVLOOKUP関数の効果として田中太郎と表示されるといった具合です。 当方,HTMLは理解しておりますので,HTMLで意図をご説明させていただければと思います。 HTMLでプルダウンボックスを使う場合の入力として, <SELECT name="ボックス名"> <OPTION value="1">田中太郎</OPTION> <OPTION value="2">佐藤次郎</OPTION> <OPTION value="3">山田三郎</OPTION> </SELECT> ということになります。 これと同じようなことがエクセルで可能なのかどうかという質問でございます。

専門家に質問してみよう