셀에서 이름 대신 번호로 시트 참조
예를 들어sheet3.name = "d"
제가 다른 사람들에게sheet2
공식=sum(sheet3!b:b)
어디에sheet3
실제 sheet3 이름으로 대체되고 있습니까?
나는 오직 얻을 수 있습니다.=sum('d'!b:b)
지금까지 일하기 위해.
VBA를 사용할 수도 있지만 셀에서 어떻게 하는지 궁금해서 매번 매크로를 실행할 필요가 없습니다.
시트 이름을 반환하는 UDF 사용자 정의 함수를 사용할 수 있는 경우
Function SHEETNAME(number As Long) As String
SHEETNAME = Sheets(number).Name
End Function
그렇다면 와 같은 공식.
=SUM(INDIRECT(SHEETNAME(3) &"!B:B"))
는 시트 3의 열 B의 합계를 반환합니다.
SHEETNAME(number)
인덱스 번호의 시트 이름을 반환합니다.
그렇게Sheet(1)
시트 1 등을 반환합니다.
시트 이름을 가져오려면 아래 수식을 사용합니다. 시트에 파일 이름이 있어야 합니다.
=REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")
간접: 을 사용하여 해당 셀을 참조할 수 있습니다.
=SUM(Indirect("'"&A1&"'!B:B"))
또는 두 번째 셀을 사용하지 않으려면 두 공식을 하나로 결합할 수 있습니다.
=SUM(INDIRECT("'"&REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")&"'!B:B"))
시트의 순서에 관심이 없는 사람은 여기 mrexcel.com 에 있는 Biff의 게시물이 잘 작동합니다.
Excel 2013에서 리본의 수식 탭으로 이동하여 정의된 이름을 만듭니다.
Name: SheetNames
Refers to: =GET.WORKBOOK(1)&T(NOW())
그런 다음 다음과 같은 공식을 사용합니다.
=INDIRECT("'"&INDEX(MID(SheetNames,FIND("]",SheetNames)+1,255),A3)&"'!A1")
여기서 A3는 현재 시트에서 셀의 인덱스 번호를 의미하고, A1은 다른 시트에서 검색할 값의 위치를 의미합니다.즉, 현재 시트에서 A3 = 2일 경우 공식은 워크북의 두 번째 시트에 있는 셀 A1을 가리킵니다.현재 시트에 인덱스 번호 열을 사용한 다음 이 수식을 끌어다 놓으면 다른 모든 시트의 값이 채워집니다.
매크로 실행 파일(.xlsm)로 저장해야 합니다.
이것이 좋은 생각인지는 모르겠지만 제가 생각할 수 있는 첫 번째 생각입니다.
저는 당신의 VBA 프로젝트에 당신의 시트3의 실제 이름을 반환하는 추가 기능을 참조하십시오.
Function Sheet3Name()
Sheet3Name = Sheet3.Name
End Function
다음으로 Excel 셀에 B:B 열의 합계 공식을 작성할 때 다음과 같은 방법으로 작성해야 합니다.
=SUM(INDIRECT(Sheet3Name()&"!A:A"))
언급URL : https://stackoverflow.com/questions/19790985/referencing-sheets-by-number-instead-of-name-in-cells
'programing' 카테고리의 다른 글
"2" 인수를 사용하여 "DownloadFile"을 호출하는 중 예외 발생: "WebClient 요청 중에 예외가 발생했습니다." (0) | 2023.08.29 |
---|---|
배열의 모든 구성원을 영숫자로 전환하는 가장 빠른 방법은 무엇입니까? (0) | 2023.08.29 |
WordPress: 트랜잭션이 없는 일부 쿼리의 교착 상태? (0) | 2023.08.29 |
PowerShell을 사용하여 작업 표시줄에 고정하는 방법 (0) | 2023.08.29 |
클래스 이름으로 요소를 가져오는 방법? (0) | 2023.08.29 |