Используйте ОБЪЕДИНЕНИЕ для создания гиперссылки на ячейку на другом листе [дубликат]

0

Вопрос

У меня есть рабочая тетрадь со множеством листов. Я хочу создать своего рода глоссарий с прямыми ссылками на разные листы. В колонке A есть список различных названий листов (например, январь, февраль, март). В столбце B мне нужны прямые ссылки на ячейку A1 в соответствующем листе (например, на Jan!А1, до февраля!A1 и т.д.

Я могу вывести значение ячейки назначения (A1), используя КОСВЕННОЕ+ОБЪЕДИНЕНИЕ. например, =КОСВЕННЫЙ(A2&"!А1") принесет стоимость Яна!A1 (где в ячейке A2 содержится название листа: Ян).

Чего я не могу сделать, так это сделать ссылку, которая при нажатии приведет меня к Яну!A1

Чтобы упростить задачу, я добавил пример: https://docs.google.com/spreadsheets/d/1z_UuA62ghUejFwGWKpT_smMhKM4QAVMgZrKotim8WHE/edit#gid=0 В колонке "Основной" листа А указаны названия листов. Col B-это то место, где я хотел бы показать гиперссылки. Col C показывает значения (это не имеет значения, просто потому, что я ссылался на это в своем вопросе)

1

Лучший ответ

1

тебе нужно HYPERLINK и #gid=.

каждый лист имеет уникальный идентификатор, который вы можете найти в URL. тогда вы можете сделать:

=HYPERLINK("#gid=1062970060&range=A1"; "Sheet2")

=ARRAYFORMULA(IF(B:B="",,HYPERLINK("#gid=1734824104&range=B"&ROW(B:B), B:B)))

0

где номер gid можно найти здесь:

enter image description here


вы можете автоматизировать этот процесс с помощью скрипта:

function SHEETLIST() {
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
  var out = new Array( sheets.length+1 ) ;
  out[0] = [ "NAME" , "#GID" ];
  for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] = 
  [sheets[i-1].getName() , sheets[i-1].getSheetId() ];
  return out
}
catch( err ) {
  return "#ERROR!" }}

чтобы превратить имена листов в активные гиперссылки:

=ARRAYFORMULA(HYPERLINK("#gid="&
 QUERY(INDEX(SHEETLIST();;2); "offset 1"); 
 QUERY(INDEX(SHEETLIST();;1); "offset 1")))

и если вы хотите привязать его к ручному вводу, вы можете использовать VLOOKUP Нравится

=ARRAYFORMULA(IFNA(VLOOKUP(A1:A5, HYPERLINK("#gid="&
 QUERY(INDEX(SHEETLIST();;2); "offset 1"); 
 QUERY(INDEX(SHEETLIST();;1); "offset 1")); 1; 0)))

без сценария:

enter image description here

2021-11-21 12:41:54

Спасибо, но этот метод ручной. У меня уже есть список из многих названий листов, я хочу использовать имя листа, а не указывать GID для каждого из них.
Tom

@Том обновил ответ
player0

Еще раз спасибо, но я не собираюсь решать эту проблему с помощью сценария. Я пытаюсь понять, выполнимо ли это с помощью формулы, в которой используются имена листов.
Tom

@Tom невозможно, если вы не соберете все гиды для всех листов вручную. не существует формулы для чтения гидов, поэтому вам понадобится скрипт для их автоматического извлечения
player0

@Том, посмотри свой листок
player0

Еще раз спасибо. Это хорошо работает со сценарием, но я надеюсь, что кто-нибудь сможет найти способ сделать это с помощью формулы, вот почему я не отмечаю это как решение. Я поддержал ваш ответ.
Tom

player0

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

Популярное в этой категории

Популярные вопросы в этой категории