왜 정렬이 막히나
병합된 셀이 있으면 정렬·필터가 뜻대로 되지 않을 수 있습니다. 병합은 여러 칸을 한 칸처럼 보이게 하지만, 값은 맨 왼쪽 위 칸 하나에만 들어 있습니다. 그래서 병합된 행은 정렬이 뜻대로 되지 않을 수 있고, 병합을 풀면 나머지 행의 그 열이 빈 칸으로 남을 수 있어 값으로 거르면 그 행들이 빠질 수 있습니다.
표를 복사하면 병합 셀의 값은 보통 첫 칸에만 나오고 덮여 있던 칸은 비어서 나옵니다(아직 재지 않음 — 붙여넣은 결과를 확인하세요). 이 빈 칸을 위(세로 병합) 또는 왼쪽(가로 병합) 값으로 채우면 행 하나하나가 스스로 완결된 평평한 표가 됩니다.
시트 안에서 직접 푸는 3가지 방법
-
① 이 도구로: 복사 → 붙여넣기
시트에서 범위를 복사해 위 칸에 붙여넣고, 채울 열을 확인한 뒤 「결과 복사」를 누릅니다. 새 시트(또는 원래 자리)에 붙여넣으면 됩니다. 원래 자리에 붙이려면 먼저 그 범위의 병합을 해제하세요(병합 해제 메뉴는 서식 메뉴 아래의 셀 병합 항목에 있습니다).
한계 병합 정보는 사라집니다. 서식·수식은 옮겨지지 않고 붙여넣은 글자만 옮겨집니다. 셀 안 줄바꿈은 보존됩니다.
-
② Apps Script: 병합 해제 + 값 채움
확장 프로그램 메뉴에서 Apps Script 를 열고 아래 코드를 붙여넣어 저장합니다. 시트를 새로고침하면 「병합 도구」 메뉴가 생기도록 만든 코드이며, 범위를 선택한 뒤 「병합 해제 후 값 채우기」를 누르면 병합마다 왼쪽 위 값을 읽어 병합을 풀고 그 범위에 같은 값을 넣도록 만들었습니다. 처음 실행하면 권한 승인을 요청할 수 있습니다.
/** * 병합 해제 + 값 채우기 (Google Apps Script) * 사용: 확장 프로그램 > Apps Script 에 붙여넣고 저장 → 시트를 새로고침하면 「병합 도구」 메뉴가 생기도록 만들었다. * 범위를 선택하고 「병합 해제 후 값 채우기」를 누른다. 먼저 시트 사본을 만들어 두는 것을 권한다. * 한계: 병합 정보 자체는 사라진다(되돌리려면 실행 취소 또는 사본). 수식이 든 병합 칸은 풀린 범위에 수식을 다시 넣는다(상대 참조가 어떻게 조정되는지는 아직 재지 않음). */ function onOpen() { SpreadsheetApp.getUi() .createMenu('병합 도구') .addItem('병합 해제 후 값 채우기', 'unmergeAndFill') .addToUi(); } function unmergeAndFill() { var range = SpreadsheetApp.getActiveRange(); if (!range) { SpreadsheetApp.getUi().alert('먼저 범위를 선택하세요.'); return; } // 선택 범위 안에 있거나 걸쳐 있는 병합 범위 전체 var merged = range.getMergedRanges(); if (merged.length === 0) { SpreadsheetApp.getUi().alert('선택한 범위에 병합된 셀이 없습니다.'); return; } var cells = 0; merged.forEach(function (m) { var topLeft = m.getCell(1, 1); var formula = topLeft.getFormula(); var value = topLeft.getValue(); m.breakApart(); if (formula) { m.setFormula(formula); // 풀린 범위에 수식을 다시 넣음(상대 참조 결과는 사본에서 확인) } else { m.setValue(value); // 풀린 범위에 왼쪽 위 값을 다시 넣음(실제 시트 결과는 사본에서 확인) } cells += m.getNumRows() * m.getNumColumns() - 1; }); SpreadsheetApp.getActiveSpreadsheet().toast( '병합 ' + merged.length + '곳을 풀고 빈 칸 ' + cells + '개를 채웠습니다.', '병합 도구' ); }한계 병합 정보는 사라지고, 되돌리려면 실행 취소나 사본이 필요합니다. 선택 범위에 걸친 병합은 범위 밖 부분까지 함께 풀릴 수 있습니다. 수식이 든 병합은 풀린 칸에 수식이 어떻게 들어가는지(상대 참조 조정 여부) 아직 재지 않았으니 결과를 확인하세요. 이 코드는 문법 검사만 했고 실제 시트에서의 실행 결과는 아직 재지 않았습니다. 사본에서 먼저 돌려 보세요.
-
③ 헬퍼 열 수식
병합을 먼저 해제합니다. 값이 A열(2행부터)에 있고 비어 있는 D열을 헬퍼 열로 쓴다고 하면, D1 에 머리글(예: 「팀」)을 적고 D2 에 아래 수식을 넣은 뒤 표 끝까지 아래로 끌어 채웁니다.
=IF(A2="",D1,A2)뜻: A2 가 비어 있으면 바로 위 헬퍼 칸(D1)의 값을, 아니면 A2 값을 씁니다. 위에서 아래로 이어지므로 빈 칸마다 가장 가까운 위 값이 들어갑니다. 그다음 D열을 복사해 A열에 값만 붙여넣기(Ctrl+Shift+V)로 붙이면 수식이 아닌 값으로 고정되고, 헬퍼 열은 지우면 됩니다.
한계 세로 병합만 한 번에 한 열씩 처리합니다. 값만 붙여넣기 전에 헬퍼 열을 지우면 결과가 사라집니다. 완전히 빈 행도 위 값으로 채워 버리므로 빈 행은 먼저 지우세요.
자주 묻는 질문
붙여넣은 표가 어딘가로 전송되나요?
아니요. 계산은 이 페이지 안의 스크립트로만 하고, 이 도구는 입력값을 쿠키·로컬 저장소에 저장하거나 전송하지 않습니다. 페이지를 닫으면 사라집니다.
병합 모양을 다시 되돌릴 수 있나요?
이 도구의 결과에는 병합 정보가 없습니다. 병합된 원본이 필요하면 작업 전에 시트 사본(파일 메뉴의 사본 만들기)을 만들어 두거나, 시트의 실행 취소를 쓰세요.
빈 칸이 원래 비어 있어야 하는 칸이면요?
자동 제안은 「행에 다른 값이 있는데 그 열만 비어 있고 바로 위에 값이 있는」 열만 체크합니다. 비고처럼 원래 비는 열이 체크됐다면 체크를 풀면 됩니다. 결과 표에서 채운 칸은 점선 테두리로 표시됩니다.
완전히 빈 행은 왜 안 채우나요?
빈 행은 보통 구역을 나누는 줄이라 값을 지어내면 틀리기 쉽습니다. 그대로 두고 개수를 알려 드리니, 정렬 전에 지우세요. 빈 행 아래 첫 칸이 비어 있으면 그 칸도 채우지 않습니다.