• 締切済み

エクセルの英数入り交じったデータに、ハイフンを入れるにはどのようにすれば良いでしょうか・・・

はじめまして。 今、エクセルにてデータ整備をしています。 英数入り交じったデータにハイフンを入れるのですが、 数が多いため、できれば数式で処理したいと思っています。 単純に、全てのセルの同じ箇所(例えば4ケタ目の後、などに) ハイフンを入れるだけの数式なら問題ないのですが、 英数の文字数がデータによってマチマチです。 結果的には、全てのデータを「英字 -(ハイフン)数字」にしたいと思っています。 英語と数字を見分けて、かつ、ハイフンを間に入れるような数式はあるのでしょうか? 何か良い方法があれば、ぜひ教えていただだければと思います。 どうぞ宜しくお願いいたします。 例)ABCD1234 → ABCD-1234   AB12345 → AB-12345

みんなの回答

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆文字+数字 であれば =LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)&1234567890))-1)&"-"&LOOKUP(10^10,RIGHT(A1,COLUMN(1:1))*1) または、 =SUBSTITUTE(A1,LOOKUP(10^10,RIGHT(A1,COLUMN(1:1))*1),"-"&LOOKUP(10^10,RIGHT(A1,COLUMN(1:1))*1))

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

IsNumeric関数が使えるようです。 VBAは好き嫌いあるようですが。 Sub test01() d = Range("A65536").End(xlUp).Row For j = 2 To d s = Cells(j, "A") For i = 1 To Len(s) If IsNumeric(Mid(s, i, 1)) Then Cells(j, "B") = Left(s, i - 1) & "-" & Right(s, Len(s) - i + 1) GoTo p01 End If Next i Cells(j, "B") = s p01: Next j End Sub 結果 ab123 ab-123 大阪市234  大阪市-234 福岡t34  福岡t-34 sdfgh sdfgh cvb cvb

回答No.1

以前のこちらの回答が参考になると思います。 あとはB1&"-"&C1としていただければ。 ただし、セルを3つ使うことになりますが。。。 http://oshiete1.goo.ne.jp/qa2333142.html

参考URL:
http://oshiete1.goo.ne.jp/qa2333142.html
cct
質問者

お礼

早速やってみました!! どうもありがとうございます。 以前に同じような質問があったのですね。。。 ものすごく助かりました。