web-dev-qa-db-fra.com

Comment référencer le résultat d'une fonction IMPORT en tant que nom défini dans une seule cellule

Remarque: La motivation de ma question est simplement la lisibilité de la formule. Ma feuille fonctionne bien.

Imaginons que j'ai une fonction IMPORTXML qui renvoie actuellement 2 colonnes et un nombre variable de lignes en fonction de l'url utilisée. L'expression est donc IMPORTXML(MyUrl, MyXPath).

Donc, la façon dont j'utilise cette expression en ce moment est INDEX(IMPORTXML(MyUrl, MyXPath),1,4) et cela est répété plusieurs fois avec juste des valeurs de ligne différentes. Cela fonctionne bien, et pour que cela fonctionne, il n'est pas nécessaire qu'il y ait une plage sur la feuille montrant les résultats.

Je préfère ne pas répéter cette expression IMPORTXML(MyUrl, MyXPath) plusieurs fois dans mes formules, mais donner un nom à cette expression et simplement utiliser ce nom à la place, afin de rendre mes formules plus lisibles. Je veux donc dire INDEX(MyData,1,4).

Disons que MyData est dans la cellule B10. Quelle formule doit entrer dans B10?

Contraintes (et oui celles-ci font partie intégrante de la question):

  1. MyData est juste dans la cellule B10, pas plusieurs cellules.
  2. IMPORTXML(MyUrl, MyXPath) n'est pas développé sur la surface de la feuille.
  3. Je peux référencer MyData tout comme MyData, pas comme SPLIT(MyData) ou quelque chose.
  4. Je ne peux pas simplement coller IMPORTXML(MyUrl, MyXPath) quelque part et mettre en évidence les données et définir un nom de plage. Parce que sa taille variera à mesure que MyUrl change.
1
toddmo

Google Sheets n'inclut pas de moyen d'attribuer des noms aux expressions (certaines personnes les appellent des formules) telles que INDEX(IMPORTXML(MyUrl, MyXPath),1,4)

Vous pouvez utiliser une plage nommée, mais cela implique d'ajouter l'expression à un endroit de votre feuille de calcul et d'afficher le résultat, mais vous pouvez masquer cette feuille.

Une autre alternative consiste à créer une fonction personnalisée, mais comme Google Apps Script n'a pas d'évaluation de formule intégrée, vous devriez trouver un moyen de le faire ou de remplacer l'expression référencée par quelque chose qui fait la même chose mais en utilisant JavaScript.

En relation

0
Rubén