- ベストアンサー
セルの文字列後ろのスペース削除
Excel2007を使用しています。 意図せずに、セルの文字列の後ろにスペースが入っている事があります。 大量のセルがある為、簡単な操作にてシート単位または列の単位にて、スペースをまとめて削除をしたいと考えています。 この操作の方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。 文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。 =left(a1,len(a1)-or(right(a1)={" "," "})) No.2 さんも言及されていますが、文字列の最後に改行の文字列が付いている場合、右端はスペースではないと判断されてしまうので、注意してください。改行の文字列を削除するには、CLEAN 関数を使うか、または置換ダイアログにおける Ctrl+J のキー操作により除去します。 ● =clean(a1) または ●置換ダイアログの「検索する文字列」にカーソルを置いて Ctrl+J のキーを 1 回だけ押す。このとき見かけ上は何の変化もないが、目に見えない何かが入力されているので、気にしない。「置換後の文字列」には何も入力しないまま、「すべて置換」または「置換」ボタンにより実行すると、改行が除去される。
その他の回答 (4)
- kybo
- ベストアンサー率53% (349/647)
同じような質問がありましたのでリンクしておきます。 http://questionbox.jp.msn.com/qa8462353.html この程度のマクロなら簡単に作れるので、あれこれ悩まずにVBAで終わらすのが簡単です。 Sub macro() Dim C As Range For Each C In Selection.SpecialCells(xlCellTypeConstants) C.Value = RTrim(C.Value) Next C End Sub
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
右側の半角スペースを除く =LEFT(A1,FIND(REPT(" ",99),A1&REPT(" ",99))-1) 右へ下へオートフィル コピー (そのまま)値の貼り付け
- MackyNo1
- ベストアンサー率53% (1521/2850)
>意図せずに、セルの文字列の後ろにスペースが入っている事があります。 本当にこの文字が「スペース」で文章の間にあるスペース以外を除きたいならTRIM関数を使って前後のスペースを削除し、この数式で表示されたデータをコピーして、そのまま右クリック「形式を選択して貼り付け」で「値」にします。 =TRIM(A1) #Webページなどからコピー貼り付けしたような場合は、実際はスペースではなく、目に見えない文字コードが入力されている場合もありますので、このケースでは別の対応が必要となります。
- denbee
- ベストアンサー率28% (192/671)
私がよく使うのは、Excelの置換機能を使って 置換対象文字:「 」(スペース) 置換後の文字:「」(何もなし) にして全置換を行うと、全てのスペースが消えます。 ただし、この方法は無条件に全てのスペースを消してしまいますので、 文字列の中に消したくないスペースがある場合は一工夫必要になります。 あと、スーペースにも全角スペースと半角スペースがありますので、 その区別も必要です。