source

Excel의 다른 워크북을 상대적으로 참조하려면 어떻게 해야 합니까?

itover 2023. 7. 16. 19:36
반응형

Excel의 다른 워크북을 상대적으로 참조하려면 어떻게 해야 합니까?

저는 가격을 계산하기 위해 시트를 제작하고 있습니다.다른 구성요소에 대한 가격을 얻으려면 시트에 다른 여러 워크북에 대한 참조가 있어야 합니다.이것은 내 컴퓨터에서 잘 작동하지만 서버나 다른 컴퓨터로 이동하면 참조를 찾을 수 없습니다.

내 폴더의 구조는 다음과 같습니다.

Folder
|-- prices.xlsx
|-- Fixed Components
|   |-- ComponentsA.xlsx
|   +-- ComponentsB.xlsx
|
+-- Variable Components
    |-- ComponentsC.xlsx
    +-- ComponentsD.xlsx

prices.xlsx는 다른 시트를 참조하는 메인 시트입니다.내 컴퓨터에서는 절대 경로로 참조를 작성하므로 파일을 복사할 때 다른 PC의 파일을 참조하는 대신 경로가 내 컴퓨터에 고정되어 있습니다.

제가 수 요?='\Variable Components\[ComponentsC.xlsx]Sheet1'!A1사람들이 매크로를 신뢰하지 않고 기능이 작동하지 않는다고 불평하는 경향이 있기 때문에 저는 이것에 VBA를 사용하고 싶지 않습니다.

외부 파일을 하위 폴더로 구성하는 유일한 솔루션은 공식에서 외부 파일에 대한 전체 경로를 확인하기 위해 VBA를 사용해야 했습니다.다음은 다른 사이트에서 사용한 몇 가지 예제를 포함한 사이트 링크입니다.

http://www.teachexcel.com/excel-help/excel-how-to.php?i=415651

또는 모든 파일을 하위 폴더로 분할하는 대신 동일한 폴더에 배치할 수 있는 경우 Excel은 파일을 네트워크 위치로 이동하더라도 VBA를 사용하지 않고 외부 참조를 해결합니다. 여러분의 그면공식단니집다해순이러가 됩니다.='[ComponentsC.xlsx]Sheet1'!A1이동할 폴더 이름이 없습니다.

다음 시퀀스를 사용하여 해결한 것과 유사한 문제가 있었습니다.

  1. 을 사용합니다.CELL("filename")함수를 사용하여 현재 파일의 현재 시트에 대한 전체 경로를 가져옵니다.

  2. 을 사용합니다.SEARCH()의을 찾는 [FileName]입니다.<< Excel >> << SheetName >> << Sheet >>

  3. 을 사용합니다.LEFT현재 파일이 들어 있는 디렉터리의 전체 경로 이름을 추출하는 함수입니다.

  4. 3단계에서 찾은 디렉터리 경로 이름을 파일 이름, 워크시트 이름 및 액세스하려는 셀 참조와 연결합니다.

  5. 을 사용합니다.INDIRECT()CellPathName4단계에서 생성한 것입니다.

참고: 동일한 단계를 사용하여 이름이 동적으로 작성된 파일의 셀에 액세스할 수도 있습니다.#4단계에서는 셀의 내용, 현재 날짜 또는 시간 등으로 동적으로 생성되는 텍스트 문자열을 사용합니다.

이러한 모든 단계를 포함하는 셀 참조 예제(각 조각을 개별적으로 조립)는 다음과 같습니다.

=INDIRECT("'" & LEFT(CELL("filename"),SEARCH("[MyFileName]MySheetName",CELL("filename")) - 1) & "[" & "OtherFileName" & "]" & "OtherSheetName" & "'!" & "$OtherColumn$OtherRow" & "'")

LibreOffice는 다음 예제와 같이 약간 다른 CellPatnName 구문을 사용합니다.

=INDIRECT(LEFT(CELL("filename"),SEARCH("[MyFileName]MySheetName",CELL("filename")) - 1) & "OtherFileName" & "'#$" & "OtherSheetName" & "." & "$OtherColumn$OtherRow")

더 짧음: 간적으로쉽고짧음다보접:INDIRECT("'..\..\..\..\Supply\SU\SU.ods'#$Data.$A$2:$AC$200")

인 문제는 가 있습니다.

다음과 같은 구조가 그립습니다.['../Data.ods']#Sheet1.A1리브레 사무소에서.여기서는 마스터 워크북을 많이 만들고 원본 파일 시스템의 제한된 디렉토리 하위 트리에 보고서 워크북을 추가하면 전체 디렉토리 하위 트리에 전체 워크북 패키지를 압축하여 이메일 등을 통해 다른 협력자에게 보낼 수 있습니다.대상 시스템의 다른 절대 경로에 저장되지만 하위 트리 루트에 상대적으로 코드화되었기 때문에 링크가 새 절대 경로에서 다시 작동합니다.

=sysnamefilenamefiles 및 =syslog() 함수를 사용하고, 상위 Excel 파일의 워크시트에 외부에서 참조된 Excel 파일의 이름으로 이름을 지정합니다.외부에서 참조된 각 Excel 파일은 동일한 이름을 가진 자체 폴더에 있었습니다.이러한 하위 폴더는 보다 명확한 정보를 제공하기 위한 것입니다.


제가 한 일은 다음과 같습니다.

|----C열 B------------------------------------------------------------------------------------------------

R2) 상위 폴더 --------> "C:\TEMP\Excel\"

R3) 하위 폴더 이름 ---> =subname(으)로 이동합니다.

R5) 전체 경로 ------------> ="&C2&C3&"["&C3&.xlsx]Sheet1'!$A$1"

R7) 간접 함수-----> = DICOM(C5, TRUE)

메인 파일에는 Ext-1, Ext-2, Ext-3, Ext-4, Ext-5로 표시된 5개의 워크시트가 있습니다.복사는 위의 공식을 다섯 개의 워크시트에 모두 붙여넣었습니다.백그라운드에서 각각 이름이 지정된 Excel 파일을 모두 열었습니다.어떤 이유에서인지 결과가 자동으로 계산되지 않았기 때문에 셀을 편집하여 변경해야 했습니다.Vola, 외부에서 참조된 각 Excel 파일의 셀 A1 값은 Main 파일에 있었습니다.

공유 드라이브(예: S 드라이브)에 링크한다고 가정하십니까?그렇다면 다른 사용자가 드라이브를 다르게 매핑했을 수 있습니다.아마도 "공식" 드라이브 이름 //euhkj002/forecasts/bla를 사용해야 할 것입니다.링크에서 S// 대신

Excel에는 파일이나 디렉터리에 대한 상대적 참조를 포함하는 방법이 있습니다.excel 셀: =DICOM("..\Name_of_file_or_folder\","DisplayLinkName")

저에게 맞는 것은 점 하나였습니다.제 사무실은 365입니다.=DBS(.\Name_of_folder\","DisplayLinkName") =DICOM(.\Name_of_file", "DisplayLinkName")

언급URL : https://stackoverflow.com/questions/11629633/how-do-i-make-a-relative-reference-to-another-workbook-in-excel

반응형