10

다른 스프레드 시트의 하이퍼 링크에서 Google 스프레드 시트의 특정 시트를 열고 싶습니다.Google 스프레드 시트 특정 시트에 대한 하이퍼 링크

내 마스터 스프레드 시트에 다른 링크가 있으며 모든 스프레드 시트에 동일한 슬레이브 스프레드 시트가 있지만 다른 시트에 하이퍼 링크가 있어야합니다.

하이퍼 링크 기능을 알고 있지만 특정 시트에는 적용되지 않습니다. 도움을

감사

답변

9

HYPERLINK 기능 수 같은 통합 문서의 다른 시트에 링크; 스프레드 시트의 URL을 확인하면 페이지 끝에 #gid=x이 표시되며 여기에서 x은 고유합니다.

문제는 다른 탭에서 스프레드 시트의 새 인스턴스로 시트를 열 것이므로 바람직하지 않을 수 있습니다. 해결 방법은 이미지 또는 그림을 버튼으로 삽입하고 특정 시트를 활성화 할 스크립트를 지정하는 것입니다.

+4

믿을 수없는 표준적인 기능은 아닙니다. 해결 방법 주셔서 감사합니다 – Brandon

+1

이 답변 도움이 .. 그냥 주석 추가 : 같은 스프레드 시트 문서 내에서 해당 워크 시트를 연결하는 경우 "다른 [브라우저] 탭에서 열립니다"정말 문제가됩니다. 귀하의 예제가 내 것과 같다면, HTML 또는 wiki 페이지를 특정 워크 시트에 연결하고 걱정하지 않아도됩니다. #gid 트릭이 작동합니다 (아무도 워크 시트 탭을 삭제하지 않으므로 ... 중요합니다.) # gid는 고정 위치 번호이므로 왼쪽부터 네 번째 워크 시트는 # gid = 3입니다. –

11

이 사용자 정의 스크립트 (도구> 스크립트 편집기) 기능을 사용하여 예를 들면 다음과 같이 연결할 수 있습니다. 사용자 정의 그리기 (삽입> 그림 ...>> 저장 후 닫기, 마우스 오른쪽 새 도면을 클릭 스크립트 지정 ...> "goToSheet2")

function goToSheet2() { 
    goToSheet("Sheet2"); 
} 

function goToSheet(sheetName) { 
    var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName); 
    SpreadsheetApp.setActiveSheet(sheet); 
} 

업데이트 : 당신이 할 수있는 최신 버전의
셀을 선택하고 링크 (삽입> 링크)를 추가하고 직접 특정 시트에 링크를 선택 :
Insert link to sheet.

+0

최상의 답변과 옵션은 ** 업데이트 : ** 하나입니다. –

0

그래서 내가 OP에서 당신이 개별 시트에 대한 링크를 갖고 싶어 하나의 마스터 스프레드 시트를 가지고있다 아는 바로는, 그 시트들 중 하나 이상이 단일 또는 다중으로 존재할 수있다 전자 스프레드 시트 파일.

HYPERLINK 기능은 URL을 하이퍼 링크로 바꾸며 실제로 링크 일뿐만 아니라 하이퍼 텍스트를 갖고 싶을 때 유용합니다. 원시 URL을 데이터로 입력하면 자동으로 하이퍼 링크로 바뀌므로 추가 작업이 필요 없습니다.

다른 답변에서 언급했듯이 해결책은 스프레드 시트의 URL에 gid 값을 사용하여 스프레드 시트 내에서 원하는 시트에 대한 링크를 계산하는 것입니다. 개별 시트 링크를 모두 모아서 마스터에 쓰는 간단한 앱을 작성할 수 있습니다.

다음은 시작하는 데 도움이되는 의사 코드 (Python)의 일부입니다. 나는 상용구 인증 코드를 모두 생략하고 있지만, 필요한 경우 this blog postthis video을 참조하십시오. 아래 코드는 API 서비스 종점이 SHEETS 인 것으로 가정합니다.

이는 시트의 각 링크를 구축 할 수있는 대상 스프레드 시트를 읽

