시트 이름을 얻을 수 있습니까?


12

셀에서 시트 이름을 어떻게 얻을 수 있습니까? (하나 이상의 시트가 있는데 각 시트에 전류를 가져오고 싶습니다)

답변:


7

Microsoft 시트 이름을 얻으려면 배열 수식을 사용해야 할 수도 있다고 설명 합니다.

현재 워크 시트의 이름을 표시하려면 다음 수식을 배열 수식으로 입력하십시오.

=RIGHT(CELL("filename"),LEN(CELL("filename"))-
  MAX(IF(NOT(ISERR(SEARCH("\",CELL("filename"),
  ROW(1:255)))),SEARCH("\",CELL("filename"),ROW(1:255)))))

여기서 "filename"은 말 그대로 "filename"이라는 단어입니다.

참고 :이 수식은 배열 수식으로 입력해야합니다. 배열 수식으로 수식을 입력하려면 Ctrl + Shift + Enter를 누릅니다.

또한 이것은 플랫폼에 따라 매우 다릅니다. Mac 에서는 다른 경로 구분 기호를 사용 하므로 다른 수식 이 필요합니다 . 또한 OpenOffice.org 및 기타 대안에서 다르게 작동 할 수 있습니다. 저장되지 않은 통합 문서에서 사용할 때 #VALUE!대신 얻을 수 있습니다 .

배열 수식을 사용하지 않는 경우 다음과 같이 통합 문서 이름 (파일 이름의 마지막 부분)을 얻을 수 있습니다.

다음 수식에 사용 된 것처럼 통합 문서의 이름 만 반환하려면

=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1,
  SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)

7

공식은 다음과 같습니다.

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)

( 추가 정보 링크 )


"A1"에 대한 참조는 필요하지 않습니다. 또한 이는 플랫폼에 독립적이 아니며 통합 문서를 저장할 때까지 수식이 비어있을 수 있습니다. 참조 support.microsoft.com/kb/323225
Arjan

이것을 두 개의 워크 시트에 넣으면 둘 다 동일한 이름을 갖습니다. 셀이있는 현재 워크 시트를 얻지 못합니다.보고있는 현재 워크 시트를 가져오고 다른 모든 워크 시트의 다른 모든 필드의 값을 복제합니다.
BrunoLM

2

먼저 어디서나이 공식을 입력하는 것보다 파일을 저장하십시오

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

+ 작동하지만 짧습니다. 참고 사항 : 독일어 Excel 사용=RECHTS(ZELLE("dateiname");LÄNGE(ZELLE("dateiname"))-FINDEN("]";ZELLE("dateiname")))
nixda

제 경우 에는 함수의 요소를 분리 할 때 ;대신에 사용해야 했습니다,
WoJ

0

M $ EXCEL 및 LibreOffice CALC에서 테스트 및 작동 (공식은 스페인어) :

=EXTRAEB(CELDA("filename");SI(ESERROR(1+HALLAR("]";CELDA("filename")));SI(ESERROR(3+HALLAR("'#$";CELDA("filename")));0;3+HALLAR("'#$";CELDA("filename")));1+HALLAR("]";CELDA("filename")));LARGO(CELDA("filename")))

참고 : 다른 수식 안에 들어가거나 하나의 셀만 사용하는 것은 하나의 거대한 수식입니다.

영어로 생각합니다 : EXTRAEB는 MIDB, CELDA는 CELL, SI는 IF, ESERROR는 ISERROR, HALLAR는 FIND, LARGO는 LENGTH입니다.

그런 거대한 수식을 여러 셀로 분할하면 같은 호출을 여러 번 피하는 것이 훨씬 좋습니다.

  1. =CELDA("filename")
  2. =1+HALLAR("]";<CellReferenceFor_1>)
  3. =3+HALLAR("'#$";<CellReferenceFor_1>)
  4. =ESERROR(<CellReferenceFor_2>;)
  5. =ESERROR(<CellReferenceFor_3>;)
  6. =EXTRAEB(<CellReferenceFor_1>;SI(<CellReferenceFor_4>;SI(<CellReferenceFor_5>;0;<CellReferenceFor_5>);<CellReferenceFor_4>);LARGO(<CellReferenceFor_1>))

도대체 시트 이름을 얻는 것이 왜 그렇게 복잡하고 시트 목록에서 시트 위치를 얻는 것이 현대 스프레드 시트에서 그렇게 쉬운 지 (EXCEL 2000에는 존재하지 않음) 경고 : =HOJA(A1)

그리고 또 다른 것 : 왜 각 언어마다 함수가 다르게 호출되는지, M $ EXCEL이 스페인어이고 영어로 된 CALC 인 경우 (러시아어, Chinesse 등은 말할 수 없음)? 어려운 일이라면 곱셈 관용구의 모든 함수 이름을 기억해야합니다.

내부적으로는, 예를 들어, speific 이름으로 저장 =SHEET(A1)과 동일하다 =HOJA(A1)로 저장됩니다 =_xlfn.SHEET(A1); 왜 모든 관용구에서 마지막 관용구를 사용하지 않습니까?

또는 다른 형태로 말했다 : 왜 영어로 넣었을 때 그것이 기능 이름이 아니라고 말합니다 (CALC / M $ EXCEL이 영어가 아닌 경우)?

M $ ACCESS 및 SQL 함수가 발생하지 않으면 스페인어 버전에서 스페인어 ESNULO()및 영어로 입력 할 수 ISNULL()있으며 올바르게 가져갑니다.

둘 다 받아들이기에는 너무 복잡한 경우; 그럼, 오직 하나만 받아들이고, idom을 곱하기 위해 현지화하지 마십시오!

글쎄, 의문의 여지가 있지만, 그 거대한 공식에 사용하는 트릭은 ]존재 하는지 테스트하는 것입니다 (M $ EXCEL). 그렇지 않으면 '#$에서 이름을 추출하는 동안 존재하는지 테스트하십시오 (LibreOffice CALC) =CELL("filename"). 너무 이상하다!

냉소적 인 질문으로 다시 : 왜 그들이 추가 =SHEET(A1)되지 않았 =SHEETNAME(A1)습니까? 그것은 우리 모두에게 더 힘든 일입니다!


-1

LibreOffice에서는 수식을 다음과 같이 혼합했으며 끝을 향한 숫자 20은 표시되는 문자의 제한입니다.

= (복제품 (MID ((RIGHT (CELL ( "파일 이름"), LEN (Cfile ( "파일 이름")))-MAX (IF (NOT (ISERR (SEARCH ( "\", CELL ( "파일 이름"))))))) : 255 : 255)))), SEARCH ( "\", CELL ( "filename"), ROW (1 : 255 : 255)))))), FIND ( "# $", (RIGHT (CELL ( "filename) "), LEN (CELL ("filename "))-MAX (IF (NOT (ISERR (SEARCH ("\ ", CELL ("filename "), ROW (1 : 255 : 255)))), SEARCH ("\ ", CELL ("filename "), ROW (1 : 255 : 255))))))) + 2,20), 1,1))


1
이것은 MS Excel 용입니다.
제임스 메르 츠
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.