| 違反投稿 |
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えお」は「あいうえお」になります。)
#マクロを書くべきかもしれません。 |