限定しりとり

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

A 回答 (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
    • good
    • 0

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桁を表示する設定にしておいて以下コピー。
    • good
    • 0

こんばんは!


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
    • good
    • 0

最後の「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桁」「桁区切り(,)を使用する」と、設定します。
「一つのセルにある文字列と数値を分ける方法」の回答画像1
    • good
    • 0

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