• ベストアンサー

Excel-アンケートで得られた国名を指定した番号に変換したい。

教えてください。 アンケートで得られた回答が3000件ほどあります。1行に1件ですので、3000行あります。 行方向が回答者数、列方向が質問事項というデータレイアウトです。 質問の中に国名を記述する列があり、それぞれ 「日本」「韓国」「アメリカ」「イギリス」などと各セルに入力されています。 今回、この国名を指定された番号に置き換えたいのです。国名の種類は100あり、それぞれに「日本=1」「韓国=2」「アメリカ=20」「イギリス=49」のように番号指定があるので、 最終的に国名を数字に置き換えたいのですが・・・。 置換でやってみようと思ったのですが、 なんせこの国名数が100ほどあるため、ひとつづつ置換をおこなうと かなりの時間と労力がかかってしまうので躊躇しています。 (VLOOKUPもやってみましが、使い方がまずいのか良い回答が得られませんでした・・・) 最終的には置換でどうにかできますが、もし簡単に関数なのでできる方法を教えていただけたらと思って質問させていただきました。 ちなみに、別表で下記のような表はあります。 A列 B列 1 日本 2 韓国 3 インド 4 中国 ・  ・ ・   ・ 100 アルゼンチン  説明がつたなくてすみませんが、よろしくお願いします。

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

  • ベストアンサー
  • Us-Timoo
  • ベストアンサー率25% (914/3620)
回答No.2

VLOOKUPで出来そうですけどね? 問題があるとしたら、国名でコードを検索させることになりますが この国名の特にカタカナ部分が半角・全角のどちらかで統一しておき データベース側もアンケートデータにあわせた方の半角・全角のどちらかで 統一しておかなければ、いけないと思います。 因みにVLOOKUPでデータベースを使うなら、国名で検索することになるので A列  B列 日本  1 韓国  2 インド 3 中国  4 ・   ・ ・    ・ アルゼンチン 100  いちばん左側を国名にしておかないと検索にかからないと思います。 数式にするとこんな感じでしょうか↓ =VLOOKUP(アンケートの国名のセル番号,国名のデータベース範囲,2,FALSE)

suneo01
質問者

お礼

