Skip to main content

Kutools for Office — 하나의 패키지. 다섯 가지 도구. 더 많은 일을 처리하세요.

Excel에서 행을 삽입하거나 삭제할 때 항상 위쪽 셀의 값을 얻는 방법은 무엇입니까?

Author Xiaoyang Last modified

Excel에서 바로 위에 있는 셀의 값을 참조하는 것은 누적 합계를 만들거나 월별 비교를 수행하거나, 단순히 워크시트가 발전함에 따라 데이터 일관성을 유지하기 위한 일반적인 요구사항입니다. 일반적으로 =D5와 같은 간단한 수식을 사용하여 위쪽 셀을 참조할 수 있지만, 이 솔루션에는 한계가 있습니다: 행을 삽입하거나 삭제하면 수식이 예상대로 새로운 '위쪽' 셀을 계속 참조하지 않을 수 있습니다. 아래 그림과 같이, 새 행을 위에 삽입하면 연속성이 깨지거나 참조가 원래 셀에 고정된 상태로 남아 있을 수 있습니다.

A screenshot showing how the reference to the above cell breaks after inserting a row in Excel

이 문제를 해결하고 행을 삽입하거나 삭제한 후에도 수식이 항상 바로 위쪽 셀의 값을 가져오도록 하기 위해 사용할 수 있는 몇 가지 방법이 있습니다. 각 방법은 워크시트 복잡성, 자동 업데이트 또는 수동 수식을 원하는지 여부, 그리고 VBA/매크로 사용에 대한 편안함에 따라 다른 장단점을 가지고 있습니다.

목차:


arrow blue right bubble 행을 삽입하거나 삭제할 때 항상 위쪽 셀 값 가져오기 (수식 사용)

매크로나 복잡한 설정 없이도 이 문제를 해결하는 간단한 방법으로, 행이 변경되더라도 항상 위쪽 셀을 동적으로 참조하는 수식을 사용할 수 있습니다. 이 수식은 Excel의 INDIRECTADDRESS 함수를 활용하여 참조가 항상 '위쪽' 셀을 추적하도록 합니다. 행이 삽입되거나 삭제되어도 참조는 새로운 위치로 조정됩니다. 이는 특히 리스트의 상단이나 중간에 새 데이터를 추가하는 등, 행 구조를 자주 수정하는 워크시트에 적합합니다.

다음 수식을 항상 위쪽 셀 값을 가져오고자 하는 셀에 직접 입력하세요 (예: B6에서 B5를 참조하려면):

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))

수식을 입력한 후 Enter 키를 누릅니다. 현재 셀은 즉시 바로 위쪽 셀의 값을 표시합니다. 아래와 같습니다:

A screenshot showing the formula to reference the above cell in Excel using INDIRECT and ADDRESS

이제 참조 수식 셀 위에 새 행을 삽입하면 수식이 다시 계산되어 항상 새 위쪽 셀의 값을 표시합니다. 이렇게 하면 행 삽입 또는 삭제와 관계없이 수식이 항상 최신 상태를 유지합니다. 참고로 다음 스크린샷을 확인하세요:

A screenshot showing the correct cell reference maintained after inserting a row in Excel

매개변수 설명 및 팁:

  • 이 수식은 현재 수식 셀 바로 위의 셀 값을 가져옵니다. 따라서 이를 B6에 사용하면 B5의 값을 항상 반영하며, 위쪽에 행이 삽입되거나 삭제되어도 마찬가지입니다.
  • 이 수식을 데이터의 첫 번째 행(예: A1)에서 사용하면 존재하지 않는 행에서 데이터를 가져오려 시도하여 #REF! 오류가 발생할 수 있습니다. 이를 방지하려면 다음과 같이 오류 처리를 추가하세요: =IF(ROW()=1,"",INDIRECT(ADDRESS(ROW()-1,COLUMN()))) 첫 번째 행에서는 빈 셀을 표시합니다.
  • INDIRECT는 변동성이 큰 함수라는 점을 유의하세요. 극도로 큰 워크시트에서는 과도한 사용이 계산 속도를 저하시킬 수 있습니다.
  • 워크시트 구조가 어떻게 변경되든 행 위치에 대한 엄격한 관계를 유지하려면 이 수식을 사용하는 것이 효과적입니다.

