解決済

clip!clip!
Ads By Google

エクセルについてお尋ねします。

一つのセルに
「123あいうえお」
と入力されています。このうち、半角の数字だけを自動的に消去して、
「あいうえお」
とする方法はありますか。同じようなセルが多数行にわたってあるので、できれば一括して消去したいのです。また、関数を使って始めから半角数字を表示させない方法はありますか。やはり無理でしょうか。

2006-07-03 22:59の質問
エクセル  
エクセル
日本最大級のインポートショップ。世界の一流ブランド品等を豊富な品揃えとリーズナブルな価格でご提供。
www.x-sell.jp/p-shop/
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(2)

3.

2006-07-03 23:49:52ベスト
Excel関数だと、正規表現関数が用意されてないので、これは結構面倒です。
今、A1のセルに
123あいうえお
が入力されていたとします。まず、先頭から何文字目まで数字になっているのかをテストするために、次のようにします。
B1:=ISNUMBER(VALUE(LEFT(A1,1)))
C1:=ISNUMBER(VALUE(LEFT(A1,2)))
D1:=ISNUMBER(VALUE(LEFT(A1,3)))
E1:=ISNUMBER(VALUE(LEFT(A1,4)))
F1:=IF(E1,4,IF(D1,3,IF(C1,2,IF(B1,1,0))))
4桁以内を仮定しましたが、もし多い場合はさらに増やして下さい。これで、F1のセルに何桁の数字が先頭に書いてあるかわかります。次に、
G1:=VALUE(LEFT(A1,F1))
として、該当の桁数の数字だけ取り出します。VALUEをかませてあるのは、ここの部分は数値として認識させて後で使えるようにです。最後に、
H1:=SUBSTITUTE(A1,G1,"",1)
として、置換でG1(=123)を消してできあがりです。

残りのデータについては、B1~H1まで選択して、選択範囲の右下にカーソルをもっていき「+」のフィルハンドルを出して、ダブルクリックすれば、データの一番下までオートフィルされます。

セルの書式で表示されなくするのは、無理な気がします。できたとしても、データ自身は「123あいうえお」です。
>>1
のあつ☆さんの方法は、
SUBSTITUTE(SUBSTITUTE(...(SUBSTITUTE(A1,9,"")...,1,""),0,"")
ということですが、これは、文字列内に半角数字が入ってなければ成功します。(「123あいう23えお」は「あいうえお」になります。)

#マクロを書くべきかもしれません。
回答レベル : 回答

回答ありがとうございました。途中まで解決してくださったので、何とか解決できました。
G1:=LEN(A1)
H1:=G1-F1
I1:=RIGHT(A1,H1)
でよいようです。

2.

2006-07-03 23:21:12ベター
=SUBSTITUTE(文字列,数値,"")

数値の部分を0~9までになる入れ子の関数を作ればどうですか。

回答ありがとうございました。何とか解決できました。

Ads By Google

コメント(3)

2006-07-03 23:51:14

「123,あいうえお」という風に区切り文字が入っていれば処理はずっと楽になるのですが・・・。

#2.  nn
2006-07-04 01:09:37

>>#1教えてくださった方法の最後の部分を勝手に変えてしまいました。すみません。

2006-07-04 01:31:59

ベストありがとうございます^^
謝る必要なんてないですよー!数字の部分も取り出した方が嬉しいかな、と勝手に解釈して、回答1のようにしましたが、要らないなら、RIGHTでももちろん問題ないです。

トラックバック(2)

トラックバックURL: