web-dev-qa-db-fra.com

Comment utiliser INDIRECT dans une fonction IMPORTRANGE?

J'ai besoin d'aide pour extraire dynamiquement une valeur d'une autre feuille de calcul Google, comme ceci: FILE1 a 0 ou 1 valeurs dans la colonne G. Je souhaite maintenant extraire la valeur de la colonne G de FILE1 avec un numéro de ligne spécifié dans B7 dans FILE2.

J'ai appris que INDIRECT pourrait résoudre le bit dynamique extrait de la colonne G avec B7 comme numéro de ligne, comme ceci:

=INDIRECT("G"&B7)

mais je ne peux tout simplement pas le faire fonctionner avec IMPORTRANGE:

=IMPORTRANGE("KEY";indirect("Sheet1!G")&B7)
=IMPORTRANGE("KEY", "Sheet1!G"; indirect(&B7))

Les exemples ci-dessus me donnent simplement mauvaise interprétation de la formule erreur. Est-ce possible avec Google Sheets et si oui, comment?

5
user1151640

Le deuxième argument de importrange doit être chaîne, pas une référence de cellule. La commande indirect prend une chaîne et renvoie une référence de cellule, ce qui n'est pas ce dont vous avez besoin. Juste utiliser

=IMPORTRANGE("KEY"; "Sheet1!G"&B7) 

Pour clarifier la différence:

  • Chaînes: "B4", "Sheet1!A3", "Sheet1!A"&E2
  • Références de cellule: B4, indirect("Sheet1!A3"), indirect("Sheet1!A"&E2)
4
user79865

Réponse courte

Au lieu d'imbriquer une fonction comme INDIRECT dans IMPORTRANGE, placez IMPORTRANGE dans une autre fonction telle que FILTER ou INDEX , entre autres.

Pour le cas du PO, la formule pourrait être la suivante

=INDEX(IMPORTRANGE(spreadsheet_key,"Sheet1!G:G"),B7)

Explication

IMPORTRANGE nécessite deux arguments:

  • clé_de_la-feuille-de-calcul
  • range_string

range_string devrait être une chaîne qui est une référence bien construite en notation A1. Il peut s'agir d'une référence de cellule ou de plage, mais la valeur de la cellule/plage référée doit être une chaîne.

Les exemples fournis par l'OP, outre qu'INDIRECT ne fonctionne pas comme prévu, n'ont pas permis de construire la chaîne. Les détails de la construction des chaînes doivent être expliqués dans une question spécifique, je pense.

FILTER peut renvoyer une ou plusieurs valeurs et nécessite au moins deux arguments:

  • référence ou tableau
  • état

INDEX renvoie une seule valeur et nécessite au moins deux arguments:

  • référence ou tableau
  • rangée, facultatif, par défaut 1.
  • colonne, facultatif, 0 par défaut)
2
Rubén

Pour les utilisateurs qui souhaitent faire la même chose, mais échanger le nom de la feuille (au lieu du nom de la cellule), ils peuvent utiliser la formule suivante.

 = IMPORTRANGE ("KEY", A4 & "! E2: E") 

... où A4 contient le nom de la feuille spécifique que vous souhaitez référencer dans votre autre feuille de calcul et E2: E est la plage que vous souhaitez importer à partir de cette autre feuille de calcul.

1
paulhastings0