Excelについて質問です。

半角英数と全角文字混在する文字列から全角文字のみを消去し半角英数のみを残す。こんな事をする方法があれば教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/10/24 20:12:37
  • 終了:--

回答(2件)

id:hidesh No.1

hidesh回答回数43ベストアンサー獲得回数02005/10/24 21:50:47

ポイント30pt

全角と半角を相互変換する関数ならありますが、消去はないです。

http://kokoro.kir.jp/excel/asc.html


そこで、全角文字を空白等に置換(A→(空白)、B→(空白)...Z→(空白))し、置換により消去((空白)→消去)するマクロを組まれてはいかがでしょうか

id:tk378mx

早速ありがとうございます。

ちょっと説明不足だったので補足しますと、使用するデータは「1ハワイ2グアム」や「a会社員b主婦」の様な形式の日本語を多く含むデータから頭に付く数字又は英数のみを取り出す、と言う事がしたいのです。また同一セルに複数のデータ「1ハワイ2グアム」と続けて入っている場合も有るので左端だけを取り出すと言う関数は使用できません。

最終的には元のデータベースを改良してもらえば何とか成るとは思うのですが、エクセルで簡単にできる方法があれば知りたいのでもう少し続行してみます。

2005/10/25 10:31:29
id:island_hate No.2

island_hate回答回数46ベストアンサー獲得回数12005/10/25 12:26:07

ポイント40pt

http://www2.odn.ne.jp/excel/

Excel(エクセル)技道場

入るパターンの数にもよりますが――

例えばB列に入るのは、数字で1~9、C列に入るのは、アルファベットでa~d、といったような法則があり、なおかつ残したいものとそうでないものが「1ハワイ2グアム」というように交互に出現するのであれば、次の方法はどうでしょうか?


1.「1⇒1,」「2⇒2,」といったように、列全体に対して、カンマを後ろにおいた文字に置換する

2.置換した列の後ろに列を可能性のある最大数分明けて、カンマで区切る

3.残したい文字と消したい文字の列は交互に出現するので、1列飛ばしに列を削除する

4.新しい列に「=セル番地&セル番地&セル番地・・・」といった数式を入れ、切り離してしまった残したかった文字をつなげ、それを値に置き換える

5.処理に使用した不要な列を削除する


書き出すと作業が多そうですが、1~9の文字が含まれるもので処理する時間は、1分ぐらいです。行が増えても大きく所要時間は左右されません。マクロを用意すれば、置換のミスもなく済むと思います。


参考になれば幸いです。

id:tk378mx

ありがとうございます。

関数ばかり考えていたので気づきませんでしたが、この方法でほぼ解決できそうです。

大変参考になりました、ありがとうございました。

2005/10/25 20:55:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません