0

Excelまたは他のより簡単な言語を使用してこれを達成するにはどうすればよいですか?

original data:
100301010100019743024000 

after formatting:
100,3010,1,01,000,1974,3024,000 

Segment 1 = 3 char
Segment 2 = 4 char
Segment 3 = 1 char
Segment 4 = 2 char
Segment 5 = 3 char
Segment 6 = 4 char
Segment 7 = 4 char
Segment 8 = 3 char

どうもありがとう。

4

1 に答える 1

0

VBAにはleft()、がright()あり、まさにこの目的mid()のために機能します。

これを行う関数は次のようになります。

Function FmtStr (MyStr As String) As String
    If Len (MyStr) <> 24 Then
        FmtStr = "?"
    Else
        FmtStr = _
            Mid (MyStr,  1, 3) + "," + _
            Mid (MyStr,  4, 4) + "," + _
            Mid (MyStr,  8, 1) + "," + _
            Mid (MyStr,  9, 2) + "," + _
            Mid (MyStr, 11, 3) + "," + _
            Mid (MyStr, 14, 4) + "," + _
            Mid (MyStr, 18, 4) + "," + _
            Mid (MyStr, 22, 3)
    End If
End Function

これを呼び出す:

MsgBox (FmtStr("100301010100019743024000"))

したがって、ダイアログボックスが表示されます。

ここに画像の説明を入力してください

Excelの数式でそれが必要な場合は、次を使用できます。

=concatenate(mid(a1,1,3), ",", mid(a1,4,4), ",", ... ",", mid(a1,22,3))

A1(もちろん、元の文字列がセルにあると仮定します)。

于 2013-02-05T03:11:42.727 に答える