[excel] Excel에서 열의 행을 하나의 셀로 병합하는 방법은 무엇입니까?

A1:I
A2:am
A3:a
A4:boy

모두 하나의 셀로 병합하고 싶습니다 “Iamaboy”
이 예제는 4 개의 셀이 1 개의 셀로 병합되는 것을 보여줍니다. 그러나 많은 셀 (100 개 이상)이 있습니다. A1 & A2 & A3 & A4무엇을 할 수 있는지를 사용하여 하나씩 입력 할 수 없습니까?



답변

내 ConcatenateRange VBA 함수를 소개합니다 (이름 지정 조언에 대해 Jean에게 감사드립니다!). 셀 범위 (모든 차원, 모든 방향 등)를 가져 와서 단일 문자열로 병합합니다. 선택적 세 번째 매개 변수로 구분 기호 (예 : 공백 또는 쉼표로 분리됨)를 추가 할 수 있습니다.

이 경우 다음과 같이 작성하여 사용합니다.

=ConcatenateRange(A1:A4)

Function ConcatenateRange(ByVal cell_range As range, _
                    Optional ByVal separator As String) As String

Dim newString As String
Dim cell As Variant

For Each cell in cell_range
    If Len(cell) <> 0 Then
        newString = newString & (separator & cell)
    End if
Next

If Len(newString) <> 0 Then
    newString = Right$(newString, (Len(newString) - Len(separator)))
End If

ConcatenateRange = newString

End Function


답변

VBA없이이 작업을 수행하려면 다음을 시도 할 수 있습니다.

  1. 데이터를 A1 : A999 (또는 그와 같은 셀)에 저장
  2. 셀 B1을 “= A1″로 설정
  3. 셀 B2를 “= B1 & A2″로 설정
  4. B2 셀을 B999까지 복사합니다 (예 : B2 복사, B3 : B99 셀 선택 및 붙여 넣기).

이제 셀 B999에 찾고있는 연결된 텍스트 문자열이 포함됩니다.


답변

내부에서 CONCATENATE사용할 수있는 TRANSPOSE당신이 그것을 (확장하면 F9) 다음 주위의 제거 {}와 같은 괄호를 권장

=CONCATENATE(TRANSPOSE(B2:B19))

된다

=CONCATENATE("Oh ","combining ", "a " ...)

CONCATENATE (TRANSPOSE (B2 : B19))

마지막에 고유 한 구분 기호를 추가해야 할 수 있습니다. 예를 들어 열 C를 만들고 해당 열을 전치합니다.

=B1&" "
=B2&" "
=B3&" "


답변

간단한 경우에는 함수를 만들거나 코드를 여러 셀에 복사 할 필요가없는 다음 방법을 사용할 수 있습니다.

  1. 모든 셀에서 다음 코드 작성

    =Transpose(A1:A9)
    

여기서 A1 : A9는 병합하려는 셀입니다.

  1. 셀 프레스를 떠나지 않고 F9

그 후 셀에 다음 문자열이 포함됩니다.

={A1,A2,A3,A4,A5,A6,A7,A8,A9}

출처 : http://www.get-digital-help.com/2011/02/09/concatenate-a-cell-range-without-vba-in-excel/

업데이트 : 한 부분이 모호 할 수 있습니다. 셀을 떠나지 않으면 셀이 편집기 모드에있게됩니다. 또는 셀 편집기 패널에있는 동안 F9 키를 누를 수 있습니다 (일반적으로 스프레드 시트 위에 있음).


답변

VBA의 기존 Join기능을 사용하십시오 . VBA 함수는 Excel에서 노출되지 않으므로 Join해당 기능을 노출하는 사용자 정의 함수로 래핑 합니다. 가장 간단한 형식은 다음과 같습니다.

Function JoinXL(arr As Variant, Optional delimiter As String = " ")
    'arr must be a one-dimensional array.
    JoinXL = Join(arr, delimiter)
End Function

사용 예 :

=JoinXL(TRANSPOSE(A1:A4)," ")

배열 수식으로 입력 (사용 CtrlShiftEnter).

여기에 이미지 설명 입력


이제 JoinXL1 차원 배열 만 입력으로받습니다. Excel에서 범위는 2 차원 배열을 반환합니다. 위의 예에서는 TRANSPOSE4 × 1 2 차원 배열을 4 요소 1 차원 배열로 변환합니다 (이는 TRANSPOSE단일 열 2 차원 배열이 제공 될 때 문서화 된 동작입니다 ).

수평 범위의 경우 double을 수행해야합니다 TRANSPOSE.

=JoinXL(TRANSPOSE(TRANSPOSE(A1:D1)))

내부 TRANSPOSE는 1×4 2 차원 배열을 4×1 2 차원 배열로 TRANSPOSE변환 한 다음 외부 는 예상되는 4 요소 1 차원 배열로 변환합니다.

여기에 이미지 설명 입력

이 사용법은 TRANSPOSEExcel에서 2D 배열을 1D 배열로 변환하는 잘 알려진 방법이지만 끔찍해 보입니다. 더 우아한 해결책은 JoinXLVBA 함수 에서 이것을 숨기는 것 입니다.


답변

Excel 2016 (및 다음 버전)을 사용 하는 사람들을 위해 이제 CONCATENATE 함수를 대체 할 CONCAT 함수가 직접 제공됩니다 .

따라서 Excel 2016에서 올바른 방법은 다음과 같습니다.

=CONCAT(A1:A4)

다음을 생성합니다.

저는 남자입니다

이전 버전의 Excel 사용자의 경우 다른 답변이 관련이 있습니다.


답변

Mac 용 Excel 2011의 경우 다릅니다. 저는 3 단계 과정으로했습니다.

  1. A 열에 값 열을 만듭니다.
  2. B 열의 첫 번째 셀 오른쪽에서 열 값과 “,”에 연결 함수를 사용하는 규칙을 만듭니다. 예를 들어 A1이 첫 번째 행이라고 가정하면 B1의 공식은 =B1입니다. N 행의 다음 행에 대한 공식은 =Concatenate(",",A2)입니다. 결과는 다음과 같습니다.
QA
, 세 쿨리
, 테스트
, Applitools
, 시각적 테스트
, 테스트 자동화
,셀렌
  1. C 열에서 모든 이전 값을 연결하는 수식을 만듭니다. 그것은 첨가물이기 때문에 당신은 결국 모든 것을 얻을 것입니다. 셀 C1의 공식은 =B1입니다. N에 대한 다른 모든 행의 경우 공식은 =Concatenate(C1,B2)입니다. 그리고 당신은 :
QA, Sekuli
QA, Sekuli, 테스트
QA, Sekuli, 테스트, Applitools
QA, Sekuli, 테스트, Applitools, 시각적 테스트
QA, Sekuli, 테스트, Applitools, 시각적 테스트, 테스트 자동화
QA, Sekuli, 테스트, Applitools, 시각적 테스트, 테스트 자동화, 셀레늄

목록의 마지막 셀이 원하는 것입니다. Windows 또는 Mac의 Excel과 호환됩니다.