Obtenir une plage de cellules pour un argument de fonction à partir du texte d'une autre cellule dans libre-office-calc

Considérons une fonction libreoffice-calc appelée MYFUNC qui prend une plage de cellules par exemple A2:B40 comme argument, donc je peux appeler MYFUNC(A2:B40) .

Maintenant, je veux pouvoir écrire A2:B40 comme texte dans une autre cellule, dis D4 et donne la plage de cellules définie dans D4 comme argument à MYFUNC . C'est-à-dire que je peux écrire quelque chose comme MYFUNC(GETCELLRANGEFROM(D4) qui devrait être équivalent à MYFUNC(A2:B40) .

Remplacer GETCELLRANGEFROM(D4) par INDIRECT(D4) devrait faire ce que vous voulez atteindre (étant donné que D4 contient la chaîne A2:B40 ). La fonction INDIRECT "traduit" une chaîne en une référence.

Voici un petit exemple de la façon dont cela fonctionne:

Entrez la description de l'image ici

  • A1 à A9 détient des chiffres,
  • B1 a une valeur de string , représentant une référence à la colonne A;
  • C1 a la formule =SUM(INDIRECT(B1))

Ainsi, C1 calcule une somme, en fonction de la chaîne de référence dans B1. Modification de B1 à A1:A7 changera également C1 (résultant en 28). De cette façon, INDIRECT "traduit" une chaîne à une référence qui peut être utilisée dans une autre formule (autour).