何とか一括で処理できないものでしょうか?
マクロだと 簡単なんですけどね。
マクロが使えるのならば 以下のもので試してみてください。
A列にあるものを A列とB列に分けます。
最初の
For a = 1 To 10000
の10000は、行数分に変更してください。
Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+q
'
For a = 1 To 10000
b = Range("A" & a)
If Len(b) > 0 Then
e1 = ""
e2 = ""
For c = 1 To Len(b)
d = Mid(b, c, 1)
If LenB(StrConv(d, vbFromUnicode)) = 2 Then
'全角
e1 = e1 & d
Else
'半角
e2 = e2 & d
End If
Next c
Range("A" & a) = e1
Range("B" & a) = e2
End If
Next a
End Sub
マクロだと 簡単なんですけどね。
マクロが使えるのならば 以下のもので試してみてください。
A列にあるものを A列とB列に分けます。
最初の
For a = 1 To 10000
の10000は、行数分に変更してください。
Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+q
'
For a = 1 To 10000
b = Range("A" & a)
If Len(b) > 0 Then
e1 = ""
e2 = ""
For c = 1 To Len(b)
d = Mid(b, c, 1)
If LenB(StrConv(d, vbFromUnicode)) = 2 Then
'全角
e1 = e1 & d
Else
'半角
e2 = e2 & d
End If
Next c
Range("A" & a) = e1
Range("B" & a) = e2
End If
Next a
End Sub
これで問題解決です。ありがとうございました。
A1に山田太郎tarouyamadaがあるとして
=LEFT(A1,LENB(A1)-LEN(JIS(A1)))
で漢字
=RIGHT(A1,LEN(A1)-LENB(A1)+LEN(JIS(A1)))
で半角アルファベット
でいかがでしょう?
ありがとうございました。
必ず、”山田太郎tarouyamada”のように日本語名が前半に来て、日本語名が全角なら、
=LENB()-LEN()
で全角文字数が計算されますので
left関数とrightb関数を使えば簡単です。
A1に入っていれば、
=LEFT(A1,LENB(A1)-LEN(A1))
=RIGHTB(A1,2*LEN(A1)-LENB(A1))
ありがとうございました。
エクセルの関数を使えば可能です。
”山田太郎tarouyamada”などのはいっているセルを
A1にはいっているものとします、
B1に『=LENB(A1)-LEN(A1)』
C1に『=MID(A1,1,B1)』
D1に『=MID(A1,B1+1,LENB(A1))』
で、C1に「山田太郎」、D1に「tarouyamada」
と入ります。
B1・C1・D1の書式はコピーすれば順次B2などに上手に
コピーされるので問題なく同じ書式をコピー出来ます。
エクセルのマクロやモジュールを使えばもっと上手に
切り分けられますが、WATANABEさんが出来るのか不明なので
セルに簡単に記載する方法で書きました。
ありがとうございました。
初めて回答してみます。
遠まわしな方法かもしれませんが、文字列の横に5列ほど新規で列を作成して、まず1列目(A1)に文字列"山田太郎yamadataro"だとしたら2列目(A2)に"=LENB(A1)"3列目(A3)に"=LEN(A1)"4列目(A4)に"=A2-A3"とする。
すると、A4セル内の数字が漢字の個数となります。
よって、5列目(A5)に"=LEFT(A1,A5)"とすると"山田太郎"と表示されて6列目に"=RIGHT(A1,A3-A4)"とすると"yamadataro"と表示されます。
とりあえず分離は出来たのでセル列5及び6をドラッグしてコピーの後、同列で形式を指定して貼り付け→値をすれば、文字列として存在します。
その後残りの計算列を削除すればよいと思います
これで問題解決です。ありがとうございました。