- ベストアンサー
Excel セル内の文字と数字をわけるには??
一つのセルの中に、文字と数字が入っているのですが、 それを別々のセルに分けたいのです。。。 例) 後楽1-1-1 → 後楽 と 1-1-1 西新宿2-2 → 西新宿 と 2-2 どなたか良い方法をご存知でしたら、教えて下さい~!!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
↓こちらの26番「数字で始まる部分から区分」を参考にしてください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
全角文字ばかりのとき。 関数を標準モジュールに作ります。 Function fndsuu(a) s = "0123456789" For i = 1 To Len(a) For j = 1 To 10 If Mid(a, i, 1) = Mid(s, j, 1) Then fndsuu = i Exit Function End If Next j Next i fndsuu = 0 End Function 初出の数字文字が現われ出る位置を返します。 後楽1-1-1なら3を返します。 C1に後楽1-1-1があるとして 後楽は=LEFT(C1,fndsuu(C1)-1)で 1-1-1は=RIGHT(C1,LEN(C1)-fndsuu(C1)+1)で分離できます。
お礼
ご回答頂きましてありがとうございました。 またどうぞ宜しくお願い致します☆
- imogasi
- ベストアンサー率27% (4737/17069)
(仮定)番地部分が半角とする。 関数でやります。 理屈の説明のため途中経過をA-G列に出します。 (A1)後楽1-1-1 (B1)=LENB(A1) 9 (C1)=JIS(A1) 後楽1-1-1 (D1)=LENB(C1) 14 (E1)=D1-B1 5 これで半角文字が5文字あることが判る。 (F1)=LEFTB(A1,B1-E1) 後楽 (G1)=RIGHTB(A1,E1) 1-1-1 結局半角部分は=RIGHTB(A1,LENB(JIS(A1))-LENB(A1)) 全角部分は=LEFTB(A1,2*LENB(A1)-LENB(JIS(A1)))
お礼
ご回答ありがとう御座いました。 丁寧に解説までつけていただいて、とてもありがたいです。 またどうぞ宜しくお願い致します。
' もし、#1さんの方法でうまくいかなかった場合、もしくはわからなかった場合・・・・ ' 例) ' 後楽1-1-1 → 後楽 と 1-1-1 ' 西新宿2-2 → 西新宿 と 2-2 ' このような規則性があるとし、イレギュラーがないとしたら ' 次のコードを[ツール]-[マクロ]-[Visual Basic Editor] ' [挿入]-[標準モジュール] で追加してください。 ' そして、データがA1にあるとしたら、 ' B1 に =WordCut1(A1) ' C1 に =WordCut2(A1) ' と入れてください。 ' 1行目に入力後、2行目以降に1行目をコピーしてください。 Function WordCut1(pStr As String) As String Dim i As Long Dim buf As String For i = 1 To Len(pStr) If IsNumeric(Mid(pStr, i, 1)) <> -1 Then buf = buf + Mid(pStr, i, 1) Else Exit For End If Next i WordCut1 = buf End Function Function WordCut2(pStr As String) As String Dim i As Long Dim buf As String For i = 1 To Len(pStr) If IsNumeric(Mid(pStr, i, 1)) = -1 Then buf = Mid(pStr, i, Len(pStr)) Exit For End If Next i WordCut2 = buf End Function
お礼
ご回答頂きまして、ありがとうございました。 またどうぞ、よろしくおねがいいたします☆
お礼
ありがとうございます!!! HPの開設通りにしたら、できました☆☆ 感激です☆☆☆ 本当に助かりました。ありがとうございました。