プロが教える店舗&オフィスのセキュリティ対策術

教えてください。

アンケートで得られた回答が3000件ほどあります。1行に1件ですので、3000行あります。
行方向が回答者数、列方向が質問事項というデータレイアウトです。

質問の中に国名を記述する列があり、それぞれ
「日本」「韓国」「アメリカ」「イギリス」などと各セルに入力されています。

今回、この国名を指定された番号に置き換えたいのです。国名の種類は100あり、それぞれに「日本=1」「韓国=2」「アメリカ=20」「イギリス=49」のように番号指定があるので、
最終的に国名を数字に置き換えたいのですが・・・。

置換でやってみようと思ったのですが、
なんせこの国名数が100ほどあるため、ひとつづつ置換をおこなうと
かなりの時間と労力がかかってしまうので躊躇しています。
(VLOOKUPもやってみましが、使い方がまずいのか良い回答が得られませんでした・・・)

最終的には置換でどうにかできますが、もし簡単に関数なのでできる方法を教えていただけたらと思って質問させていただきました。

ちなみに、別表で下記のような表はあります。

A列 B列
1 日本
2 韓国
3 インド
4 中国
・  ・
・   ・
100 アルゼンチン 


説明がつたなくてすみませんが、よろしくお願いします。

A 回答 (3件)

VLOOKUPで出来そうですけどね?



問題があるとしたら、国名でコードを検索させることになりますが
この国名の特にカタカナ部分が半角・全角のどちらかで統一しておき
データベース側もアンケートデータにあわせた方の半角・全角のどちらかで
統一しておかなければ、いけないと思います。
因みにVLOOKUPでデータベースを使うなら、国名で検索することになるので

A列  B列
日本  1
韓国  2
インド 3
中国  4
・   ・
・    ・
アルゼンチン 100 

いちばん左側を国名にしておかないと検索にかからないと思います。
数式にするとこんな感じでしょうか↓
=VLOOKUP(アンケートの国名のセル番号,国名のデータベース範囲,2,FALSE)
    • good
    • 0
この回答へのお礼

で・できました・・・・。
やはりわたしの使い方がまずかったです。
検索の型の意味合いが理解できていませんでした。

どうもありがとうございました。大変助かりました。

お礼日時:2008/05/09 16:58

次の方法は如何でしょうか。


(1)アンケート表の国名列を仮にsheet1のA列、空き列をD列、別表をsheet2とします。
(2)sheet1のD列を選択→数式バー欄=IF(COUNTIF(Sheet2!B:B,A1),INDEX(Sheet2!A:A,MATCH(A1,Sheet2!B:B,0)),"")を入力完了時にctrl、enterキーを押下
(3)sheet1のD列をコピー→A列を選択→形式を選択して貼り付け→値にチェック→OK
(4)D列を削除
因みにアンケート表の国名と別表の国名は同一書式でないと抽出できませんので書式(全角、半角)やスペース有無をご注意下さい
    • good
    • 0
この回答へのお礼

INDEX関数とMATCH関数をもっと練習してみます。
あと、みなさんも書かれていますが、スペースや半角全角はキーポイントですね・・。今後もかならずまずは注意するようにします。
どうもありがとうございました!

お礼日時:2008/05/09 17:04

国名のある列がC列として


D2=IF(C2="","",INDEX(A:A,MATCH(SUBSTITUTE(JIS(C2)," ",""),B:B,0),1))

解説:
JIS()で国名を全角に統一
SUBSTITUTE()で全角スペースを消去
MATCH()で別表のB列で同じ国名の行を検索
INDEX()で別表のA列の国名の行の値を抽出
IF()でアンケートが空欄の場合の対応
    • good
    • 0
この回答へのお礼

MATCHとINDEX関数は聞いたことはあるものの、やったことがなく勉強になりました。
わたしにとってはまだ教えていただいたやり方はレベルが高く、もうひと勉強必要なようです・・・
教えていただきありがとうございました!

お礼日時:2008/05/09 16:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!