- ベストアンサー
エクセル 関数 文字列を分ける
23Ar23 28Ar05 3Ta16 8Ta07 11Ta53 14Ta21 …以下多数 のように文字列があって、アルファベット前の数字(1文字か2文字)、アルファベット(2文字)、アルファベット後の数字(2文字)の3つに分割したいのです。データ区切り位置の機能を使えれば簡単ですが、アルファベットの前の文字数が1字と2字のものがあるのでできません。RIGHT、LEFTの関数を使用すれば、アルファベット2文字とアルファベット後の数字2文字は抽出できますが、アルファベット前の数字(1文字か2文字)だけ取り出せません。 関数か何かの方法で文字数を分ける方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
=LEFT(A1,1+(LEN(A1)=6)) ’左から1または2文字 =MID(A1,2+(LEN(A1)=6),2) ’左から2または3文字目から2文字 =RIGHT(A1,2) ’右から2文字 1+(LEN(A1)=6)等の部分は、IF(LEN(A1)=6,2,1)などのようにしても勿論かまいません。
その他の回答 (1)
- bunjii
- ベストアンサー率43% (3589/8249)
提示の模擬データのように数字英字数字の組み合わせとして検証してみました。 元データの文字列長は10文字としています。 A列1行目から10行目まで元データがあるものとした検証です。 B1=IF(A1="","",VALUE(LEFT(A1,MIN(IFERROR((CODE(MID(A1,COLUMN(A1:J1),1))<CODE("A"))*100+COLUMN(A1:J1),100))-1))) C1=IF(A1="","",SUBSTITUTE(LEFT(A1,MAX(IFERROR((CODE(MID(A1,COLUMN(A1:J1),1))>=CODE("A"))*COLUMN(A1:J1),0))),B1,"")) D1=IF(A1="","",VALUE(SUBSTITUTE(A1,B1&C1,""))) B1とC1の数式は計算途中で配列値を返す必要があるため数式の確定時にCtrl+Alt+Enterキーを打鍵します。 B1:D1を一括して下へ10行目までコピーしました。 Excel 2007以降のバージョンで再現できるはずです。
お礼
すみませんが、何かできませんでした。
お礼
早々にありがとうございます。バッチリできました。