Sheet1, Sheet2 및 Sheet3의 세 워크 시트가있는 통합 문서가 있다고 가정합니다. Sheet2 워크 시트의 A1 열에는 수식 = Sheet1! A1이 있습니다. 해당 수식을 Sheet2에서 Sheet3의 A1 셀로 복사 할 때 수식은 여전히 ​​Sheet1을 참조합니다. 어떻게 그럴 수 있습니까? Excel에서 셀 참조처럼 시트 참조를 조정하지 않는 이유는 무엇입니까?

명명 된 범위와 마찬가지로 Excel은 워크 시트 이름을 절대 이름으로 취급합니다. 각 워크 시트 개체는 통합 문서의 다른 모든 워크 시트와 독립적입니다.

시트 참조가 포함 된 수식을 붙여 넣으면 붙여 넣은 항목에서 해당 시트 참조가 변경되지 않습니다.

할 수있는 일이 몇 가지 있습니다. 하나는 붙여 넣은 후 수식 참조를 수정하여 올바른 시트를 참조하도록하는 것입니다. 변경할 수식이 많으면 대상 워크 시트 (F5 | 특수 | 수식)에서 모든 수식을 선택한 다음 찾기 및 바꾸기를 사용하여 원래 워크 시트 이름 (Sheet1)을 바꿀 수 있습니다.

올바른 워크 시트 이름 (Sheet2)으로.

참조 요구 사항이 복잡하지 않은 경우 매크로 접근 방식을 사용할 수 있습니다. 예를 들어 특정 셀의 수식이 현재 시트 이전 시트의 셀을 참조하도록하려면 매크로를 사용하여 쉽게 수행 할 수 있습니다. 다음 매크로를 고려하십시오.

Function PrevSheet(rCell As Range)

Application.Volatile     Dim i As Integer     i = rCell.Cells(1).Parent.Index     PrevSheet = Sheets(i - 1).Range(rCell.Address)

End Function

매크로는 현재 워크 시트를보고 이전 워크 시트를 파악합니다. 그런 다음 해당 워크 시트에 대한 참조가 만들어집니다.

PrevSheet 매크로를 만든 후에는 셀에서 함수를 사용할 수있는 한 가지 방법이 있습니다.

=PrevSheet(A1)

이렇게하면 이전 워크 시트의 A1 셀 값이 반환됩니다. Sheet1, Sheet2 및 Sheet3이 있고이 수식을 Sheet3에 사용하면 Sheet2! A1의 값이 반환됩니다. 이전 시트가 통합 문서의 첫 번째 시트이거나 워크 시트가 아닌 경우 함수는 #Value 오류를 반환합니다.

나중에이 수식을 다른 시트 (예 : Sheet 5)에 복사하면 새 위치를 기준으로 값을 가져옵니다. 즉, Sheet4! A1에서 값을 가져옵니다.

시트 이름을 포함 할 수도 있으며 함수는 잘 작동합니다.

=PrevSheet(Sheet3!A5)

이 버전은 sheet2가 Sheet3의 이전 시트이기 때문에 항상 Sheet2! A5를 반환합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (3088)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excelribbon-Relative_Worksheet_References [Relative Worksheet References].