• ベストアンサー

Excel関数について

WindowsXPのExcel2003を使用しています。 あるデータ(文字列)の先頭の空白を削除して、 文字列を再取得したいのですが、うまくいきません。 例えば、 「 test これはテストです。」 という文字列を 「test これはテストです。」 という風に、頭のスペースのみ削除したいです。 何かいい方法はありますでしょうか? ちなみに文字列は決まっていません。 find関数等で、"スペース以外の最初の文字位置"などが取得できるといいと思っているのですが。。。 よろしくお願いします。

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

  • ベストアンサー
回答No.6

ちょっといい加減なんですが、 =MID(A1,SEARCH(LEFT(TRIM(A1),1),A1),LEN(A1)) はどうでしょうか? =SEARCH(LEFT(TRIM(A1),1),A1) で、空白を除いた最初の文字が元の文字列の何番目かはわかるんですが、midで何文字目から最後までというのは無かったでしたっけ?

olive_surf
質問者

お礼

ご回答ありがとうございます。 > =SEARCH(LEFT(TRIM(A1),1),A1) これありがとございます。 あとは力技で。。。↓ =MID(A1,SEARCH(LEFT(TRIM(A1),1),A1),LEN(A1)-SEARCH(LEFT(TRIM(A1),1),A1)+1) 解決できました。 皆さん、いろいろなご意見ありがとうございました。

その他の回答 (5)

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.5

VBAも使用不可ですか? VBAを使えば、一発なんですけどね [出力セル]=LTrim([検索セル]) これだけで左のスペースを削除 ではワークシート関数で =IF(LEFT(F30,3)="   ",RIGHT(F30,LEN(F30)-3),IF(LEFT(F30,2)="  ",RIGHT(F30,LEN(F30)-2),IF(LEFT(F30,1)=" ",RIGHT(F30,LEN(F30)-1)))) くっ 長ぇ 途中でめんどくさくなったので、3個まででご容赦を^^; 全半角はたしか検索などの設定で、認識不認識が選べたハズです デフォルトで認識しない(A=a 全角A=半角小文字a)だったと思います ダメならスペースを半角にしてみてください 投稿時に連続した半角スペースが1個にされてしまうので、全角です あとはパターンにしたがって増やせば幾らでも と言いたいところですが、確か長すぎるのは出来ない(文字数か複雑すぎるのがダメのかは失念)ので、その場合は… 次の人どうぞ

olive_surf
質問者

お礼

ご回答ありがとうございます。 文字列の個数が限定されていれば、仰るとおり力技でできるのでしょうが。。。

olive_surf
質問者

補足

あ、すいません。忘れてました。 VBAではなく、関数っていうところが面倒くさいところで。。。(苦笑)

noname#79209
noname#79209
回答No.4

以下のような「正規表現による検索・置換」アドインを使って 検索文字列:「^[\s ]+」...行頭にある半角と全角のスペースの連続を表します。 置換文字列:「」...........なにも指定しない(つまり削除) とすれば行頭にある半角と全角のスペースを削除できます。 行頭にスペースが連続(半角、全角が混在しても)していても削除可能です。 http://srcedit.pekori.jp/tool/excelre.html インストール方法や使用法は、解凍して得られるテキストファイルを参照してください ダイアログの表示は「CTRL+R」です。 ご参考まで...

olive_surf
質問者

お礼

ご回答ありがとうございます。 標準でできる必要がありますので、アドイン等は使えないのです。 情報ありがとうございました。

  • dai_1376
  • ベストアンサー率27% (14/51)
回答No.3

では、 =TRIM(対象セル) はどうですか? (□■はスペースです) □□□あああ■□□あああ 上のようなセルの場合、□はこの関数で消えます。 途中の■は残ります(途中にあるものは1つを残して消えます。)。

olive_surf
質問者

お礼

ご回答ありがとうございます。 いい感じで文字列処理ができましたが、できれば先頭のスペース以外は残したいのです。 他によい方法ってありますでしょうか? □□□あああ■■■あああ このように■を残したいです。。。

回答No.2

olive_surfさん、こんにちは。 =TRIM(文字列)を使ってみては、いかがでしょうか。 文字列に複数のスペースが連続して含まれている場合、単語間のスペースを 1 つずつ残して、不要なスペースをすべて削除します。TRIM 関数は、ほかのアプリケーションから読み込んだテキストに不要なスペースが含まれているときなどに使用します。(Excelのヘルプより)

olive_surf
質問者

お礼

ご回答ありがとうございます。 いい感じで文字列処理ができましたが、できれば先頭のスペース以外は残したいのです。 でもこの辺がExcel関数の限界でしょうか。。。

  • dai_1376
  • ベストアンサー率27% (14/51)
回答No.1

MID関数はいかがでしょうか? =MID(対象セル,何文字目から,何文字分) という関数です。 最後の何文字分のところは、決まりがなければ大きな数字を 入れてしまえば取り逃しが無いと思います。

olive_surf
質問者

お礼

ご回答ありがとうございます。 > =MID(対象セル,何文字目から,何文字分) という関数です。 すいません。説明不足でしたが、頭にくる空白の文字数はランダムなのです。 なので、"何文字目から"というのがわからないのです。 他に何かよい方法はありますでしょうか?