엑셀 BYCOL 함수는 범위의 각 열에 지정한 함수를 적용한 결과 배열을 반환하는 함수입니다.
=BYCOL(범위, 계산식)
- 단순 합계(SUM), 평균(AVERAGE) 등 계산은 'short-form' 내장 함수로 계산할 수 있습니다. BYCOL 함수의 내장함수는 총 12개를 제공합니다.
- SUM(합계), AVERAGE(평균), MEDIAN(중앙값), COUNT(숫자개수), COUNTA(개수), MAX(최대값), MIN(최소값), PRODUCT(곱), ARRAYTOTEXT(텍스트변환),CONCAT(텍스트병합),STDEV(표준편차),VAR(분산),MODE(최빈값) - LAMBDA 함수를 직접 작성하여 다양한 고급 로직을 구현할 수 있으며, LAMBDA 함수는 아래 구조로 작성합니다.
예) =BYCOL(범위, LAMBDA(a, 함수(a)))
엑셀 BYCOL 함수는 지정한 함수를 범위의 열 단위로 연산을 수행한 후, 계산 결과를 하나의 배열로 반환하는 함수입니다. 배열의 각 열을 순회하면서 기초 계산(예: 합계, 평균, 최대값 등)을 수행할 수 있으며 LAMBDA 함수를 사용해 복잡한 연산이나 조건부 수식을 적용할 수 있습니다.
=BYCOL(범위, SUM)/ / 범위의 각 열별로 합계를 계산합니다. =BYCOL(범위, AVERAGE)/ / 범위의 각 열별로 평균을 계산합니다.
LAMBDA 를 사용할 경우 아래 구조로 BYCOL 함수를 작성합니다.
=BYCOL(범위,LAMBDA(a,FUNC(a)))/ / 범위의 각 열별로 지정한 함수를 적용합니다. =BYCOL(범위,LAMBDA(a,SUM(a)))/ / 범위의 각 열별로 합계를 계산합니다. SUM 과 동일합니다. =BYCOL(범위, LAMBDA(a, IF(SUM(a)>=80,"통과",""))) / / 범위의 각 열별로 합계를 구한 후, 80점 이상일 경우 "통과"를 출력합니다.
아래 그림과 같이 각 월별 매출 데이터가 있을 때, BYCOL 함수를 사용해 월별 매출 합계를 한 번에 계산할 수 있습니다.
=BYCOL(B2:D5,SUM) / / B2:D5 범위의 열 단위로 합계를 계산합니다.

아래 그림과 같이 각 부서별 직원 목록이 있을 때, BYCOL 함수를 사용해 부서별 직원 수를 한 번에 계산할 수 있습니다.
=BYCOL(B2:D5,COUNTA) / / B2:D5 범위의 열 단위로 비어있지 않은 셀의 개수를 셉니다.

아래 그림과 같이 각 지점의 월 매출 데이터가 있을 때, BYCOL 함수를 사용하면 월 평균 매출이 280보다 클 경우 "우수 지점"을 한 번에 표시할 수 있습니다.
=BYCOL(B2:D5,LAMBDA(a,IF(AVERAGE(a)>=280,"우수 지점",""))) / / B2:D5 범위의 열 단위로 평균을 구한 후, 평균이 280 보다 클 경우 "우수 지점"을 출력합니다.

계산식으로 잘못된 수식이나 LAMBDA 함수가 입력된 경우, 함수는 #VALUE! 오류를 반환합니다.
LAMBDA 로 함수를 입력하지 않거나, 작성한 LAMBDA 수식이 또 다른 배열을 반환할 경우 #CALC! 오류가 발생할 수 있습니다. (이중 배열, Array of Array 오류)
단순 계산식은 SUM, AVERAGE, COUNT 등 인수를 하나만 받는 단일 함수에만 적용되며, 복잡한 집계는 LAMBDA를 직접 작성해야 합니다.
BYROW 함수는 결과로 배열을 반환하므로, 출력 범위에 다른 값이 있으면 #SPILL! 오류가 반환됩니다.
BYROW 함수는 M365 및 엑셀 2024 이후 버전에서만 제공되며, 이전 버전 엑셀에서는 #NAME? 오류를 출력합니다.