位置情報で子どもの居場所をお知らせ

セル内にある半角スペースのうち、右側にあって、文字に囲まれていないものを一括削除する方法をさがしています。

例)※␣と?は半角スペース。?のみを削除する。

      列A
行1 test01???
行2 test02␣01????
行3 ␣test03␣114?

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (10件)

With Range("A1", Range("A65536").End(xlUp))


.Value = Application.Trim(.Value)
End With

または、
=TRIM(A1)
    • good
    • 0

何度も投稿すみません


=LEFT(A1,FIND(REPT(" ",99),A1&REPT(" ",99))-1)
で良かったです。
最初や途中に99文字分の半角スペースがないことが条件です
    • good
    • 3

スペースがなかった場合を検証してなかった


ちょっとの違いだけど
=LEFT(A1&" ",FIND(REPT(" ",99),A1&REPT(" ",99))-1)
    • good
    • 2

keithinさんの考えにはただただ感服するばかりです


おかげで
=LEFT(A1&" ",FIND(REPT(" ",99),A1&REPT(" ",98))-1)
に至りました
    • good
    • 0

言葉通りを数式にして


=LEFT(A1,LEN(A1)+1-MIN(IF(MID(A1,LEN(A1)+1
-COLUMN(A1:INDEX(1:1,LEN(A1))),1)<>" ",COLUMN(A1:INDEX(1:1,LEN(A1))))))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
    • good
    • 0

>右端(行末)のスペースを削除



割と安直な数式で
=LEFT(A1,MAX((MID(A1&REPT(" ",99),ROW($A$1:$A$99),1)<>" ")*ROW($A$1:$A$99)))
と記入し,必ずコントロールキーとシフトキーを押しながらEnterで入力。
    • good
    • 0

>例)※␣と?は半角スペース。

?のみを削除する。
削除したい文字が特定している場合は次の関数式で削除できます。
但し、文字列の途中に有る文字も削除されます。

=SUBSTITUTE(A1,"?","")
「【エクセル】セル内の右側のみ半角スペース」の回答画像4
    • good
    • 0

数式にこだわる場合こんな感じでどうだろうか。



=REPT(" ",FIND(TRIM(A1),A1)-1)&TRIM(A1)
    • good
    • 1

間違えました。

右側でしたね。VBAなら簡単にできます。

Sub macro()
Dim C As Range
For Each C In Range("A1:A3")
C.Value = RTrim(C.Value)
Next C
End Sub
    • good
    • 0

A1のセルにデータがあるとして



=RIGHT(A1,LEN(A1)-FIND(TRIM(A1),A1)+1)
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qセルの文字列後ろのスペース削除

Excel2007を使用しています。

意図せずに、セルの文字列の後ろにスペースが入っている事があります。

大量のセルがある為、簡単な操作にてシート単位または列の単位にて、スペースをまとめて削除をしたいと考えています。

この操作の方法を教えてください。

Aベストアンサー

既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。

文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。

=left(a1,len(a1)-or(right(a1)={" "," "}))

No.2 さんも言及されていますが、文字列の最後に改行の文字列が付いている場合、右端はスペースではないと判断されてしまうので、注意してください。改行の文字列を削除するには、CLEAN 関数を使うか、または置換ダイアログにおける Ctrl+J のキー操作により除去します。

● =clean(a1)
または
●置換ダイアログの「検索する文字列」にカーソルを置いて Ctrl+J のキーを 1 回だけ押す。このとき見かけ上は何の変化もないが、目に見えない何かが入力されているので、気にしない。「置換後の文字列」には何も入力しないまま、「すべて置換」または「置換」ボタンにより実行すると、改行が除去される。

既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。

文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。

=left(a1,len(a1)-or(right(a1)={" "," "}))

No.2 さんも言及...続きを読む

QEXCELの文字列操作で文字数不足の分をスペースで補う方法

EXCELの文字データを取り出す際に以下のような操作を行いたいんですが、方法をご存知の方がいらっしゃいましたら教えていただけませんでしょうか。

既にデータの入力されているセルの文字数が、ある一定数に満たない場合は不足分を半角スペースで補う

【例】文字数を15と指定したとします
セルに入力されたデータ:山田_ 太郎
   ↓
