Plage active de cellules et transposition

Bonjour,

Je suis confronté à un problème de transposition d’une suite de données (dates) et qui malgré mes quelques connaissances me bloque.

Ce que j’aimerais :

1. Je choisis une date grâce à un menu déroulant

2. Je voudrais ensuite que la plage des douze dernières dates soit sélectionnée

3. Et ensuite que cette plage soit transposée

L'étape 1 et 3 ok, il n'y a pas de problème. Je n’arrive pas en fait à faire en sorte qu’une plage de donnée soit un résultat, ça me bloque. J’ai regardé parmi les autres sujets. La fonction décaler est je pense une bonne piste mais je n’en suis pas sûr.

Vous trouverez ci-joint un document qui montre ce que je voudrai faire.

15essai.xlsx (14.00 Ko)

Je vous remercie pour votre temps.

Bonjour,

Tu peux te passer de transpose()

=DECALER($A$1;EQUIV($D$1;$A:$A;0)-1+COLONNE()-4;)

tu remarqueras que j'ai séparé le -5 en -1 et -4

Le -1 est pour corriger l'offset fourni par equiv() qui nous donne le n° de la ligne où est la date recherchée (si on veut la ligne 2 il faut décaler A1 de 1 seulement).

Le -4 est pour pour tenir de la colonne où est inscrite la formule. Ta 1ère formule est en colonne 4 et je veux +0 pour cette colonne (+1 pour la suivante etc)

eric

PS :

2. Je voudrais ensuite que la plage des douze dernières dates soit sélectionnée

Pour tout le monde, sauf pour toi apparemment, les 12 dernières dates sont :

juil-36 à juin-37

il faut être clair dans tes demandes

Bonjour eriiic,

Merci pour ta réponse.

eriiic a écrit :

Pour tout le monde, sauf pour toi apparemment, les 12 dernières dates sont :

juil-36 à juin-37

il faut être clair dans tes demandes

.

Je voulais obtenir les 12 derniers mois à partir de la date indiquée.

C'est-à-dire que pour la date du 30/06/2017 je voulais obtenir la liste complète des 12 dates du 31/07/2016 au 30/06/2017 (le dernier jour de chaque mois).

J'ai réussi à adapter la formule :

=DECALER($A$1;EQUIV($D$1;$A:$A;0)-12+COLONNE()-4;)

Et pour ceux que ça intéresse, afin d'avoir ces dates mais en partant de Janvier j'ai indiqué :

=DECALER($A$1;EQUIV($D$1;$A:$A;0)-MOIS(D1)+COLONNE()-4;)

Encore merci pour cette réponse qui m'a permis d'avancer !

antoine

Bonjour,

Je voulais obtenir les 12 derniers mois à partir de la date indiquée.

C'est-à-dire que pour la date du 30/06/2017 je voulais obtenir la liste complète des 12 dates du 31/07/2016 au 30/06/2017

Alors c'est 12 mois jusqu'à la date indiquée. Les mots ont un sens...

la liste complète des 12 dates du 31/07/2016 au 30/06/2017 (le dernier jour de chaque mois).

Comme quoi il est préférable d'expliquer son vrai besoin. Pas besoin de liste, ni de decaler(), ni de equiv(). En D7 :

=DATE(ANNEE($D$1);MOIS($D$1)-14+COLONNE();0)

eric

Merci pour cette réponse eriiic,

C'est en effet beaucoup plus simple comme cela, et je tâcherai d'être plus clair à l'avenir.

Petite question concernant la formule : l'incrémentation de +1 mois est-elle gérable autrement que par la position de la colonne ?

antoine

Tu peux y mettre n'importe quelle expression, du moment qu'elle correspond à ce que tu as besoin.

Ici tu as besoin de colonne() sinon c'est que ta question est autre que celle posée...

Ma question n'était peut être pas très claire. J'ai indiqué ce qu'est j'estimais être le meilleur moyen d'y arriver, c'est-à-dire d'utiliser la fonction décaler. Néanmoins, d'après vos réponses très claires, il existe un moyen beaucoup plus simple que ce à quoi je m'attendais.

Ici il ne s'agit pas de changer ma question, vous m'avez déjà proposé une réponse à ce problème, mais d'aller plus loin.

Imaginons maintenant que je veuille changer la place de cette liste de dates. La formule devra être ajuster pour ne pas créer de décalage. Ma question est donc de savoir si l'incrémentation de +1 mois pouvait être intégrée directement dans la formule sans passer par la fonction colonne qui agit lorsque l'on change de colonne comme une suite +1.

Merci pour votre temps.

antoine

Oui, il faut ajuster en fonction de la place de la formule.

C'est la même explication que dans mon 1er post, relis-le.

Au besoin regarde l'aide sur colonne() si tu ne connais pas.

Merci pour ces réponses. Problème résolu.

Rechercher des sujets similaires à "plage active transposition"