다른 열의 숫자를 하나의 긴 숫자로 결합 / 연결하려고합니다. 셀에 적용된 사용자 지정 형식으로 인해 일부 숫자의 앞에 0이 표시됩니다. 그것들을 함께 연결하면 0이 제거됩니다. 누군가 앞에 오는 0이 제거되지 않도록 수식의 모양을 알고 있습니까?
예 :
A1 = 08,
B1 = 7,
C1 = 0,
D1 = 17,
E1 = 00,
F1 = 01,
G1 = A1에서 F1까지의 집중 수
결과 숫자는 0870170001
다음과 같아야합니다 8701701
.
Excel 2010을 사용하고 있으며 이것이 시도한 공식 =CONCATENATE(A1;B1;C1;D1;E1;F1)
입니다.
답변
당신은 할 수있다 을 필요로하지; 그러나 대신 쉼표를 사용하여 각각이 별도의 문자열 값임을 표시하십시오 (지역화 설정에 따라 달라질 수 있음-감사 Bob).
=CONCATENATE(A1,B1,C1,D1,E1,F1)
그러나 행을 강조 표시하고 홈 리본의 숫자 탭 아래에있는 드롭 다운 목록에서 ‘텍스트’를 선택하여 숫자가있는 셀이 텍스트로 서식이 지정되어 있는지 확인해야합니다.
답변
귀하의 의견에 따르면 귀하의 셀에는 사용자 정의 형식이있을 가능성이 높으며이 셀에 표시된 값은 입력 한 값과 다를 수 있습니다 (예 : “8”은 “08”로 표시됨). 이 경우 TEXT
함수에 래핑 된 각 값을 지정된 셀 형식으로 연결할 수 있습니다 . 예를 들어 A1
사용자 지정 형식이 “00”인 경우 연결 수식에서 TEXT(A1,"00")
용어로 사용 됩니다 A1
. 전체 수식의 경우 다음과 같은 내용이있을 수 있습니다.
=TEXT(A1,"00")&TEXT(B1,"@")&TEXT(C1,"0")&...
물론 각 셀의 형식을 수동으로 다시 작성해야하므로 지루합니다. 다양한 형식으로 이것을 많이 사용하려는 경우 VBA 기능을 사용하여 무거운 물건을들 수있는 완벽한 기회라고 말할 수 있습니다. 다음 코드를 VBA 편집기의 모듈에 붙여 넣을 수 있습니다 ( Alt+ 를 눌러 열림 F11).
Public Function CONCATwFORMATS(rng1 As Range) As String
Dim tmpstr As String, tmpFormat As String
Dim c As Range
For Each c In rng1
tmpFormat = c.NumberFormat
If tmpFormat = "General" Then
tmpstr = tmpstr & c.Value
Else
tmpstr = tmpstr & Format(c.Value, tmpFormat)
End If
Next c
CONCATwFORMATS = tmpstr
End Function
그런 다음에서 다음 수식을 사용할 수 있습니다 G1
.
=CONCATwFORMATS(A1:F1)
이것은이 코드에서 빠른 시도 일 뿐이므로 함수의 두 가지 요구 사항에 유의하십시오.
- 인수로 연속 범위 만 사용합니다.
- 왼쪽에서 오른쪽으로 (위에서 아래로) 순서대로 값을 연결합니다.
이러한 제한 사항을 제거하기 위해 코드를 조정할 수 있지만 원하는대로 작동하는 것처럼 들립니다.