programing

열의 행을 Excel의 한 셀로 병합하려면 어떻게 해야 합니까?

golfzon 2023. 4. 14. 22:29
반응형

열의 행을 Excel의 한 셀로 병합하려면 어떻게 해야 합니까?

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

이 모든 것을 하나의 세포인 "이아보이"로 합치고 싶다.
이 예에서는 4개의 셀이 1개의 셀로 병합되지만 셀이 다수(100개 이상)이기 때문에 셀을 사용하여1개씩 입력할 수 없습니다.A1 & A2 & A3 & A4내가 뭘 할 수 있을까?

VBA 를 사용하지 않고, 이것을 실행하는 경우는, 다음의 조작을 실행할 수 있습니다.

  1. 셀 A1에 데이터를 저장합니다.A999(또는 그 정도)
  2. 셀 B1을 "=A1"로 설정합니다.
  3. 셀 B2를 "=B1&A2"로 설정합니다.
  4. 셀 B2를 B999까지 복사합니다(예를 들어 B2를 복사하고 셀 B3을 선택합니다).B99 및 붙여넣기)

이것으로, 셀 B999 에는, 찾고 있는 연결 텍스트 문자열이 포함됩니다.

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

안에서.CONCATENATE사용할 수 있습니다.TRANSPOSE확장()F9하면 주변을 제거합니다.{}다음과 같은 괄호를 사용하는 것이 좋습니다.

=CONCATENATE(TRANSPOSE(B2:B19))

된다

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

연결(트랜스포스(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기능.Excel에서는 VBA 기능이 공개되지 않기 때문에 포장합니다.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)," ") 

배열 수식으로 입력합니다( -- 사용).ShiftEnter

여기에 이미지 설명 입력


지금이다,JoinXL는 1차원 배열만 입력으로 받아들입니다.Excel에서는 범위가 2차원 배열을 반환합니다.위의 예에서는TRANSPOSE합니다(이는 4×1의 2차원 배열을 4×1의 1차원 배열을 입니다).TRANSPOSE2번입니다).

으로, 수평범위는 으로, 수평범위는 이중으로 TRANSPOSE:

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

★★★TRANSPOSE 배열을의 2차원 하고, 1×4의 2차원 배열로 변환합니다.TRANSPOSE그러면 예상된 4비트 1차원 배열로 변환됩니다.

여기에 이미지 설명 입력

의 이 TRANSPOSE는 Excel에서 2D 어레이를 1D 어레이로 변환하는 잘 알려진 방법이지만 보기에도 좋지 않습니다.더 우아한 은 이것을 the the the the a a 、 a a 、 。JoinXLVBA 능 v

Excel 2016(그리고 다음 버전)을 가지고 계신 분들을 위해 CONCOTENATE 기능을 대신하는 CONCOTAT 기능이 있습니다.

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

=CONCAT(A1:A4)

다음과 같은 결과를 얻을 수 있습니다.

이마보이

오래된 버전의 Excel 사용자에게는 다른 답변이 적절합니다.

Mac의 Excel 2011에서는 다릅니다.나는 그것을 3단계 과정으로 했다.

  1. A열에 값 열을 만듭니다.
  2. 셀 열 B에 열 값 및 에 를 들어 첫행이라고 은 "B"입니다. 예를 들어 A1이 첫 번째 행이라고 가정하면 B1의 공식은 다음과 같습니다.=B1은 N행이다.=Concatenate(",",A2)이.을 사용하다
품질 보증, 세쿨리, 테스트 중, 어플리케이션, 비주얼 테스트, 테스트 자동화셀레늄
  1. C열에 모든 이전 값을 연결하는 공식을 만듭니다.첨가제이기 때문에 마지막에 모두 얻을 수 있습니다.은 'C1'입니다.=B1은 N으로 되어 있습니다.=Concatenate(C1,B2) 그러면 다음과 같이 됩니다.
QA, SekuliQA, Sekuli,테스트QA, Sekuli,테스트, 어플리케이션QA, Sekuli,테스트, 어플리케이션, 비주얼 테스트QA, Sekuli,테스트, 어플리케이션, 비주얼 테스트, 테스트 자동화QA, Sekuli,테스트, 어플리케이션, 비주얼 테스트, 테스트 자동화, 셀리늄

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

용 the the the를 .CONCATENATE 컬럼을 사이에 .WHERE IN ()SQL 의 sql sql sql sql sql 。

는 항상 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★=CONCATENATE("'",B2,"'",",") "Drag Down" 이 됩니다.=CONCATENATE("'",B3,"'",","),=CONCATENATE("'",B4,"'",",")그런 다음 열 전체를 강조 표시하고 필요에 따라 일반 텍스트에디터에 복사 붙여넣기하여 행을 분리합니다.효과는 있지만, 한 번뿐인 계약으로 항상 이 방법을 필요로 하는 사람에게는 좋은 해결책이 아닙니다.

정말 오래된 질문인 건 알지만, 저도 똑같은 걸 하려고 하다가 우연히 엑셀의 새로운 공식 '텍스트 조인'을 발견했어요.

질문의 경우 다음 공식으로 문제를 해결합니다.

=TEXTJOIN("",TRUE,(a1:a4))

"TEXTJOIN"의 서명은 TEXTJOIN(delimiter, ignore_empty, text1, [text2], [text3],...)으로 설명됩니다.

TEXTJOIN이 없기 때문에 일반 용도의 Concatenate With Separator가 필요해서 이렇게 썼습니다.

Public Function ConcatWS(separator As String, ParamArray cell_range()) As String
    '---concatenate with seperator
    
    For n = LBound(cell_range) To UBound(cell_range)
        For Each cell In cell_range(n)
            If Len(cell) <> 0 Then
                ConcatWS = ConcatWS & IIf(ConcatWS <> "", separator, "") & cell
            End If
        Next
    Next n
End Function

따라서 세포 범위를 유연하게 포함할 수 있습니다.

=ConcatWS(" ", Fields, E1:G2, L6:M9, O6)

메모: "필드"는 명명된 범위이며 구분 기호는 공백일 수 있습니다.

언급URL : https://stackoverflow.com/questions/8135995/how-to-merge-rows-in-a-column-into-one-cell-in-excel

반응형