- ベストアンサー
文字列内の記号、スペースなどを削除する方法
エクセル2000 OS:WinXPpro 本人の技量レベル:VBAはコピペして実行しても、修正が出来ないので、なるべく関数で処理したい。 半角カタカナ英数だけの文字列を作りたいのです。 元のデータには()などの記号、句読点、スペース等が含まれています。 一応TRIM関数で余分なスペースは削除しましたが文字列中の半角スペースが残っています。 これを半角カタカナ英数だけを残してベタの文字列にしたいのです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
=SUBSTITUTE(SUBSTITUTE(C1,"-","")," ","")
その他の回答 (5)
- sakenomo
- ベストアンサー率52% (35/67)
#5です。 >9個繋ぐと数式エラーがでます。理由は不明です。 こちらのテストでは、最終列まで数式を入れてもエラーになりませんが…。(?_?) いろいろ試してみましたが、エラーを再現できませんでした。 エクセル(2003)の仕様によると関数のネストは7つまでとのことで、要求される処理を1つの数式でこなすことには無理がありそうです。 あと、 >削除対照が沢山あるということなら、 削除"対象"、でした。
お礼
ごめんなさい、言葉が足りませんでした。 エラーが出るのは、SUBSTITUTE関数のことです。ネストの個数オーバーなのですね、すみません、知りませんでした。お手数かけてしまって、ほんとにごめんなさい。 半数カナに自動的に変換する作業はほぼ完全できるようになり、手修正はほとんど不要になりました。 ありがとうございました。
- sakenomo
- ベストアンサー率52% (35/67)
削除対照が沢山あるということなら、手間はかかりますが、 セルA2に文字列を入れ、B1、C1、D1・・・に削除したい記号や句読点を、1つずつ入力します。 B2に、=SUBSTITUTE(A2,B$1,"") を入れて、右へオートフィルでいかがでしょうか。長い関数を書くよりもラクな気がしますが。
お礼
9個繋ぐと数式エラーがでます。理由は不明です。 二つの方法を併用するとカバーできそうです。 どうもありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
編集-置換-(検索する文字列)半角1スペース(場合によっては全角1スペース)-(置換後の文字列)なにも入れない、で全て置換をクリックで半・全角スペースやその他の文字が削除できるはずです。
お礼
回答ありがとうございます。 #4さんの関数式で解決できました。
ヘルプは読みましたか?
補足
読みました。が、置換え文字列・置換え対象に当たるものが無いのです。説明不足で作業イメージが違うようなので、補足します。煩雑ですが、ご容赦ください。 作業の例を書きますと、1.フリガナを設定したA列に日本語「図08-1 参照」を入力する。2.B列に=PHONETIC、で「ズ08-1 サンショウ」を表示する。 3.C列に=ASC、で半角表示「ズ08-1 サンショウ」。(この欄は半角カナが表示されないので、全角カナになりますが) ここまではできました。 次に、スペース・記号・句読点等を削除して、半角英数カナだけの文字列にしたいのです。 4.D列に「ズ081サンショウ」と表示する。 A列に入力すると、順次D列に「半角英数カナのベタ文字列」が表示されるようにしたいのです。 入力データは最初のA列だけなので、SUBSTITUTE関数で要求される「置換える文字列」とか「置換対象」がないと、思ったのですが、なんとかなるでしょうか?
(1) ワークシート関数のSUBSTITUTE関数 (2) VBAのReplace関数 のどちらか。
お礼
回答、ありがとうございます。 でも、ごめんなさい、使い方がよく解りません。 たとえば、セルA1に“()ヲサクジョ”と入力したら、B1に“ヲサクジョ”と表示させたいのです。 入力は一度だけで、自動的に変換して欲しいので、 「置き換え」とはちょっと違うかな、と思うのですが。
お礼
たびたびありがとうございます。 試してみました。=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C1,"-","")," ",""),"。","")・・・と、削除対象をそれぞれブランクに置換えていけばよいのですね。 削除対象は10個以上はありそうなので、かなり長い関数になりますが、作業は相当に省力化できます。 どうもありがとうございました。