Użyj ZJEDNOCZENIE, aby utworzyć hiperłącze do komórki w innym arkuszu [duplikat]

0

Pytanie

Mam workbook z wielu arkuszy. Chcę stworzyć swego rodzaju słowniczek z bezpośrednimi linkami do różnych arkuszy. W kolumnie A znajduje się lista różnych nazw arkuszy (np. styczeń, luty, marzec). W kolumnie B są mi potrzebne bezpośrednie linki do komórki A1 w odpowiednim arkuszu (na przykład Jan!A1, aż do lutego!A1, itp.

Mogę wypłacić wartość komórki docelowe (A1), za pomocą POŚREDNIE+ŁĄCZENIE. na przykład, =POŚREDNIE(A2&"!A1") przyniesie cena Jana!A1 (gdzie w komórce A2 zawiera nazwę arkusza: Jan).

Czego nie mogę zrobić, jak to zrobić link, który po kliknięciu doprowadzi mnie do Jana!A1

Aby uprościć zadanie, dodałem przykład: https://docs.google.com/spreadsheets/d/1z_UuA62ghUejFwGWKpT_smMhKM4QAVMgZrKotim8WHE/edit#gid=0 W kolumnie "Główny" arkusza A podane zostały nazwy arkuszy. Col B-to jest to miejsce, w którym chciałbym pokazać hiperłącza. Col C pokazuje wartości (to nie ma znaczenia, po prostu dlatego, że nie powołał się na to w swoim pytaniu)

1

Najlepsza odpowiedź

1

potrzebujesz HYPERLINK i #gid=.

każdy arkusz posiada unikalny identyfikator, który można znaleźć w adresie URL. wtedy można zrobić:

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

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

0

gdzie jest numer gid można znaleźć tutaj:

enter image description here


możesz zautomatyzować ten proces za pomocą skryptu:

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!" }}

aby włączyć nazwy arkuszy w aktywne hiperłącza:

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

a jeśli chcesz, aby przywiązać go do ręcznego wprowadzania, można użyć VLOOKUP Podoba

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

bez skryptu:

enter image description here

2021-11-21 12:41:54

Dzięki, ale ta metoda ręcznego. Już mam listę z wielu nazw arkuszy, chcę użyć nazwa arkusza, a nie wskazywać GID dla każdego z nich.
Tom

@Tom aktualizacja odpowiedź
player0

Jeszcze raz dziękuję, ale ja nie zamierzam rozwiązać ten problem za pomocą skryptu. Staram się zrozumieć, czy jest to wykonalne za pomocą formuły, w której są używane nazwy arkuszy.
Tom

@Tom niemożliwe, jeśli nie zebrać wszystkie przewodniki dla wszystkich arkuszy ręcznie. nie istnieje formuła do czytania przewodników, dlatego potrzebny jest skrypt do ich automatycznego wysuwania
player0

@Tom, spójrz na swoją kartkę
player0

Jeszcze raz dziękuję. Działa to dobrze ze scenariuszem, ale mam nadzieję, że ktoś będzie w stanie znaleźć sposób, aby to zrobić za pomocą formuły, dlatego nie naciskam na to rozwiązanie. Wspierałem odpowiedź.
Tom

W innych językach

Ta strona jest w innych językach

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