• ベストアンサー

エクセル(CSVでも)文字列内で不要なデータを消す

山田太郎03-5555-5555 山田太郎(義男さんの息子さん) こういったエクセルデータを、どちらも 山田太郎 に変換処理したいと思います。 よい方法はありますでしょうか。 エクセル関数でもテキストの処理でもよいです。 記号や数字を除くには、 https://excelkamiwaza.com/kigou_del.html などで行けそうですが、 (かっこ)を、中身含めて削除する方法について、困っています。 何かあれば、よろしくお願いいたします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

山田太郎03-5555-5555のほうは =LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)&"0123456789"))-1) 山田太郎(義男さんの息子さん)ほうは =LEFT(A2,FIND("(",ASC(A2),1)-1) & RIGHT(A2,LEN(A2)-FIND(")",ASC(A2),1)) で取り出せます。

spongetak
質問者

お礼

なるほどです、ありがとうございます! こうやってFind関数使うのですね。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1です。記事が見つかったので追加で。 ( )内の文字数字を括弧も含めて削除する方法。 https://prau-pc.jp/excel/delete-parenthesis/ ここでいう、ワイルドカードを理解すると便利だ。 ーー カッコが、データのある行によって、半角と全角の場合が混合しているなら 半角の場合と全角の場合の操作を繰り返せばよい。 ーー 関数でやるなら、( )内の文字列削除は、 例 A1       B1  C1   D1 aa(xxx)1234  3  7  aa1234 ()は半角文字の例とする。 B1セルの式 =FIND("(",A1) C1セルの式 =FIND(")",A1) D1セルの式 =REPLACE(A1,C1,D1-C1+1,"") B1,C1セルを使わない式にする方法は、ご存じだろう。

spongetak
質問者

お礼

なるほどです、私も何かしらワイルドカードを使ってできるのではないかと思っていたのですが、こんな風に使えるわけですね。ありがとうございます!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問内容について、捕捉が必要だろう。 質問の書き振りから、この問題に対処する力はないものと 想像される。 >不要な  ーー>これで他人にわかるはずがない。 質問の名前の例が果たして質問者の実例かどうか、にも疑問がある。 (必要な(箇所)ものを探す、タイプとすると) 名前は人間なら9割り方、読めば判別して取り出せるが、伝統的な プログラムでは( (AIなどならできるかもしれないが)、10万以上ある名前のテーブルが必要で 、そういう方法も難しい。人間も名前かどうか、迷う名前も多い。 (不要なものを消す、タイプとすると) 不要なもの(箇所)は、( )で囲われている箇所、などの例があるが、 本件では、そうでない例も挙げている。 「数字部分」を削除する、というのもエクセル関数ではむつかしかろう。 VBAでは https://www.moug.net/tech/exvba/0140017.html ーー 実例でもたくさん質問に上げて、読者に想像してもらう手もあるが、 好ましい方法ではない。 === 取り敢えず、もう少し例を挙げるか、文章を追加して説明が必要 だろう。  正規表現などの応用例かもしれないが、これも理解がむつかしい。

関連するQ&A