「教えて!ピックアップ」リリース!

はじめまして。
今、エクセルにてデータ整備をしています。

英数入り交じったデータにハイフンを入れるのですが、
数が多いため、できれば数式で処理したいと思っています。

単純に、全てのセルの同じ箇所(例えば4ケタ目の後、などに)
ハイフンを入れるだけの数式なら問題ないのですが、
英数の文字数がデータによってマチマチです。

結果的には、全てのデータを「英字 -(ハイフン)数字」にしたいと思っています。

英語と数字を見分けて、かつ、ハイフンを間に入れるような数式はあるのでしょうか?

何か良い方法があれば、ぜひ教えていただだければと思います。
どうぞ宜しくお願いいたします。

例)ABCD1234 → ABCD-1234
  AB12345 → AB-12345

A 回答 (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))
    • good
    • 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
結果
ab123ab-123
大阪市234 大阪市-234
福岡t34 福岡t-34
sdfghsdfgh
cvbcvb
    • good
    • 0

以前のこちらの回答が参考になると思います。


あとはB1&"-"&C1としていただければ。
ただし、セルを3つ使うことになりますが。。。

http://oshiete1.goo.ne.jp/qa2333142.html

参考URL:http://oshiete1.goo.ne.jp/qa2333142.html
    • good
    • 0
この回答へのお礼

早速やってみました!!
どうもありがとうございます。

以前に同じような質問があったのですね。。。

ものすごく助かりました。

お礼日時:2007/08/10 18:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


人気Q&Aランキング