で・できました・・・・。 やはりわたしの使い方がまずかったです。 検索の型の意味合いが理解できていませんでした。 どうもありがとうございました。大変助かりました。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 (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列を削除 因みにアンケート表の国名と別表の国名は同一書式でないと抽出できませんので書式(全角、半角)やスペース有無をご注意下さい

suneo01
質問者

お礼

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

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

国名のある列がC列として D2=IF(C2="","",INDEX(A:A,MATCH(SUBSTITUTE(JIS(C2)," ",""),B:B,0),1)) 解説: JIS()で国名を全角に統一 SUBSTITUTE()で全角スペースを消去 MATCH()で別表のB列で同じ国名の行を検索 INDEX()で別表のA列の国名の行の値を抽出 IF()でアンケートが空欄の場合の対応

suneo01
質問者

お礼

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

関連するQ&A

  • excel 抽出およびその数について

      A列           B列       C列 (A列の同じ国名を除く) その数 アメリカ         アメリカ       6 インド          インド ブラジル         ブラジル 中国           中国 6 中国           カンボジア カンボジア        日本 6 日本           ベトナム 中国           シンガポール ベトナム         マレーシア シンガポール       オーストラリア アメリカ         韓国         3 マレーシア        タイ    2 日本           ドイツ 日本 アメリカ オーストラリア 韓国 アメリカ 日本 中国 日本 日本 タイ アメリカ タイ 中国 韓国 韓国 スリランカ 中国 ドイツ アメリカ  左のA列について同じ国名のセルを除いて中央のB列のようにあらわすにはどのようにすれば良いですか。また、同じ国名の数、たとえばこの場合は「アメリカ」は6(C列)になりますが、これをあらわすにはどのような関数を使用すれば良いでしょうか。ご教示のほどお願いいたします。

  • excel 抽出およびその数のマクロについて

      A列           B列       C列           (A列の同じ国名を除く)   その数 アメリカ         アメリカ       6 インド          インド ブラジル         ブラジル 中国           中国         6 中国           カンボジア カンボジア        日本         6 日本           ベトナム 中国           シンガポール ベトナム         マレーシア シンガポール       オーストラリア アメリカ         韓国         3 マレーシア        タイ         2 日本           ドイツ 日本 アメリカ オーストラリア 韓国 アメリカ 日本 中国 日本 日本 タイ アメリカ タイ 中国 韓国 韓国 スリランカ 中国 ドイツ アメリカ  A列について同じ国名のセルを除いてB列のようにあらわすにはどのようにすれば良いですか。また、同じ国名の数、たとえばこの場合は「アメリカ」は6(C列)になりますが、これをあらわすにはどのような関数を使用すれば良いでしょうか。ご教示のほどお願いいたします。  上の質問に対して3人の方からご回答をいただきました。(http://okwave.jp/qa/q9068971.html)本当に有り難うございました。感謝しております。  ただ、このような重複削除、そして国数という同じ作業が150ほどあります。いわゆるA、B、C列の3列のまとまりが150ほどあるということです。  A、B、Cでひとまとまり、D、E、Fでひとまとまり、G、H、I、でひとまとまりという感じで、それがA列~PC列くらいまであります(A、D、Gには国名(最高で25くらい)、B、E、Hには重複削除した国名、C、F、Iには国数です)。  一つ一つ手作業で行うのは面倒ですので、マクロで行いたいと思いますが、その組み方を出来ればご教示をお願いしたいと思います。どうぞ宜しくお願いいたします。  

  • 国名の覚え方

    今、学校で国名プリント、というのをやっていて地図を見て国名を答えるものをやっているのですが、全然国名が覚えられません。 30番まであるのですが、順番で覚えているだけです。 これではいけない、と思い質問しました。 こうすれば覚えられる、など教えてください。 一応、1番から30番まで載せておきます。 1,中国 2,韓国 3,北朝鮮 4,フィリピン 5,ベトナム 6,インドネシア 7,シンガポール  8,マレーシア 9,タイ 10,インド 11,サウジアラビア 12,トルコ  13,エジプト 14,南アフリカ 15,スペイン 16,イギリス 17,スウェーデン 18,ロシア 19,ドイツ 20,デンマーク 21,オランダ 22、フランス 23,イタリア  24,オーストリア 25,カナダ 26,アメリカ 27,メキシコ 28,ブラジル 29,アルゼンチン 30,オーストラリア    です。 よろしくお願いします。

  • Excelで電話番号の0を保持して-を取り去るには

    Excelのシートに、 052-123-4567 080-1234-5678 のような電話番号が A1~A999のセルに入力されています。 これらのすべての電話番号の -(半角ハイフォン)を取り去って、 0521234567 08012345678 というようにしたいのですが、 置換で 検索する文字列のボックスに - (半角ハイフォン) 置換する文字列のボックスに空白 (何も入力しない) を指定して置換すると、 521234567 8012345678 というように-は削除されますが、 頭の0が取り省かれてしまいます。 これは、数値として扱われているため0が取り省かれていると思われます。 頭に'(半角アポストロフィー)を付けけばうまくいきますが、 すべての電話番号に'を付ける必要があり現実的ではありません。 (問1) セルの書式を文字列にして、 置換してみましたが、それでも0が取り省かれてしまいます。 先に、セルの書式を文字列にしてから、その後で、電話番号を読み込ませて、セルの書式が文字列になっていることを確認してから置換しても、0が取り省かれてしまいます。 なぜ、セルの書式を文字列にしても、0が取り省かれてしまうのでしょうか? (問2) 置換ダイアログのオプションで、 置換後の文字列の書式の表示形式で文字列を指定して、 置換してみると、 -が取れ省かれずに 052-123-4567 のままになっています。 置換後の文字列の書式の表示形式で文字列を指定しないと -が取り省かれるのに、 置換後の文字列の書式の表示形式で文字列を指定すると、 なぜ、-が取り省かれなくなるのでしょうか? (問3) 0が取り省かれずに-を取り除くように置換するには、 どのようにすればよいのでしょうか。 よろしくお願いします。 (Windows10)

  • 国名の呼び方?

    我が国を我われは「日本にほん」と呼びます。お隣の韓国は「大韓民国」その北は「朝鮮民主主義人民共和国」etc....... 他国はは日本を「Japan」「Japon」etc. 韓国を「Korea」北を「North Korea」どのような基準で他国を呼んでいるのでしょうか?例えば「North Korea」でしたら「朝鮮民主主義人民共和国」の国名の意味など全く想像できません。 中国≒「Chaina」≒「中華人民共和国」Chainaだけでしたら、中華人民共和国という国名の意味が全く伝わりません。 お聞きしたいことは理解しているのですが、文章で表現できません。なんとか文面を察していただき回答いただきたいです。 わかりづらい質問でゴメンナサイ。

  • エクセル:行ごとに振り分けた管理番号を用い、他シートで番号を指定する事で表示を変更

    わかりにくいタイトルですいません。 どうも説明が難しくて・・・。 ≪質問内容≫ 行ごとにまとめられたデータがあります。 例)   A  B C   D 1 10 山 高い  緑 2 12 川 長い  青 3 13 海 大きい 青 このようなデータを用い、 違うシートに  管理番号 (要素A列)  名称   (要素Aで指定された行のB列要素)  特徴   (要素Aで指定された行のC列要素)  色    (要素Aで指定された行のD列要素) というようなものを表示させたい。 ただ表示させるだけなら、=で表示させたいセルを 選べばいいのはわかるのですが、 管理番号だけを入力することによって、 名称、特徴、色が自動で変わるようにしたいです。 (管理番号に連動して、他のセルも内容が変わる) 管理番号に10 といえれれば、そのシートでは、 「山 高い 緑 」 管理番号に12 といれれば、そのシートでは、 「川 長い 青」 と表示が変わるようにしたいです。 説明がうまくできているか不安ですが、 実際にやりたいことは、 あるシートに顧客データベースとなる情報を詰め込み、 違うシートにその顧客毎に見やすい形で表示しようと 思っています。(顧客番号を指定する形で) また、管理番号が同じものを二つあった場合は、 ○×の要素を表示するというような IF文のようなやり方ができるのであれば、 合わせて教えていただきたいです。 宜しくお願いいたします。

  • Excelでハイパーリンクの一括置換(指定範囲)

    現在、Excel2002を使用しておりますが、ハイパーリンクの一括置換用マクロ作成でつまづいておりますので、詳しい方お願いします。 【Excelデータ】   A B C D …… 1 ★ ★ ★ ★ …… 2 ★ ★ ★ ★ …… 3 ★ ★ ★ ★ …… : : : : : ★マークの箇所のデータにURLの途中まで同じハイパーリンクが貼られています。 リンクはhttp://aaa.bbb.ccc/ddd/eee/… ここで、C列の1行目から最終行(約1万行)までのハイパーリンクのみ ddd→FFFとしてhttp://aaa.bbb.ccc/FFF/eee/… としたかったので、こちらのサイト検索をしてみると Sub ハイパーリンクの置きかえ()  Dim H As Hyperlink  For Each H In Range("B2:B101").Hyperlinks   H.Address = Replace(H.Address, "\\abc", "\\def")  Next End Sub という回答を見つけることが出来ました。 そこで、それを参考にして Sub macro1()  Dim H As Hyperlink  For Each H In Range("C1:C50000").Hyperlinks   H.Address = Replace(H.Address, "ddd", "FFF")  Next End Sub ※C列は約1万行なので5万行まで指定すればよいかと思い、この値にしてます。 とマクロを作成したのですが、 いざ実行してみると、C列だけではなく、他の列まで全部一括置換してしまいます。 私はC列だけを置換したいので、何か良い方法をご存知の方はお願い致します。 C列だけ他のシートにコピーして一括置換して元の場所に貼り付ける方法も考えたのですが、その方法ですと、D列を別の文字列に一括置換とかE列を更に別の文字列に置換… とした場合の応用がききませんので…

  • エクセル2003について

    マイクロソフトのエクセル2003についてです。 ある列を指定し、その中にデータが何種類あるのか知りたい場合はどんな関数を使えばいいのですか? 例えば世界の大富豪ランキングのトップ10で、一番左の列にはその人が住んでる国名が表記されてるとします。 1位 アラブ 2位 アラブ 3位アメリカ 4位アラブ 5位日本 6位インド 7位ドイツ 8位ロシア     9位アメリカ 10イタリア だと仮定して、アラブとアメリカが複数ありますので、トップ10に入ってる国は全部で『7ヶ国』です。 このように、トップ100とか200くらいでも即座に同じ文字列データは複数でもひとつとカウントし、全部で何種類のデータが入ってるのか、その数をカウントしてくれる関数があれば知りたいのですが・・・

  • エクセルでセルが指定できない

    エクセルでワークシート上のセルをクリックしてもセルポインタが出なく、文字や数値の編集が出来ないものを先日見ました。列番号や行番号をクリックしても範囲指定がかかりません。この設定はどうすれば良いのでしょうか?

  • 個人ごとで見た時に、2つの列に共通する国名を抽出したいという

    個人ごとで見た時に、2つの列に共通する国名を抽出したいという エクセル2007での質問です。 以下のようなデータの状態があるとします。(例として作成してみました) ------------- ・調査1の結果 A列 名前 B列 好きな国名5個まで ・調査2の結果 C列 名前 D列 好きな国名10個まで ------------- A列とB列、C列とD列の状態は以下のようなイメージです。 鈴木 フランス 鈴木 カナダ 鈴木 タイ 高橋 韓国 高橋 中国 山田 タイ ・全員が回答上限値(調査1なら5カ国、調査2なら10カ国)まで  回答しているわけではありません。 ・A列とC列はキーとして結合することが可能です ・個人で見た時にB列とD列は同じ国が入ることがあります ■質問 個人で見た時に調査1と2で同じ国を回答している場合 どのように抽出すれば良いでしょうか。 新しい列に名前と国名を抜きだす。フラグをたてるなど方法は問いません。 個人ごとにvlookupをしていく方法しか思いつかず。 どなたかお助け下さい。 よろしくお願いします。

専門家に質問してみよう