• ベストアンサー

スペースで区切られた氏名から性だけを抽出するには?

Excel2000です。 過去情報を色々調べてそれっぽいのは見つかってトライしているのですが、 なかなか応用が利かなくて上手く出来ませんので、教えて頂きたく投稿させて 頂きました。 例えば、セルA1に「山田 太郎」とあります。 姓名と名前は全角スペースで区切られています。 これをVBAを使用して、 スペース前の姓名「山田」を抽出して、係数に格納してファイル名などに利用 したいのですが、どうすればよいでしょうか? 簡単なことだと思うのですが、ハマってしまい困っています。お助け下さい。

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

  • ベストアンサー
  • avanzato
  • ベストアンサー率54% (52/95)
回答No.3

こんにちは。 #1さんのSPLITを使った方法がベストかと思います。 別の方法では Sub TEST()   Dim 苗字 As String   苗字 = Left(Range("A1").Value, InStr(Range("A1").Value, " ") - 1)   MsgBox (苗字) End Sub LEFTを使って苗字を取り出します。 INSTRで全角スペースが何文字かを調べスペースを含まないようにする為、-1して苗字の終端を調べています。

SHI-UE
質問者

お礼

早速のご回答ありがとうございます。 LEFTで色々試行錯誤していたのでこちらが入り易かったです。 #1さんのSplitも勉強してみます。 また、宜しくお願いします。

その他の回答 (3)

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.4

#3です。 #2さんの方法はちょっと面倒かと思いますが・・・。 置換するより =LEFT(A1,FIND(" ",A1)-1) の方が楽かと思います。 やっていることはFINDかINSTRの違いだけです。

SHI-UE
質問者

お礼

ありがとうございます。 そうですね。確かに=LEFT(A1,FIND(" ",A1)-1)の方が簡単だと思います。 ワークシート上でのこのやり方は、ネットで検索出来ていました。

  • srxmk3pro
  • ベストアンサー率53% (527/980)
回答No.2

VBAを使用しなければならないのでしょうか? セル1つからの抽出ならば、数式バー内でのマウス操作の問題だと思いますし、複数ならば「LEFT」関数と「置換」で処理します。 ・姓は1文字~3文字が大半なので、スペースを含め4文字抽出 ・抽出データーを「値を複写」で処理 ・「置換」は「全角スペース+ワイルドカードのアスタリスク「*」」をブランクに置き換え

SHI-UE
質問者

お礼

ありがとうございます。 ワークシート上に形跡を残さずにやりたかったので、 VBAでと考えました。

回答No.1

NameArray = Split(Range("A1").Value, " ") MsgBox "姓:" & NameArray(0) & vbCrLf & "名:" & NameArray(1) または tmp = InStr(1, Range("A1").Value, " ") MsgBox "姓:" & Left(Range("A1").Value, tmp - 1) & vbCrLf & _ "名:" & Mid(Range("A1").Value, tmp + 1) こんな感じでどうですか?

SHI-UE
質問者

お礼

早々のご回答ありがとうございます。 最初の2行の方で出来ました。 助かりました。また宜しくお願いします。

関連するQ&A

  • Excelでセルに入っている数字又は文字のうしろに決められた数のスペースを入れるようにするには?

    エクセルでセルに入っている数字又は文字のうしろに決められた数のスペースを入れるようにすることって出来ますか? 例えば、 A1セルに 123456 という数字が入っていた場合 123456 の後ろに半角スペースを6コつけて 「123456_ _ _ _ _ _ 」 いう風に。 B1セルに 山田太郎 という文字が入っていた場合 山田太郎のあとに全角スペースを5コ入れて 「山田太郎_ _ _ _ _ 」 セルの数字を入力すると半角又は全角スペースを決められている数だけ自動で入力されるようにしたいのですが 何かいい方法はないでしょうか? accessでマクロ使ったほうが簡単かもしれないんですが、accessあまり分からないので・・。 説明がわかりにくくて申し訳ないんですがよろしくお願いします!!

  • 氏名データを姓と名前に分割する方法

    Excel2000を使用しています。 元データとしてセルに「山田 太郎」というように「姓△名前」が入力されており、 これを別のセルにスペースを利用して「山田」と「太郎」というように分割するには どのようにすればよいのでしょうか?

  • 全角スペースを削除するには?

    全角のスペースの削除の仕方を教えてください。 例を下に示します。 50桁の変数"name"の中身は"山田 太郎           "です。 変数の中身は、山田 太郎の後ろは全角のスペースが入っています。 名前の後ろの全角のスペースが半角4桁(全角2桁)以上ある場合は、 それ以降を削除したと思っています。 かなり困っています。良い方法をどなたかご伝授下さい。 宜しくお願いします。

  • エクセルで半角や全角スペースを自動改行したい。先ほどの質問と同様です。

    エクセルで半角や全角スペースを自動で改行するにはどのようにすればいいのでしょうか? 例えば、全角や半角のスペースを改行したい場合、 日本 アメリカ(全角スペース) 山田 太郎(半角スペース) などを 日本 アメリカ 山田 太郎 のように改行したいです。 よろしくお願いします。

  • 秀丸エディタで半角や全角スペースを自動改行したい。

    秀丸エディタを使っているのですが、マクロなどを使って半角や全角スペースを自動で改行するにはどのようにすればいいのでしょうか? 例えば、全角や半角のスペースを改行したい場合、 日本 アメリカ(全角スペース) 山田 太郎(半角スペース) などを 日本 アメリカ 山田 太郎 のように改行したいです。 よろしくお願いします。

  • エクセルで氏名のうち氏のみを表示したいのですが・・・。

    名簿を作っていまして現在はひとつのセルの中に「山田 太郎」のようにスペースをはさんで氏名が入力されています。これを他のセルに山田のみで表示させたいのですがどうにも良いアイデアが浮かびません。どなたか教えてください。

  • xls.のセルの入力規制について

    xls.のセルに あるセルには 半角、全角スペースを禁止する、 例)山田太郎 ○ 山田 太郎× 山田 太郎× もう一つのセルには、 ハイフン - を禁止するという入力規則を 数式でできますか。 例)090-5645-1232× 09012343212○

  • エクセルで 全角の空白を含むセルを見つけたい

    こんにちは。 エクセルを使っていて、姓名の間に半角の空白(スペース)を入れるはず なのですが、全角の空白を入れたデータがいくつか出来てしまいました。  (正) 山田 太郎  /ヤマダ タロウ・・・半角スペース  (誤) 山田 太郎 /ヤマダ タロウ・・・全角スペース これを探したいのですが(直すのはまた別のソフトなのです。 エクセルでチェックしながら直さないとなんです。不便。。) ご存知の方がいらっしゃいましたらよろしくお願いいたします!

  • エクセルVBAで指定先のセルの値でデータ抽出

    エクセルVBAで作った売上帳シートのF2セルに顧客名を入力するようにしています。 その入力した顧客名のみの内容をオートフィルで抽出させるようにしたいのですが、うまくいきません。 Sub 顧客抽出() Range("B4").AutoFilter Field:=2, Criteria1:="山田太郎" End Sub でマクロを実行させるとできるのですが、『山田太郎』の部分は、F2セルに入力した顧客名で実行させたいのです。 どのようにすればできるのでしょうか?

  • EXCEL 文字列間にスペース

    ひとつのセルにある文字列を入力すると自動的にその文字列の間にスペースが入る(たとえば『山田太郎』→『山田 太郎』)といったような関数か表示形式がありましたらおしえていただけないでしょうか。

専門家に質問してみよう