대신 화면에 인쇄
# open target Sheet, get all sheets & Sheet URL 
SHEET_ID = TARGET_SHEET_DRIVE_FILE_ID 
res = SHEETS.spreadsheets().get(spreadsheetId=SHEET_ID, 
     fields='sheets,spreadsheetUrl').execute() 
sheets = res.get('sheets', []) 
url = res['spreadsheetUrl'] 

# for each sheet, dump out its name & full URL 
for sheet in sheets: 
    data = sheet['properties'] 
    print('** Sheet title: %r' % data['title']) 
    print(' - Link: %s#gid=%s' % (url, data['sheetId'])) 

, 이제 앱에서 (name, URL) 2 튜플 배열을 저장 가정 해 봅시다, 그래서 바닥 이 같은 (왼쪽 상단 모서리, 세포 A1부터) 그런 다음 마스터로 쓸 수

sheet_data = [ 
    ('Intro', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=5'), 
    ('XData', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=3'), 
    ('YData', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=7') 
] 

: - 라인,이 목록 같은 것을 sheet_data라고 본다

,451,515,
SHEET_ID = MASTER_SHEET_DRIVE_FILE_ID 
SHEETS.spreadsheets().values().update(
    spreadsheetId=SHEET_ID, range='A1', 
    body={'values': sheet_data}, 
    valueInputOption='USER_ENTERED' 
).execute() 

일부주의 gid를 사용하여 :

  • 당신 (시트 1)에 대해 만든 첫 번째 기본 시트는 항상 gid=0 있습니다.
  • 이후에 추가하는 모든 시트는 임의의 gid을 갖습니다.
  • 스프레드 시트의 첫 번째 시트에 gid=0을 기입하지 마십시오. 그러나 위의 예처럼 원래의 기본 시트를 삭제 한 사람이있을 수 있습니다.

    당신은 스프레드 시트 API를 사용하여 더 많은 예제를 보려면

  • , 여기 (각 코드 샘플 탐구 게시물과 함께) 내가 만든했습니다 더 많은 동영상이 있습니다 post
  • Formatting text using the Sheets API 플러스 코드 깊은 다이빙 post
  • Generating slides from spreadsheet data 플러스 코드 심도있는 post

그런 다음 스프레드 시트 UI에서 마스터를 열면 스프레드 시트 파일에 관계없이 개별 시트 중 하나를 클릭 할 수 있습니다. 다른 앱이나 스크립트에 의해 자동으로 열리려면 대부분의 프로그래밍 언어 개발자에게 타겟 URL이 주어지면 웹 브라우저를 실행할 수있는 방법을 제공합니다. 파이썬에서, 그것은 webbrowser 모듈 (docs) 다음과 같습니다

import webbrowser 
webbrowser.open_new(url) # or webbrowser.open_new_tab(url) 
0

내가 PERSONNALY이 무엇 @rejthy에 따라 않았다 말했다 : 스크립트에서 나는이 기능을 만들어 :에서 다음

/** 
* Return the id of the sheet. (by name) 
* 
* @return The ID of the sheet 
* @customfunction 
*/ 
function GET_SHEET_ID(sheetName) { 
    var sheetId = SpreadsheetApp.getActive().getSheetByName(sheetName).getSheetId(); 
    return sheetId; 
} 

및 내 내가이 작업을 수행 한 링크가 필요한 시트 : =HYPERLINK("#gid="&GET_SHEET_ID("Factures - "&$B$1);"Année en cours")

0

또는 맞춤 함수를 만들 수 있습니다. 열린 스프레드 시트로, 편집기에 코드를 붙여 넣습니다 .... 도구를 다음 메뉴, 스크립트 편집기를 클릭,

/** 
* Gets the Sheet ID from Sheet Name 
* 
* @param {string} input The Sheet Name 
* @return The Sheet ID 
* @customfunction 
*/ 
function SHEETID(input) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var tab = ss.getSheetByName(input); 
    return tab.getSheetId(); 
} 

저장 스프레드 시트를 새로 고침 한 다음 사용자 정의 함수를 입력

=SHEETID("Your Custom Sheet Name") 

=SHEETID(A1) 

그리고!탭의 고유 ID (현재 스프레드 시트에 있음)가 출력됩니다. 다음 수식을 사용하여 하이퍼 링크로 연결할 수 있습니다.

관련 문제