Excel半角カタカナで苗字のみを抽出する方法

このQ&Aのポイント
  • Microsoft Excel2007で住所録を編集中です。B列に半角カタカナで氏名(苗字 名前)が何千行と記入されています。空白のA列に、苗字のみをコピーして貼りつけたい方法を教えてください。
  • 住所が半角・全角バラバラに記入されているため、優先順位をつけて昇順に並べ替えようと思っています。優先キー1:苗字、優先キー2:郵便番号、優先キー3:住所にして、同じ住所を見つけやすくしたいです。
  • Excelの操作は初心者レベルで、マクロは記述していただいたものを使うことができます。宜しくお願いします!
回答を見る
  • ベストアンサー

Excel半角より前の文字のみ抽出…マクロ?

Microsoft Excel2007で住所録を編集中です。 現在、B列に半角カタカナで氏名(苗字 名前 という形で苗字と名前の間に半角スペースが入っています)が何千行と記入されている状態です。 これを、空白(全く未記入)のA列に、苗字のみをコピー(切り取りではなくコピー)して貼りつけたいのですが、どうすれば良いでしょうか? A列:空欄 B列:ヤマダ タロウ ↓ A列:ヤマダ B列:ヤマダ タロウ としたいのです。 なぜこうしたいかと申しますと、住所が半角・全角バラバラに記入されて一人ずつ入っており、家族ごとにソートしたいためです。 優先順位をつけて昇順に並べ替えようと思っており、優先キー1:苗字、優先キー2:郵便番号、優先キー3:住所、にして、同じ住所を見つけやすくしたいのです。 同じ住所を見つけて、全て半角などにそろえようと思っております。 B列の苗字名前の間には必ず半角が入っています。 半角より前の文字のみ、抽出(というかコピー)のやり方を教えて下さい。 エクセルは、言われた通りに書式を打ち込んだり、簡単な計算をしたり、簡単なグラフをつくったりできるレベルで、マクロは記述していただいたものをコピー&ペーストで使うことができるくらいの、初心者レベルですが、そうか宜しくお願いします!

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

  • ベストアンサー
  • hananoppo
  • ベストアンサー率46% (109/235)
回答No.2

最初に、住所を半角変換されてはいかがでしょうか。そうすれば、住所での並べ替えで家族ごとに分けることができます。そこで次のようなマクロを考えてみました。このマクロは変換したい範囲を選択した上で実行してください。 Sub StrConvNarrow() Dim aCell As Range Application.ScreenUpdating = False For Each aCell In Selection aCell.Value = StrConv(aCell.Value, vbNarrow) Next Application.ScreenUpdating = True End Sub

redchiri
質問者

お礼

前回に引き続きまたご指導いただき、本当にありがとうございます! まさか全て半角に置き換えることができるとは…そんな便利なことができるだなんて知りませんでした。 これでだいぶ作業が楽になりました。 本当に毎回、ありがとうございます。 感謝してもしきれないほど感謝しております!

その他の回答 (3)

  • stuff_ppo
  • ベストアンサー率62% (27/43)
回答No.4

名字と名前の間に必ず半角スペースが入っているのですね? B1に「ヤマダ タロウ」 A1に「=LEFT(B1,FIND(" ",B1))」 と入力すれば、B1から名字だけ持ってくる事ができます。 完成したA1をコピー → A2から必要なところまではりつければ、 ほかの行でも同じ事ができます。

redchiri
質問者

お礼

ご回答いただきありがとうございます! なるほど、そんなやり方も… 今回はデータが何千件もあり、オートフィルが大変だったので他の物を使わせていただいたのですが、大変勉強になりました! 応用がききそうなので、試してみます。 本当にありがとうございました!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 まず、A列の適当なセルに次の数式を入力して下さい。 =IF(ISERROR(FIND(" ",INDEX($B:$B,ROW()))),"",LEFT(INDEX($B:$B,ROW()),FIND(" ",INDEX($B:$B,ROW()))-1)) ※念のため、数式中の" "の部分は、コピー&ペーストではなく、キーボード入力によって入力して下さい。  次に、そのセルをコピーして、B列において氏名が入力されている全てのセルの左隣のセルに、貼り付けて下さい。  以上でA列に苗字のみが表示されますから、後はA列を基準にソートして下さい。

