범위를 단일 열로 변환하는 Excel TOCOL 함수

  • 이 공유
Michael Brown

TOCOL 함수를 사용하여 배열 또는 범위를 열로 변환하는 쉬운 방법입니다.

데이터를 열에서 행으로 또는 그 반대로 바꾸는 기능은 Excel에서 꽤 오랫동안 사용되었습니다. 잠시. 그러나 셀 범위를 단일 열로 변환하는 것은 까다로운 작업이었습니다. 이제 마침내 변화하고 있습니다. Microsoft는 눈 깜짝할 사이에 배열에서 열로의 변환을 수행할 수 있는 TOCOL이라는 새로운 기능을 도입했습니다. 아래는 이 새로운 기능이 쉽게 해결할 수 있는 작업 목록입니다.

    Excel TOCOL 기능

    Excel의 TOCOL 기능은 셀의 배열 또는 범위를 단일 셀로 변환합니다. column.

    이 함수는 세 개의 인수를 사용하지만 첫 번째 인수만 필요합니다.

    TOCOL(array, [ignore], [scan_by_column])

    Where:

    Array (필수) - 열로 변환할 배열 또는 범위입니다.

    Ignore (선택 사항) - 공백 또는/및 오류를 무시할지 여부를 정의합니다. 다음 값 중 하나일 수 있습니다.

    • 0 또는 생략(기본값) - 모든 값 유지
    • 1 - 공백 무시
    • 2 - 오류 무시
    • 3 - 공백 및 오류 무시

    Scan_by_column (선택 사항) - 배열을 가로로 스캔할지 세로로 스캔할지 결정:

    • FALSE 또는 생략 (기본값) - 배열을 왼쪽에서 오른쪽으로 행별로 스캔합니다.
    • TRUE - 위에서 아래로 열별로 배열을 스캔합니다.

    팁:

    • 배열을 단일 행으로 변환하려면 TOROW함수를 사용합니다.
    • 열에서 배열로의 반대 변환을 수행하려면 WRAPCOLS 함수를 사용하여 열을 래핑하거나 WRAPROWS 함수를 사용하여 행을 래핑합니다.
    • 배열을 수평에서 수직 또는 그 반대, 즉 행을 열로 변경하고 TRANSPOSE 기능을 활용합니다.

    TOCOL 가용성

    TOCOL은 Microsoft 365용 Excel(Windows용)에서 지원되는 새로운 기능입니다. 및 Mac) 및 웹용 Excel.

    범위를 열로 변환하는 기본 TOCOL 수식

    가장 간단한 형식의 TOCOL 수식에는 array<14라는 하나의 인수만 필요합니다>. 예를 들어 3개의 열과 4개의 행으로 구성된 2차원 배열을 단일 열에 배치하려면 수식은 다음과 같습니다.

    =TOCOL(A2:C5)

    수식은 한 셀에만 입력됩니다(E2 in 이 예) 자동으로 아래 셀로 유출됩니다. Excel에서는 결과를 유출 범위라고 합니다.

    이 공식의 작동 방식:

    기술적으로 범위 A2:C5는 먼저 2차원 배열로 변환됩니다. 세미콜론으로 구분된 행과 쉼표로 구분된 열을 확인하십시오:

    {"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}

    TOCOL 함수는 배열을 왼쪽에서 오른쪽으로 스캔하여 1차원 수직 배열로 변환합니다:

    {"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}

    결과는 셀 E2에 배치되고 아래 셀로 유출됩니다.

    Excel에서 TOCOL 함수를 사용하는 방법 - 수식 예

    에 대한 더 많은 이해를 얻기 위해TOCOL 함수의 가능성과 처리할 수 있는 작업에 대해 몇 가지 수식 예제를 살펴보겠습니다.

    공백과 오류를 무시하고 배열을 열로 변환

    이전 예제에서 알 수 있듯이 , 기본 TOCOL 수식은 빈 셀과 오류를 포함하여 소스 배열의 모든 값을 유지합니다.

    결과 배열에서 빈 셀은 0으로 표시되며 특히 원래 배열에 0 값. 해결책은 공백을 건너뛰는 것 입니다. 이를 위해 두 번째 인수를 1로 설정합니다.

    =TOCOL(A2:C5, 1)

    오류를 무시 하려면 두 번째 인수를 2:

    =TOCOL(A2:C5, 2) <3으로 설정합니다>

    공백과 오류 를 모두 제외하려면 ignore 인수에 3을 사용하십시오.

    =TOCOL(A2:C5, 3)

    수평 또는 수직으로 배열 스캔

    기본 scan_by_column 인수(FALSE 또는 생략됨)를 사용하여 TOCOL 함수는 배열을 행별로 수평으로 스캔합니다. 열별로 값을 처리하려면 이 인수를 TRUE 또는 1로 설정합니다. 예를 들면 다음과 같습니다.

    =TOCOL(A2:C5, ,TRUE)

    두 경우 모두 반환된 배열의 크기는 동일하지만 값이 정렬됩니다. 다른 순서로.

    여러 범위를 하나의 열로 결합

    여러 비연속 범위를 처리하는 경우 먼저 VSTACK 기능을 사용하여 범위를 수직으로 단일 배열로 결합할 수 있습니다. 그런 다음 TOCOL을 사용하여 결합된 배열을 열로 변환합니다.

    첫 번째 범위가 A2:C4이고 두 번째 범위가 A8:C9라고 가정하면 수식은 다음 형식을 취합니다.

    =TOCOL(VSTACK(A2:C4, A8:C9))

    이 수식은 기본 동작을 보여줍니다. 결합된 배열을 왼쪽에서 수평으로 읽습니다. 아래 이미지의 E열에 표시된 것처럼 오른쪽으로.

    값을 위에서 아래로 수직으로 읽으려면 TOCOL의 세 번째 인수를 TRUE로 설정합니다.

    =TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)

    이 경우 수식은 먼저 두 배열의 A 열에서 값을 반환한 다음 B 열에서 값을 반환한다는 점에 유의하십시오. 그 이유는 TOCOL이 원래의 개별 범위가 아니라 단일 누적 배열을 스캔하기 때문입니다.

    비즈니스 논리에서 원래 범위를 수직이 아닌 수평으로 쌓아야 하는 경우 VSTACK 대신 HSTACK 함수를 사용하십시오.

    각 후속 배열을 이전 배열의 오른쪽에 추가하고 읽기 수평으로 배열을 결합한 경우 공식은 다음과 같습니다.

    =TOCOL(HSTACK(A2:C4, A8:C10))

    각 후속 배열을 이전 배열의 오른쪽에 추가하고 결합된 배열을 수직으로 스캔하려면 공식은 다음과 같습니다.

    =TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)

    여러 열 범위에서 고유한 값 추출

    Excel UNIQUE 함수는 단일 열 또는 행에서 고유한 값을 쉽게 찾고 고유한 행을 반환할 수 있지만 다음에서 고유한 값을 추출할 수는 없습니다. 다중 열 배열. 해결 방법은 TOCOL 함수와 함께 사용하는 것입니다.

    예를 들어 범위에서 서로 다른(고유한) 값을 모두 추출하려면A2:C7, 수식은 다음과 같습니다.

    =UNIQUE(TOCOL(A2:C7))

    또한 SORT 함수에서 위의 수식을 래핑하여 반환된 배열을 알파벳 순서로 정렬할 수 있습니다.

    =SORT(UNIQUE(TOCOL(A2:C7)))

    Excel 365 - 2010에서 범위를 열로 변환하는 방법

    TOCOL 함수가 지원되지 않는 Excel 버전에서는 셀 범위를 열로 변환하는 몇 가지 대체 방법이 있습니다. 이러한 솔루션은 매우 까다롭지만 어쨌든 작동합니다.

    행별로 범위를 읽으려면:

    INDEX( range , QUOTIENT(ROW(A1)-1, COLUMNS( range ))+1, MOD(ROW(A1)-1, COLUMNS( range ))+1)

    열별로 범위를 읽으려면:

    INDEX( 범위 , MOD(ROW(A1)-1, ROWS( 범위 ))+1, QUOTIENT(ROW(A1)-1, ROWS( 범위 ))+1 )

    샘플 데이터세트의 수식은 다음과 같습니다.

    범위를 왼쪽에서 오른쪽으로 가로로 스캔하려면:

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    이 수식은 세 번째 인수가 FALSE로 설정되거나 생략된 TOCOL 함수와 같습니다.

    =TOCOL(A2:C5)

    범위를 위에서 아래로 수직으로 스캔하려면 :

    =INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)

    이 수식은 세 번째 인수가 TRUE로 설정된 TOCOL 함수와 유사합니다.

    =TOCOL(A2:C5, ,TRUE)

    TOCOL과 달리 대체 수식은 각각에 입력해야 합니다. 결과를 표시할 셀입니다. 이 경우 수식은 셀 E2(행별) 및 G2(열별)로 이동한 다음 행 13으로 복사됩니다.

    수식이 필요한 것보다 더 많은 행에 복사되면#참조! "추가" 셀에 오류가 나타납니다. 이를 방지하려면 다음과 같이 IFERROR 함수에 수식을 중첩할 수 있습니다.

    =IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1), "")

    수식을 올바르게 복사하려면 절대 셀 참조($ A$2:$C$5). 대신 명명된 범위를 사용할 수 있습니다.

    이 수식이 작동하는 방식

    다음은 셀을 행별로 정렬하는 첫 번째 수식을 자세히 분석한 것입니다.

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    이 아이디어는 INDEX 함수를 사용하여 범위 내의 상대 행 및 열 번호를 기반으로 특정 셀의 값을 반환하는 것입니다.

    행 번호 는 이 조합으로 계산됩니다. :

    QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

    QUOTIENT는 나눗셈의 정수 부분을 반환합니다.

    분자 의 경우 ROW(A1)-1을 사용합니다. E2(수식이 입력된 첫 번째 셀)의 0에서 E13(수식이 입력된 마지막 셀)의 11까지의 일련 번호입니다.

    분모 는 COLUMNS($A $2:$C$5))는 일정하며 범위의 열 수(여기서는 3개)와 같습니다.

    이제 처음 3개 셀(E2:E4)에 대한 QUOTIENT 결과를 확인하면 , 0과 같음을 알 수 있습니다(나누기의 정수 부분이 0이기 때문). 1을 더하면 행 번호 1이 됩니다.

    다음 3개 셀(E5:E5)에 대해 QUOTIENT는 1을 반환하고 +1 연산은 행 번호 2를 제공합니다.

    즉, 수식의 이 부분은 반복되는1,1,1,2,2,2,3,3,3,4,4,4,...와 같은 숫자 시퀀스 각 숫자는 범위에 있는 열 수만큼 반복됩니다.

    To 열 번호 를 계산하고 MOD 함수를 사용하여 적절한 번호 시퀀스를 만듭니다.

    MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

    범위(A2:C5)에 3개의 열이 있으므로 sequence must be 1,2,3,1,2,3,...

    MOD 함수는 나눗셈 후 나머지를 반환합니다.

    E2에서 MOD(ROW(A1)-1, COLUMNS ($A$2:$C$5))+1)

    MOD(1-1, 3)+1)

    되고 1을 반환합니다.

    E3에서 MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)

    MOD(2-1, 3)이 됩니다. +1)

    하고 2를 반환합니다.

    행과 열 번호가 설정되면 INDEX는 필요한 값을 가져오는 데 문제가 없습니다.

    E2에서 INDEX($A$2 :$C$5, 1, 1)은 참조 범위의 첫 번째 행과 첫 번째 열, 즉 A2 셀의 값을 반환합니다.

    E3에서 INDEX($A$2:$C$5, 1 , 2) 첫 번째 행과 두 번째 열, 즉 B2 셀의 값을 반환합니다.

    등.

    c로 범위를 스캔하는 두 번째 수식 olumn도 비슷한 방식으로 작동합니다. 차이점은 MOD를 사용하여 행 번호를 가져오고 QUOTIENT를 사용하여 열 번호를 얻는다는 것입니다.

    TOCOL 함수가 작동하지 않음

    TOCOL 함수에서 오류가 발생하면 다음 이유 중 하나일 수 있습니다.

    TOCOL이 Excel

    에서 지원되지 않습니다. #NAME을 받을 때? 오류가 발생하면 함수 이름의 올바른 철자를 먼저 확인해야 합니다.확인하다. 이름은 정확하지만 오류가 지속되면 해당 Excel 버전에서 함수를 사용할 수 없는 것입니다. 이 경우 TOCOL 대안을 사용하는 것이 좋습니다.

    배열이 너무 큽니다.

    #NUM 오류는 배열이 열에 맞지 않음을 나타냅니다. 열이나 행 전체를 참조하는 경우가 대표적입니다.

    빈 셀이 부족합니다.

    #SPILL 오류가 발생하면 수식이 입력된 열이 결과로 채워질 빈 셀이 충분합니다. 셀이 시각적으로 비어 있는 경우 공백 및 기타 인쇄되지 않는 문자가 없는지 확인하십시오. 자세한 내용은 Excel에서 #SPILL 오류를 수정하는 방법을 참조하세요.

    이렇게 하면 Excel 365의 TOCOL 함수와 이전 버전의 대체 솔루션을 사용하여 2차원 배열을 단일 열로 변환할 수 있습니다. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙겠습니다!

    연습 워크북

    Excel TOCOL 함수 - 수식 예제(.xlsx 파일)

    Michael Brown은 소프트웨어 도구를 사용하여 복잡한 프로세스를 단순화하려는 열정을 가진 열성적인 기술 애호가입니다. 기술 산업에서 10년 이상의 경험을 쌓은 그는 Microsoft Excel 및 Outlook은 물론 Google 스프레드시트 및 문서 도구에 대한 기술을 연마했습니다. Michael의 블로그는 자신의 지식과 전문 지식을 다른 사람과 공유하는 데 전념하며 따라하기 쉬운 팁과 생산성 및 효율성 향상을 위한 자습서를 제공합니다. 노련한 전문가이든 초보자이든 Michael의 블로그는 이러한 필수 소프트웨어 도구를 최대한 활용하기 위한 귀중한 통찰력과 실용적인 조언을 제공합니다.