구글 스프레드시트 ARRAYFORMULA 자동 채우기: #REF!·빈 행·헤더 처리

ARRAYFORMULA로 반복 수식 열을 자동 계산하려면 결과 열의 맨 위 셀에 수식을 한 번만 넣고, 아래 결과 범위는 비워 두면 됩니다. 상품·수량·단가 예제에서는 D2 수식 하나가 아래 행의 금액을 모두 계산했습니다.

새 행까지 이어지게 하려면 A2:A처럼 끝 행을 열어 두고, 빈 행의 0을 막으려면 IF(A2:A="","",...)로 입력 기준 열을 먼저 검사하세요.

#REF!가 보이면 수식부터 고치기보다 결과 범위의 수동값을 먼저 찾습니다. 아래 재현에서는 D4의 값 하나가 배열 확장을 막았고, 그 값을 옮기자 원래 결과가 복구됐습니다.

구글 스프레드시트 ARRAYFORMULA로 상품 금액 열을 자동 채우는 검증 화면을 활용한 대표 이미지

ARRAYFORMULA는 언제 쓰면 되나요?

한 행마다 같은 계산을 아래로 복사하는 열이라면 ARRAYFORMULA가 잘 맞습니다. 수량×단가, 날짜에서 월 추출, 코드 조합처럼 규칙이 같은 계산을 한 셀에서 관리할 수 있습니다.

업무 상황권장 방식이유
모든 행에 같은 계산ARRAYFORMULA한 수식으로 새 행까지 이어서 계산
일부 행을 사람이 덮어써야 함개별 수식 또는 예외 열수동값이 배열 결과 범위를 막을 수 있음
FILTER·SEQUENCE·IMPORTRANGE처럼 이미 배열을 반환먼저 함수 자체만 사용공식 도움말처럼 명시적 ARRAYFORMULA가 불필요할 수 있음

결과 열에 승인값·메모·수정값을 직접 입력해야 한다면 ARRAYFORMULA와 같은 열을 공유하지 마세요. 계산 열과 수동 예외 열을 분리한 뒤 최종값을 다른 열에서 선택하는 구조가 안전합니다.

한 번 입력해 금액 열을 자동 계산하려면?

D2에 아래 수식을 한 번 입력하면 됩니다. A열의 상품명이 비어 있지 않은 행만 B열 수량과 C열 단가를 곱합니다.

=ARRAYFORMULA(IF(A2:A="","",B2:B*C2:C))
직접 재현한 상품 금액 예제
상품수량단가계산 결과
무선 마우스218,00036,000
키보드142,00042,000
USB 허브315,00045,000
노트북 거치대228,00056,000

웹캠 행을 새로 추가해 수량 2, 단가 51,000을 입력하자 D열에는 102,000이 자동으로 표시됐습니다. D2를 아래로 복사하지 않아도 A2:A, B2:B, C2:C의 열린 범위가 새 행을 포함했습니다.

빈 행에 0이 나오지 않게 하려면?

숫자 열만 곱한 =ARRAYFORMULA(B2:B8*C2:C8)을 시험하자 입력이 없는 7행과 8행에 0이 표시됐습니다. 입력 여부를 대표하는 열을 IF로 먼저 검사하면 빈 행은 빈 문자열로 남길 수 있습니다.

=ARRAYFORMULA(IF(A2:A8="","",B2:B8*C2:C8))
  • A열 상품명이 필수라면 A2:A를 검사합니다.
  • 상품명 없이 수량부터 입력할 수 있다면 실제로 입력 여부를 대표하는 다른 열을 고릅니다.
  • 원본 셀이 수식으로 ""을 반환할 수 있다면 ISBLANK보다 A2:A="" 또는 LEN 검사를 먼저 검토합니다.

Google 공식 ISBLANK 도움말은 빈 문자열 ""도 내용으로 간주해 FALSE를 반환한다고 설명합니다. 겉으로 빈 셀이 모두 같은 상태는 아니므로, 원본 열에 수식이 있는지 확인하세요.

