• 締切済み

一つのセルにある文字列と数値を分ける方法

文字と数字が以下のように一つのセルに混在している場合、これを分けることはできますでしょうか。 ”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

みんなの回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

'最後の「 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)
回答No.3

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)
回答No.2

こんばんは! 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)
回答No.1

最後の「JPY」は固定なのかな?そうだと仮定したらこんな感じでどうでしょう 対象文字列がA1に入っているとして、 B1に =MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"1234567890")) これが、数字が出てくる最初の位置 C1に =LEFT(A1,B1-1) D1に =MID(A1,B1,LEN(A1)-B1-3)*1 E1に =RIGHT(A1,3) D列はセルの表示書式で「小数点以下2桁」「桁区切り(,)を使用する」と、設定します。

関連するQ&A