求めたいデータ:山田_ 太郎_ _ _ _ _ _
(山田の後に半角スペースが1、太郎の後に半角スペースが6つ入っていると仮定してください)

※TEXT関数で数値の文字数不足分を0で埋めるということはできたのですが、TEXT関数は数値のみを対象としているようで・・・。
【例】12345 → 000000000012345

よろしくお願いいたします。

Aベストアンサー

A1に「山田 太郎」が入っている場合、
 =LEFTB(A1&REPT(" ",15),15)
と式を立てればOKです。

LEFBは、左側から指定バイト分(半角1バイト・全角2バイト)を抜き出す関数。
REPTは、所定の文字をくり返す関数です。

Q文字列末尾のスペースを削除したい

Excelのセルに入っている文字列末尾のスペースを削除したいのですが良い方法はありませんか。
セルの数が少なければ一個ずつ削除するのですが、数百個もあるのでできれば関数を使用して一気に処理したいです。
バージョンはExcel97を使用していますが、2000ならできるという情報でも構いません。よろしくお願いします。

Aベストアンサー

A1に文字があるとして
=Trim(A1)
で空白が削除されます。先頭、末尾の空白は削除、文字中の複数の空白は1つになります。

Q文字列として"(ダブルコーテーション)を表示させる方法

こんにちは。文字列として、ダブルコーテーションを表示させるには、どうすればよいのか教えてください。m(__)m


例えば、
<font size="2">あいうえお</font>

というタグの「あいうえお」の部分が、セルA1にあった場合、

="<font size="2">"&A1&"</font>"という表示にしたいのです。

"2"のダブルコーテーションも文字列として表示させるには、どうすればよろしいのでしょうか。

教えてください。よろしくお願い致します。

Aベストアンサー

こんにちは~

表示形式は 「標準」 のままで、
ダブルコーテーションを、ダブルコーテーションで囲んでください。

""2""

="<font size=""2"">"&A1&"</font>"

としてみてください。

Q3つの表の外部結合

表A、B、Cの3つがあり、Aのすべての行を出力したいと考えています。
外部結合を用いるのだとは思うのですが、3つの表に対して行う場合の
書き方がわからず困っています。
ご教授いただけないでしょうか?
select * from a,b,c
where a.商品ID =b.商品ID (+) and b.商品ID (+) =c.商品ID (+)
としてみましたが、うまくいきませんでした。

Aベストアンサー

ansi構文の趣旨からいえば、結合条件と絞り込み条件は分けて書くので・・

select *
from a
left join b on (a.商品ID =b.商品ID)
left join c on (b.商品ID =c.商品ID)
where a.年月 = 任意の値

と書くのが一般的でしょうね。

Q全角空白のTRIMができない・・・

文字列の前後の全角空白を除去するのに
trimが使えると思っていたのですが、できませんでした。
(半角なら取れるのですが・・・)

select trim(' あいうえお ') from dual;

何とか前後の全角空白を除去したいのですが、
何か方法はないでしょうか。

Aベストアンサー

こんな感じ。
select trim(' ' from ' あいうえお ') from dual

第2引数で消したい文字を指定できます。
select rtrim(ltrim(' あいうえお ',' '),' ') from dual

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルで左端のスペースを削除したいです。

こんにちは いつもお世話になっています。

エクセル2003を使っています。
A列に人名の文字列があります。左端に半角のスペース、文字列の中に全角のスペース、右端にスペースはありません。文字の個数は人名のため様々です。
ここで、左端の半角スペースだけを削除したいのです。
Ltrim関数というのが当てはまるのでしょうか。
半角スペースの削除の方法を教えてください。

Aベストアンサー

LTRIM関数というのはエクセル関数に無いようだ。
Googleででも「エクセル LTRIM]で照会すれば、ここに質問するまでも無いこと。
http://www.relief.jp/itnote/archives/001799.php
ここに書かれている
>VBAのTrim関数を呼ぶユーザー定義関数を作成するのが手っ取り早いでしょう
標準モジュールに
Function ltri(a)
ltri = LTrim(a)
End Function
ーー
使い方はセルで
例えばB2セルに  =Ltri(A2) 
テスト例
aaaaaaaa
 dddddddd
ss sssfss sssf
asas
aaf sdf aaf sdf
先頭の全角スペースも省くようだ(其れで良いでしょう)

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。


人気Q&Aランキング