문제 해결 및 요약 제안:
행을 삽입하거나 삭제한 후에도 수식이 예상대로 업데이트되지 않으면, 해당 수식이 올바른 셀에 입력되었는지 다시 확인하세요. 또한 $A$1과 같은 절대 셀 참조를 사용하고 있지 않은지 확인하세요. 문제가 발생하면 #REF! 첫 번째 행에서 오류가 발생하면 앞서 언급한 조건부 수식을 사용하세요. 더 나아가, 값 자체를 참조가 아닌 복사하고 싶다면 아래의 VBA 이벤트 기반 매크로 솔루션을 통해 동적이고 코드 기반의 접근 방식을 사용할 수 있습니다.


arrow blue right bubbleVBA 이벤트 기반 매크로를 사용하여 위쪽 셀의 값을 자동으로 업데이트하기 (항상 동적)

행을 삽입하거나 삭제해도 셀 값이 항상 위쪽 셀의 값을 자동으로 반영하게 하고 싶으며, 공식 복사 없이 이러한 동작을 관리하려면 이벤트 기반 VBA 매크로를 사용하는 것이 효과적입니다. 이 방법은 매크로 활성화에 익숙한 사용자에게 이상적이며, 특정 셀이나 범위를 선택하거나 값을 변경할 때마다 타겟 셀이 항상 위쪽 셀과 동일한 값을 가지도록 즉각적으로 설정할 수 있어 데이터 입력이 일관되게 유지됩니다. 특히 각 새 행에 고정된 패턴이나 기본값 설정이 필요한 템플릿에서 유용합니다.

Worksheet_Change 이벤트를 사용하여 이를 설정하는 방법은 다음과 같습니다:

1. 이 기능을 적용할 워크시트 탭을 우클릭하고 '코드 보기(View Code)'를 선택합니다. 그러면 Microsoft Visual Basic for Applications 편집기가 열리고 해당 워크시트 모듈로 이동합니다.

2. 다음 VBA 코드를 워크시트 모듈 창에 복사하여 붙여넣습니다:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WatchRange As Range
    On Error Resume Next
    ' Set the range you want to monitor (for example, B2:B100)
    Set WatchRange = Intersect(Target, Me.Range("B2:B100"))
    
    If Not WatchRange Is Nothing Then
        Application.EnableEvents = False
        Dim cell As Range
        
        For Each cell In WatchRange
            ' Avoid the first row, or adjust as needed
            If cell.Row > 1 Then
                cell.Value = Me.Cells(cell.Row - 1, cell.Column).Value
            End If
        Next cell
        
        Application.EnableEvents = True
    End If
End Sub

매개변수 주의사항: Me.Range("B2:B100")"B2:B100"을 원하는 동작 범위로 바꾸세요 (예: 전체 열인 "B:B"로 설정 가능). 그러나 범위를 좁게 설정하면 성능이 개선되고 의도치 않은 덮어쓰기를 방지할 수 있습니다.

3. VBA 편집기를 닫습니다. 이제 지정된 범위 내에서 셀이 변경되거나 삽입되거나 워크시트가 업데이트될 때마다 Excel이 자동으로 해당 셀을 위쪽 셀의 값으로 업데이트합니다. 예를 들어, 5번째 행에 새 행을 삽입하면 그 지점부터 B 열의 모든 모니터링된 셀들이 새 위치의 바로 위쪽 셀 값을 가져옵니다.

  • 주의: 이 코드는 감시 범위 내에서 수동으로 입력된 값을 덮어씁니다. 수식 셀이 있거나 원래 입력값을 유지해야 하는 경우 신중히 사용하세요.
  • 앞으로도 이 VBA 매크로를 계속 사용하려면 파일을 매크로 사용 가능 통합 문서(.xlsm)로 저장해야 합니다.
  • 이벤트 코드는 매크로가 붙여넣어진 워크시트 모듈에서만 작동합니다 (모든 시트에서 작동하려면 각 시트 모듈에 코드를 추가해야 함).
  • 값 변경 시가 아닌 셀 선택 시 업데이트를 원한다면 Worksheet_SelectionChange를 사용하고 비슷한 로직을 적용할 수 있습니다.

