web-dev-qa-db-fra.com

Faites référence à une cellule dans une autre feuille de calcul en faisant référence au nom de la feuille de calcul en cours?

Je prévois d'avoir un cahier de travail avec 24 feuilles. Les noms des feuilles seront: Jan, Jan article, Février, Février article, etc.

Fondamentalement, il s’agit de budgétisation, avec la feuille nommée par mois ayant des informations récapitulatives, et celles avec "élément" dans le nom ayant des informations plus détaillées.

Maintenant, si je souhaite que la feuille de calcul "Jan" ait une cellule faisant référence à la cellule J3 dans la feuille de calcul "Elément Jan", je peux procéder comme suit:

='Jan item'!J3

Cependant, au lieu d’avoir à ressaisir les formules comme celle-ci pour chaque fiche récapitulative (janvier, février, etc.), j’aimerais avoir quelque chose comme:

=(reference-to-this-sheet's-name + " item")!J3

De cette façon, je peux copier la formule de janvier à février et la feuille Xxx item correspondante sera automatiquement affichée sans que je doive taper explicitement Feb item.

La raison pour laquelle je pose cette question est que, pour chaque fiche récapitulative, il y aura des dizaines de références de ce type à une cellule de la fiche détaillée correspondante.

Est-ce que ce que je demande est faisable?

24
King_V

À moins que vous ne souhaitiez utiliser la route VBA pour définir le nom de l'onglet, la formule Excel est plutôt laide, basée sur les fonctions Mid, etc., mais ces deux méthodes peuvent être trouvées ici si vous voulez utiliser cette méthode .

La façon dont je le ferais est plutôt:

1) Sur votre feuille, créez une cellule nommée, par exemple, Reference_Sheet et insérez dans cette cellule la valeur "Élément Jan", par exemple.

2) Maintenant, utilisez la fonction Indirect comme:

=INDIRECT(Reference_Sheet&"!J3") 

3) Maintenant, pour la feuille de chaque mois, il vous suffit de changer cette cellule Reference_Sheet.

J'espère que cela vous donne ce que vous cherchez!

12
John Bustos

Voici comment j'ai créé une page mensuelle de la même manière que Fernando:

  1. J'ai écrit manuellement sur chaque numéro de page du mois et nommé cet endroit comme ThisMonth. Notez que vous ne pouvez effectuer cette opération que avant que vous ne copiez la feuille. Après la copie, Excel ne vous autorise pas à utiliser le même nom, mais avec une copie de feuille, il le fait toujours. Cette solution fonctionne aussi sans nommer.
  2. J'ai ajouté le nombre de semaines du mois à l'emplacement C12. Nommer est bien aussi.
  3. J'ai fait cinq semaines sur chaque page et la cinquième semaine j'ai fait fonctionner 

      =IF(C12=5,DATE(YEAR(B48),MONTH(B48),DAY(B48)+7),"")
    

    cela vide la cinquième semaine si ce mois n'a que quatre semaines. C12 détient le nombre de semaines.

  4. ...
  5. J'ai créé Excel chaque année et j'avais donc 12 feuilles: une par mois. Dans cet exemple, le nom de la feuille est "Mois". Notez que cette solution fonctionne également avec la norme de fichier ODS, sauf que vous devez modifier tous les espaces en tant que "_".
  6. J'ai renommé la première feuille "Mois" en "Mois (1)", de sorte qu'elle suit le même principe de nommage. Vous pouvez également le nommer "Mois1" si vous le souhaitez, mais "Janvier" nécessitera un peu plus de travail.
  7. Insérer la fonction suivante dans le champ du premier jour en commençant par la feuille n ° 2:

     =INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!B15"))+INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!C12"))*7
    

    Ainsi, dans un autre mot, si vous remplissez quatre ou cinq semaines sur la feuille précédente, la date est calculée correctement et continue à partir de la date correcte.

0
Timo Riikonen