Référence de colonne par numéro

0

Je cherche à calculer un ensemble de données que je peux réutiliser sans avoir à mettre à jour les références de colonne chaque mois. Cette capture d'écran montre les exemples de tables avec lesquels je travaille. entrez la description de l'image ici

Le tableau 1 présente les numéros de données source de divers projets, ventilés par éléments de ligne. Les chiffres sont mis à jour tous les mois et, à mesure que le mois se termine, l'en-tête passe de "Prévisions" à "Résultats réels".

Le tableau 2 est l'endroit où je résume les données par projet et par élément de campagne pour ce mois particulier. Je veux qu'il affiche toujours les chiffres réels du dernier mois et les prévisions du mois prochain. Chaque ligne doit montrer un groupe arbitraire de projets, qui seront listés individuellement (cellules I9: K10). Je veux des en-têtes par catégories (il en existe plusieurs, qui devront également être regroupés). J'ajoute les données pour chaque projet individuellement, car elles peuvent apparaître n'importe où dans le tableau. Donc maintenant, la formule dans I6 est =SUMIFS(D:D,$A:$A,I$9,$B:$B,$I5)+SUMIFS(D:D,$A:$A,J$9,$B:$B,$I5)+SUMIFS(D:D,$A:$A,K$9,$B:$B,$I5)
(c'est-à-dire en ajoutant les valeurs pour ce mois tout en faisant correspondre l'ID et la catégorie du projet. Répétez l'opération pour chaque ID de projet).

La méthode ci-dessus n'est pas la plus élégante, mais elle fonctionne pour mes besoins. Le seul problème est que je dois mettre à jour la colonne source D:Dchaque mois. Je veux pouvoir automatiser cette partie.

Je suis capable de
- trouver la dernière occurrence de 'Réels', et renseigner le mois 2017 05dans I4 avec =LOOKUP(2,1/($1:$1="Actuals"),$2:$2)
- trouver la première occurrence de 'Prévision', et renseigner le mois 2017 06dans K4 en utilisant =INDEX($2:$2,1,MATCH("Forecast",$1:$1,0))
- renseigner les numéros de colonne respectifs ( 4& 5) dans J4 & L4 utilisant=MATCH(I4,$2:$2,0)

Ce qu'il me faut maintenant, c'est un moyen de rechercher cette valeur '4' dans J4 et de l'utiliser à la place de D:DSUMIFS, de sorte que le mois prochain, lorsque les données réelles seront mises à jour dans Tableau 1, le Tableau 2 sélectionnera automatiquement les données du mois suivant.

Notez que dans la feuille de calcul finale, Table1 et Table2 seront dans des feuilles de calcul séparées.

J'ai trouvé des solutions en utilisant VBA, une chose avec laquelle je ne suis pas à l'aise. Y a-t-il un moyen de le résoudre en utilisant des formules Excel normales?

excel_user
la source
Connaissez-vous les tableaux croisés dynamiques? Ils sont plus ou moins faits pour ce genre de rapports.
Glorfindel
Merci pour la suggestion. Ma table source s'étend sur plusieurs années, avec une colonne pour chaque mois. Je veux afficher uniquement les 2 colonnes pertinentes pour le mois dernier et le mois suivant. Il existe également des complications supplémentaires liées aux identifiants de projet. Je vais essayer de poster un exemple mis à jour avec plus de détails
excel_user
Vous pouvez utiliser la OFFSETfonction (avec un 0pour l' rowsargument). par exemple. Remplacer D:Dpar quelque chose comme OFFSET($A:$A,0,$J$4-1). Ou vous pouvez utiliser la INDEXfonction (non volatile mais vous devez limiter le tableau à la plus grande plage imaginable, au lieu de la feuille totale). par exemple: INDEX($A$1:$ZZ$1000,0,$J$4)renverra le contenu de D1:D1000if J4=4
Ron Rosenfeld le
Merci @RonRosenfeld! J'ai utilisé la méthode Offset, et cela a bien fonctionné pour moi!
excel_user