redchiri
質問者

お礼

ご指導いただきありがとうございました! 自分では数式を書くことができないので、大変勉強になり、助かりました。 本当にありがとうございました。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

B列の前に2つの列を挿入します。 もとのB列(氏名のある列)を選択してCNTL+C A列を選択して貼り付け A列を選択してメニューのデータから区切り位置を選択 カンマやタブなどの区切り文字によって...を選択して次へ 区切り文字スペースにチェック、それ以外はチェックを外す 次へを押して、完了 不要なら新しいB列を削除

redchiri
質問者

お礼

ご回答ありがとうございます! 初心者の私でもわかる操作で、大変たすかりました。 これで住所録がきれいに整理できそうです。 本当に、ありがとうございました。

関連するQ&A

  • エクセルについて。

    エクセル2000を使っていて、顧客情報のリストをエクセルで管理しています。A列に名字、B列に名前を入れていますが、A列に名字と名前を一緒にしたいのですが今のデーターから編集出来ますでしょうか?編集の際には名字と名前の間にハイフンを入れたいと思っています。 (例)A列 ヤマダ  B列 タロウをA列にヤマダ-タロウとなるようにしたいのですが?出来そうであればアドバイスお願いいたします。

  • マクロ 2つのEXCELシートの情報を統合

    【やりたいこと】 ファイルAのシートにある情報にファイルBの情報を付属する。 (1)ファイルAのB列(名前列)を上から順に1つずつ、ファイルBのC列(名前列)から検索 (2)完全一致すればその行に付随しているA列(結果)の情報をファイルAのD列につけていく。 ■ファイルAのシート(シート名:sheet2) ----------------------------------- A列(NO)  B列(名前)  C列(出欠) 1    ヤマダタロウ     出席 2    ハナダモモコ     出席 3    テストジロウ      出席 ・ ・ ・ ・ ■ファイルBの1つ目のシート ------------------------------------ A列(結果)  B列(性別)  C列(名前) 合格       男       テストジロウ 合格       女       ハナダモモコ 不合格      男       ヤマダタロウ ・ ・ ・ ★↓↓完成イメージ↓↓★ ファイルAとファイルBの名前列で一致させファイルAの「sheet2」シートの 後ろにファイルBの結果を付属する。 ----------------------------------------------------- A列(NO)  B列(名前)  C列(出欠)  D列(結果) 1      ヤマダタロウ     出席    不合格 2      ハナダモモコ     出席    合格 3      テストジロウ      出席    合格 ・ ・ ・ どなたか、ご教示の程お願い申し上げます。

  • EXCELの文字の抽出について

    セルA1に「taro yamada」とある場合にセルB1に「taro」、C1に「yamada」と抽出したい場合、どのようにしたらいいのでしょうか?ちなみA1の名前と名字の間は半角スペースが入っています。

  • 例えばA1に入力した文字列や数字をB1に移動する方法はどうすればよいで

    例えばA1に入力した文字列や数字をB1に移動する方法はどうすればよいでしょうか? 色々検索したのですが見つかりませんでした。 本当に行いたいことはウェブページで以下のような文字列があるとします。 山田太郎[ヤマダタロウ] 〒000-0001 東京都千代田区 TEL:0000-00-0000 この文字列をドラックで文字列としてコピーしてエクセルのA5に貼り付けると 通常なら A5に山田太郎[ヤマダタロウ] A6に〒000-0001 A7に東京都千代田区 A8にTEL:0000-00-0000 になりますが A1に山田太郎 B1に000-0001 C1に東京都千代田区 D1に0000-00-0000 に移動されるようにしたいです。 これは[ヤマダタロウ]の文字列、〒、TEL:、のカットを行ったうえで移動させる必要があります。 何か方法があれば教えていただけると幸いです。

  • Excelで複数行・複数セルの一括削除、マクロ?

    Excelで複数の行・複数のセルの一括削除、一括編集の方法を教えて下さい。住所録の連名づくりに困っています。 Microsoft Office Excel 2007ですでに作成された住所録を、筆ぐるめVer.15へ外部読み込みをして年賀状の宛て名をつくって印刷したいと考えています。 Excelのデータは一人一人1行ずつで作られている為、このまま筆ぐるめで住所録をつくると同じ住所の家族の年賀状が複数枚できてしまう(父に1枚・娘に1枚・母に1枚、という風に)ので、同じ住所の宛先には連名にして1枚で出したいので、連名列を作り代表者の行に一家族分の連名をまとめる作業で手こずっています。 同じ行に1家族分のアドレスが入るように(1行に、代表者漢字氏名・母の名前・子の名前・子の名前2・郵便番号・住所、のように)したかったので、 現在は=RIGHT(B1,3)で、B列にある漢字氏名の後ろから3文字だけをC列、D列、E列に一つずつずらした名前が記入されている状態で、表の形としては、 【1行目】 A列:ヤマダ タロウ/B列:山田 太郎/C: 良子/D:由美子/E:本 松/F:〒/G:住所 【2行目】 A列:ヤマダ リョウコ/B列:山田 良子/C:由美子/D:本 松/E:本 竹/F:〒/G:住所 【3行目】 A列:ヤマダ ユミコ/B列:山田 由美子/C:本 松/D:本 竹/E:本 梅/F:〒/G:住所 【4行目】 A列:ヤマモト マツ/B列:山本 松/C:本 竹/D:本 梅/E:本 桜/F:〒/G:住所 という風になっていて、以下のようにしたいのです。 【1行目】 A列:ヤマダ タロウ/B列:山田 太郎/C:良子/D:由美子/E:/F:〒/G:住所 【2行目】 A列:ヤマモト マツ/B列:山本 松/C:竹/D:梅/E:/桜F:〒/G:住所 ≪1≫連名にした家族の行は不要なので行自体を削除したい。 ≪2≫氏名の後ろから3文字をコピーしているので「 良子」のように半角スペースが入っているものや、「本 竹」のように1文字の名前のため苗字の一部まで入っているものは、その部分を削除して氏名のみにしたい。 ≪3≫1行目E列のように、別の家族の名前まで入ってしまっていたり、連名のいらない人の名前を削除したい。(家族によって、連名が3ついるところもあれば、2つでよかったり、全く連名不要の人もいるので…) これを地道に一つ一つセルを選択して削除していく以外に何か能率のいい方法はないでしょうか? 名簿が何千件とあるので一つずつこの作業をすると膨大な時間がかかる為、少しでも効率的な作業があれば教えていただきたいのです。 前回の質問で、親切な回答者様から「マクロを使えば」と言っていただきましたが、エクセルをそこそこしか使えない(単純な計算やグラフの作成程度)為、どのようにすれば良いかわかりません。 何かアドバイス、ご享受、していただければと思います。 どうか、宜しくお願いいたします。

  • エクセルで、半角文字列を抽出するには

    使用機種はXPでEXCEL2003です。 住所のデータ整理をしています。 地名の後の番地のみ半角数字(ハイフンも半角)で入力されており、その部分だけを別の列に移動させる作業です。 関数で、半角文字列だけを抽出することはできますか? left関数を使おうとも思いましたが、文字数がバラバラなので、難しいと思いました。 私は、一つひとつコピー→ペーストをするしか思いつかないほどの初心者です。 どうぞよろしくお願いいたします。

  • Excelの住所録を一まとめにするには?マクロ?

    Excel2007で住所録が2つあるのですが、これを一まとめにするにはどうすればいいのでしょうか? 同じ人の住所録は一つにしたいのです。 別々のエクセルファイルに住所録1と住所録2があり、それぞれのデータ形式は標準で、同じ構成になっています。 住所録は家族ごとにソートされており、1行につき1家族分の住所、氏名、他家族の名前が入っています。 1と2は同じ住所の同じ家族が複数あります。1と2はSheet1という名前のシートに住所録が有り、他にシートはありません。 A列:代表者カタカナで読み仮名(半角カタカナで姓と名の間に半角スペース有) B列:代表者姓半角カタカナ C列:代表者名半角カタカナ D列:代表者漢字氏名(姓と名の間に半角スペース有) E列:代表者漢字苗字 F列:代表者漢字名前 G・H・I・J列:連名(漢字名前) K列:郵便番号(半角数字、真ん中ハイフン有) L列:住所(数字はすべて半角) これを単純に重複の行を削除で削除できないのは連名があるからです。 (例えば、1住所録には1行に加藤家の父・母・息子があり、2住所録には1行に父・娘がある、など、連名のあるなし、被っている人、1と2の代表者も違う、などバラバラ) ・1を2にコピーして家族単位に住所でソート(1のデータを2のシートにコピペして家族単位でソートでも可) ・同じ行の中でFGHIJ列で同一名は削除 ・筆頭者が誰になるかは不定(オリジナルデータの名前の順による。) ・1に無い連名は2の連名欄G~Jに転記 ・1に全くない住所氏名は2に新しく行を追加してコピペ ・同一住所の筆頭者以外の行は削除 ということをしたいのですが、マクロを書いていただくか、数式を教えていただくか、やり方を教えていただけないでしょうか?(因みに、マクロはコピペで使うことはできても、自分では全く書けません) 因みに、住所録2と同じデータ(構成違い)の住所録3が別のエクセルファイルで有り、違いは3は連名無しで家族ごとにソートされておらず、1人1行で作られていて A列:カタカナで読み仮名(半角カタカナで姓と名の間に半角スペース有) B列:姓半角カタカナ C列:名半角カタカナ D列:漢字氏名(姓と名の間に半角スペース有) E列:漢字苗字 F列:漢字名前 G列:郵便番号(半角数字、真ん中ハイフン有) H列:住所(数字はすべて半角) となっています。 同じ結果(同じく1にひとまとめで一家族ごとに名簿をつくる)にできるのであれば、1に3を住所でソートでも構いません。 データは1と2と合わせると10000件近くある為、地道なやり方では間に合いません。 どうかご指導宜しくお願いします。

  • 新生銀行ネットバンクでの振り込み名。こう打てばばっちり?

    先日新生銀行のネットバンキングで、相手の名前を2度も間違えてしまったので、今度こそは確実に打ち込みたいと思います。 相手先の正式名が(例えばです) 「APPLE 代表 山田太郎」 だったとします。 その場合は 「APPLE ダイヒョウ ヤマダ タロウ」 (英語は半角アルファベット、カタカナは半角、苗字と名前の間に半角スペース) というのでばっちりでしょうか? 教えてください!!

  • Excel2007です。マクロについて教えてください。

    エクセル2007です。マクロについて教えてください。 エクセルで英語の単語問題を作りたいのですが・・・ 例えばセルA列とB列(A列30問B列30問で全60問)に単語問題が記入されています。C列とD列が答えを記入する欄です。答えを記入し終えたら、「答え合わせボタン」を押して間違えた解答の文字だけが赤くなる。このような物を作成するにはどのようにすればいいでしょうか?? どなたか回答よろしくお願い致します。

  • Excel2003 一つのセルの文字情報からキーとなる文字が含まれていたら 規定の文字を表示させる

    1)A列のセルに3文字のキーとなる半角英数字が複数個 半角スペースで区切って複数行入力されている。 2)1)のデータから 検索したいキー文字を検索し、該当すれば B列に 規定の文字列 、無ければ"-”を表示したい。   <例> A列 検索キー文字: R20なら"a"  RG0なら"b" WFTなら"c" の繰り返し A列               B列(結果) C29 PNS RG0 S5K W4B       b   7X9 R20 S5K W4B         a S5K W4B WFT           c  C05 PJD PM4 PXR R21       - RN5 PH1 RG0           b 宜しくお願い致します。

専門家に質問してみよう