#REF!는 왜 생기고 어떻게 복구하나요?

배열 결과가 펼쳐질 셀에 값이 있으면 #REF!가 발생할 수 있습니다. D2에 ARRAYFORMULA를 둔 상태에서 D4에 ‘수동값’을 넣어 재현하자, Google Sheets는 “배열 결과는 D4에서 데이터를 덮어쓰기 때문에 스프레드시트에서 펼쳐지지 않습니다”라고 표시했습니다.

D4 수동값 때문에 발생한 ARRAYFORMULA #REF 오류와 방해 셀 제거 후 정상 확장 결과 비교
  1. 오류 말풍선에서 덮어쓰려는 셀 주소를 확인합니다.
  2. 그 셀의 값이 필요한 기록이면 다른 열로 먼저 이동합니다.
  3. 불필요한 값이라면 삭제하고 원래 수식 셀로 돌아갑니다.
  4. 정상값이 아래 행까지 다시 펼쳐지는지 확인합니다.

방해 셀을 비우자 D2:D6의 36,000·42,000·45,000·56,000·102,000이 다시 계산됐습니다. 결과 셀 하나를 따로 수정한 시험에서도 그 값이 새 방해 셀이 되어 원본 배열이 #REF!로 돌아갔습니다.

헤더까지 한 수식으로 만들려면?

헤더와 계산식을 함께 관리하려면 D1에서 배열 리터럴과 ARRAYFORMULA를 세로로 결합할 수 있습니다. 이 글의 한국 로캘 시트에서는 세미콜론이 헤더 행과 계산 결과를 위아래로 연결했습니다.

={"금액";ARRAYFORMULA(IF(A2:A="","",B2:B*C2:C))}
방식수식 위치추천 상황
헤더 분리D1은 ‘금액’, D2는 ARRAYFORMULA헤더를 자주 바꾸거나 수식을 따로 설명할 때
헤더 결합D1에 결합 수식템플릿에서 헤더와 계산을 한 단위로 옮길 때

결합 수식은 D1 아래 전체를 결과 범위로 사용합니다. D2 이후에 수동값이 있으면 같은 #REF! 문제가 생깁니다. 시트 로캘에 따라 수식 구분자가 다르면 Google Sheets의 함수 자동 제안에 표시되는 구분자를 확인하세요.

결과가 예상과 다를 때 어디부터 보나요?

증상먼저 볼 곳복구 방법
#REF!와 덮어쓰기 주소 표시오류가 지목한 셀필요한 값을 이동한 뒤 방해 셀을 비움
새 행만 계산되지 않음A2:A6 같은 고정 끝 행운영 범위에 맞게 끝 행을 늘리거나 열린 범위 사용
빈 행에 0이 표시됨IF로 입력 열을 검사하는지빈 행이면 ""을 반환하도록 조건 추가
헤더가 사라지거나 #REF! 발생수식 시작 셀과 기존 헤더D2에서 시작하거나 D1 결합 수식으로 통일
일부 행만 수동 수정해야 함결과 열의 운영 방식수동 예외 열을 분리하거나 개별 수식 사용

지금 적용할 순서

  1. 사본이나 작은 시험 범위에서 결과 열을 비웁니다.
  2. D2의 기본 수식 또는 D1의 헤더 결합 수식 중 하나를 고릅니다.
  3. 정상 행과 빈 행을 함께 확인합니다.
  4. 새 행 하나를 추가해 자동 계산이 이어지는지 봅니다.
  5. #REF!가 나면 오류가 알려주는 방해 셀부터 확인합니다.

실무 기본값은 헤더를 D1에 두고 D2에서 IF를 포함한 ARRAYFORMULA를 시작하는 방식입니다. 구조가 단순해 수식 위치와 오류 범위를 구분하기 쉽습니다. 헤더와 계산을 한 단위로 옮겨야 할 때만 D1 결합 수식을 사용하세요.

참고한 공식 문서

전체 글 보기