태그 보관물: concatenation

concatenation

앞에 0이있는 숫자를 연결 적용된 사용자 지정 형식으로 인해 일부 숫자의

다른 열의 숫자를 하나의 긴 숫자로 결합 / 연결하려고합니다. 셀에 적용된 사용자 지정 형식으로 인해 일부 숫자의 앞에 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)

이것은이 코드에서 빠른 시도 일 뿐이므로 함수의 두 가지 요구 사항에 유의하십시오.

  1. 인수로 연속 범위 만 사용합니다.
  2. 왼쪽에서 오른쪽으로 (위에서 아래로) 순서대로 값을 연결합니다.

이러한 제한 사항을 제거하기 위해 코드를 조정할 수 있지만 원하는대로 작동하는 것처럼 들립니다.


답변