문제 해결 및 요약 제안:
VBA 스크립트가 작동하지 않으면, 워크북에서 매크로가 활성화되었는지 확인하고, 코드를 올바른 시트 모듈(일반 모듈이 아님)에 붙여넣었는지 확인하세요. 오류가 발생하거나 Excel이 멈추는 경우, 자동 셀 변경 전에 Application.EnableEvents가 False로 설정되어 있고 이후 True로 재설정되었는지 확인하여 재귀적 루프를 방지하세요. 기타 고급 동작이나 세밀한 제어를 원한다면 데이터 구조에 맞춘 커스텀 스크립팅을 고려하세요.


최고의 오피스 생산성 도구

🤖 Kutools AI 도우미: 데이터 분석에 혁신을 가져옵니다. 방법: 지능형 실행   |  코드 생성  |  사용자 정의 수식 생성  |  데이터 분석 및 차트 생성  |  Kutools Functions 호출
인기 기능: 중복 찾기, 강조 또는 중복 표시   |  빈 행 삭제   |  데이터 손실 없이 열 또는 셀 병합   |   반올림(수식 없이) ...
슈퍼 LOOKUP: 다중 조건 VLOOKUP    다중 값 VLOOKUP  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 드롭다운 목록 빠르게 생성   |  종속 드롭다운 목록   |  다중 선택 드롭다운 목록 ....
열 관리자: 지정한 수의 열 추가  |  열 이동  |  숨겨진 열의 표시 상태 전환  |  범위 및 열 비교 ...
추천 기능: 그리드 포커스   |  디자인 보기   |   향상된 수식 표시줄    통합 문서 & 시트 관리자   |  자동 텍스트 라이브러리   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독    목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터(굵게/이탤릭/취소선 필터 등) ...
15대 주요 도구 세트12 가지 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...)  |  50+ 종류의 차트(간트 차트, ...)  |  40+ 실용적 수식(생일을 기반으로 나이 계산, ...)  |  19 가지 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...)  |  12 가지 변환 도구(단어로 변환하기, 통화 변환, ...)  |  7 가지 병합 & 분할 도구(고급 행 병합, 셀 분할, ...)  |  ... 등 다양
Kutools는 사용자가 선호하는 언어로 이용할 수 있습니다 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및40개 이상의 언어 지원!

Kutools for Excel과 함께 엑셀 능력을 한 단계 끌어 올리고, 이전에 없던 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능으로 생산성을 높이고 저장 시간을 단축합니다.  가장 필요한 기능을 바로 확인하려면 여기를 클릭하세요...


Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 더욱 간편하게 만듭니다

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화합니다.
  • 새 창 대신 같은 창의 새로운 탭에서 여러 파일을 열고 생성할 수 있습니다.
  • 생산성이50% 증가하며, 매일 수백 번의 마우스 클릭을 줄여줍니다!

모든 Kutools 추가 기능. 한 번에 설치

Kutools for Office 제품군은 Excel, Word, Outlook, PowerPoint용 추가 기능과 Office Tab Pro를 한 번에 제공하여 Office 앱을 활용하는 팀에 최적입니다.

Excel Word Outlook Tabs PowerPoint
  • 올인원 제품군 — Excel, Word, Outlook, PowerPoint 추가 기능 + Office Tab Pro
  • 설치 한 번, 라이선스 한 번 — 몇 분 만에 손쉽게 설정(MSI 지원)
  • 함께 사용할 때 더욱 효율적 — Office 앱 간 생산성 향상
  • 30일 모든 기능 사용 가능 — 회원가입/카드 불필요
  • 최고의 가성비 — 개별 추가 기능 구매 대비 절약