18자리 항목에 마침표(구분 기호)를 배치하기 위해 Excel에서 형식을 사용자 정의하려면 어떻게 해야 합니까?

18자리 항목에 마침표(구분 기호)를 배치하기 위해 Excel에서 형식을 사용자 정의하려면 어떻게 해야 합니까?

이는 구분 기호로 여러 마침표가 포함된 18자리 회계 코드에 관한 것입니다. 마침표를 입력하지 않고 숫자만 입력하고 싶습니다. 예:

112233333444555556

자동으로 다음과 같이 형식화됩니다.

11.22.33333.444.55555.6

나는 다음 공식을 사용했습니다.

??"."??"."?????"."???"."?????"."?

마지막 숫자를 제외하고는 항상 0으로 표시됩니다.

마지막 공백에 입력된 숫자를 허용하려면 이 코드를 어떻게 변경해야 합니까?

답변1

다음은 A 열을 모니터링하고 텍스트 항목에 18자가 있을 때 점을 추가하는 VBA 코드입니다. 전체 열을 선택하고 형식을 텍스트로 선택한 다음 18자리 코드를 입력하거나 붙여 넣을 수 있습니다.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    Application.EnableEvents = False
    If Len(Target) = 18 Then
        s = Left(Target, 2) & "." & _
        Mid(Target, 3, 2) & "." & _
        Mid(Target, 5, 5) & "." & _
        Mid(Target, 10, 3) & "." & _
        Mid(Target, 13, 5) & "." & _
        Right(Target, 1)
        Target.Value = s
    End If
Application.EnableEvents = True
End If

End Sub

답변2

@님 말씀대로테일린, Excel은 부동 소수점 숫자에 대한 IEEE 754 사양을 따르며 15개의 유효 숫자만 저장할 수 있습니다. 매크로가 아닌 가장 쉬운 해결 방법은 수식을 두 부분(가장 왼쪽의 15자리 숫자와 오른쪽의 가장 나머지 숫자)으로 나누는 것입니다.

=TEXT(
   LEFT([input], 15), format_left
 ) & 
 TEXT(
   RIGHT([input], LEN([input]) - 15), format_right
 )

= TEXT(LEFT(A2,15),"00-00-00000-000-000") & TEXT(RIGHT(A2,3),"00-0")

| Account number     | Account number (formatted) |
| ------------------ | -------------------------- |
| 112233333444555556 | 11-22-33333-444-55555-6    |

관련 정보