Utiliser les CONCATÉNER pour créer un lien hypertexte dans une cellule d'une autre feuille [dupliquer]

0

La question

J'ai un classeur avec plusieurs feuilles. Je veux créer une sorte de glossaire avec des liens directs vers les différentes feuilles. Au col il y A une liste des différents noms de feuille de calcul (par exemple, Jan, Fév, Mar). En col B je veux des liens directs vers la cellule A1 dans la feuille (par exemple, Jan!A1, pour Février!A1 etc.

Je peux apporter de la valeur de la cellule de destination (A1) à l'aide INDIRECTE+CONCATÉNER. par exemple, =INDIRECT(A2&"!A1") apportera de la valeur de Jan!A1 (où la cellule A2 détient le nom de la feuille: Jan).

Ce que je ne peux pas faire c'est un lien qui lorsqu'il est cliqué va me prendre pour Jan!A1

Pour faciliter les choses, j'ai ajouté un exemple: https://docs.google.com/spreadsheets/d/1z_UuA62ghUejFwGWKpT_smMhKM4QAVMgZrKotim8WHE/edit#gid=0 Dans la feuille "Principal" Col A, ce sont les noms de feuille de calcul. Col B est l'endroit où je voudrais montrer les liens hypertexte. Col C montre les valeurs (c'est sans importance, seulement depuis que j'ai référencé dans ma question)

1

La meilleure réponse

1

vous avez besoin HYPERLINK et #gid=.

chaque feuille est unique gid vous pouvez trouver dans l'URL. ensuite, vous pouvez faire:

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

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

0

où gid nombre peut être trouvé ici:

enter image description here


vous pouvez automatiser ce processus avec un script:

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

à tour les noms de feuilles dans les liens hypertexte actifs:

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

et si vous voulez le lier à la saisie manuelle vous pouvez utiliser VLOOKUP comme

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

sans script:

enter image description here

2021-11-21 12:41:54

Merci, mais cette méthode est manuelle. J'ai déjà une liste de plusieurs noms de feuilles, je veux utiliser le nom de la feuille plutôt que de mettre le GID de chacun.
Tom

@Tom réponse mis à jour
player0

Merci encore, mais je ne suis pas à la recherche à résoudre ce problème avec un script. J'essaie de comprendre si c'est faisable avec une formule qui utilise les noms de feuille de calcul.
Tom

@Tom n'est possible que si vous rassemblez tous les gid pour toutes les feuilles manuellement. il n'y a pas de formule pour la lecture gid c'est pourquoi vous aurez besoin d'un script pour extrract automatiquement
player0

@Tom voir votre feuille
player0

Merci encore. Il fonctionne bien avec le script, mais j'espère que quelqu'un peut trouver un moyen de le faire avec la formule, c'est pourquoi je ne suis pas le marquer comme résolu. Je upvoted votre réponse.
Tom

Dans d'autres langues

Cette page est dans d'autres langues

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