- 締切済み
一つのセルにある文字列と数値を分ける方法
文字と数字が以下のように一つのセルに混在している場合、これを分けることはできますでしょうか。 ”JPY”は、置き換えでできますが、そのほかの文字は、文字数がばらばらなので、Left,Rightも使えません。 よろしくお願いします。 Loss on Raw 2,463.13 JPY Packaging 43,064.10 JPY Duty 22,291.18 JPY Intrest Rece 1,326.04 JPY Hist. paymen 0.00 JPY Transport 0.00 JPY
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mar00
- ベストアンサー率36% (158/430)
'最後の「 JPY」が固定だと仮定して、 'データがA列でA1から始まっているとしてB列に書き出します。 Sub Macro1() For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For j = 1 To Len(Range("A" & i)) If IsNumeric(Mid(Range("A" & i), j, 1)) = True Then Exit For End If Next j Range("B" & i) = Mid(Range("A" & i), j, Len(Range("A" & i)) - j - 4) Next i End Sub
- keithin
- ベストアンサー率66% (5278/7941)
A1からそういうデータがあるとすると B1に =LEFT(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890))-1) 以下コピー。 C1に =IF(B1="","",SUBSTITUTE(LEFT(A1,LEN(A1)-4),B1,"")) として右寄せの配置にして以下コピー または,数字が「必ず小数点の下2桁ある」のが絶対に保証できるなら =IF(B1="","",--SUBSTITUTE(LEFT(A1,LEN(A1)-4),B1,"")) として,セルの書式設定の表示形式で数値の小数点以下2桁を表示する設定にしておいて以下コピー。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! VBAになってしまいますが・・・ 一例です。 データはA1セルからA列にあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, k As Long Dim str As String Application.ScreenUpdating = False For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Cells(i, 1).Copy Destination:=Cells(i, 3) For k = 1 To Len(Cells(i, 1)) str = Mid(Cells(i, 1), k, 1) If str Like "[A-z ]" Then Cells(i, 2) = Cells(i, 2) & str With Cells(i, 3) .NumberFormatLocal = "@" .Value = WorksheetFunction.Substitute(Cells(i, 3), str, "") End With End If Next k Next i Columns.AutoFit Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m
- mt2008
- ベストアンサー率52% (885/1701)