- ベストアンサー
末尾の数字を文字列から消去する
office2010 A列に8桁の文字列が複数行入っています。 A1B00001 A1CB0002 A1NDE302 … この状態で後側の数字(一番最後の英の文字列を残す)を消去したいです。 消去された文字列はB列に表示。 上記の場合 A1B A1CB A1NDE … をB列に表示する方法を教えていただきたく。 関数、VBAどちらでも可です。 数字だけを消去というのはWEBで探せたのですが、英と英の間の数字は残したいのです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- msMike
- ベストアンサー率20% (368/1812)
B1: =LEFT(A1,SMALL(IF(ISNUMBER(1*MID(A1,COLUMN(A:H),1)),COLUMN(A:H),""),2)-1) 【お断り】上式は必ず配列数式として入力のこと
お礼
回答ありがとうございます。 サンプル試しましたが、 H2000000の結果がH2 BHD00000の結果がBHD0 と数字が残ってしまいます。
- bunjii
- ベストアンサー率43% (3589/8249)
>A列に8桁の文字列が複数行入っています。 > ・・・・中略・・・・ >をB列に表示する方法を教えていただきたく。 A1セルの文字列を処理してB1列へ代入する数式は下記のようになります。 =LEFT(A1,MAX(INDEX((CODE(MID(A1,COLUMN(A1:H1),1))>57)*COLUMN(A1:H1),0)))
お礼
ステキです、ありがとうございます。
- mt2015
- ベストアンサー率49% (258/524)
ごめんなさい、ANo.3だと7ケタですね。 8ケタに訂正します。 =LEFT(A1,MAX(ISERROR(1*MID($A1&"00000000",COLUMN(A1:H1),1))*COLUMN(A1:H1))) これをCtrl+Shift+Enterで確定してください。
お礼
ステキです、ありがとうございます。
- mt2015
- ベストアンサー率49% (258/524)
- aokii
- ベストアンサー率23% (5210/22063)
T列に表示させた場合ですが、以下の方法でいかがでしょう。 BからI列に =MID($A1,COLUMN(B1)-1,1) JからQ列に =IF(ISERR(B1+0),"a",B1+0) R列に =Q1&P1&O1&N1&M1&L1&K1&J1 S列に =10-FIND("a",R1) T列に =LEFT(A1,S1-1)
お礼
回答ありがとうございます。 考え方、参考になりました。 ちょっと作業列を多く使用するのが、難点でした。
お礼
回答ありがとうございます。 他の方々にも、いろいろ事例を紹介いただきましたが、mt2015さんの事例が、私の知らなかったユーザ関数というもので、今後いろいろ活用できそうなので、こちらをベストアンサーとさせていただきます。