Re Bonsoir,
Quelques explications sur ce que je disais avant :
DECALER
* Référence : une cellule de référence à partir de laquelle on va
effectuer un décalage. Ici la cellule de référence sera le début du
tableau dans DATA, a priori $DATA.$A$1
* Lignes : nombre de lignes qu'il faut de décalage à partir de la
cellule de référence. Ici, a priori, ça sera zéro : on veut
conserver le début du tableau
* Colonnes : nombre de colonnes qu'il faut de décalage à partir de la
cellule de référence. Ici, a priori, ça sera zéro : on veut
conserver le début du tableau
* Hauteur : nombre de lignes que va contenir la zone définie ; Ici, le
nombre de ligne du tableau.
o Soit on prévoit une cellule pour saisir cette hauteur,
o soit on peut utiliser la fonction NBVAL pour calculer
automatiquement la hauteur du tableau : ça compte nombre de
cellules occupées dans une zone donnée donc on peut faire
quelque chose du genre NBVAL($A$1:$A$100000) pour prévoir large.
* Largeur : nombre de colonnes que doit comporter la zone définie.
Ici, au moins 3, si j'ai bien compris
FIN.MOIS : renvoi le numéro du dernier jour du mois. On aura quelque
chose comme FIN.MOIS(MOIS(B$1))
Si on recolle les morceaux ça donne
RECHERCHEV(DATE(GAUCHE($A18;4);MOIS(B$1);FIN.MOIS(MOIS(B$1));DECALER($Data.$A$1;0;0;$F$2;3);3;0)
ou
RECHERCHEV(DATE(GAUCHE($A18;4);MOIS(B$1);FIN.MOIS(MOIS(B$1)));DECALER($Data.$A$1;0;0;NBVAL($Data.$A$1:$Data.$A$100000);3);3;0)
J'ai fait ça de tête, faudrait vérifier les références de cellules et
les parenthèses
Christian F
Le 02/09/2022 à 00:53, yves dutrieux a écrit :
Bonjour,
2 possibilités dépendant de pourquoi tu veux faire ça.
1) si c'est pour pouvoir toujours inclure les données dans ta plage
(exemple être sûr que ce que tu ajoutes sera d'office repris dans ta plage
(éventuellement ta plage s'agrandit si tu ajoutes).
alors c'est mieux d'utiliser une plage du style : $Data.$A$1:$Data.$C7000
(le dollar enlevé sur 7000, s'agrandira si et seulement si, tu INSERES des
lignes de données AVANT la ligne 7000. car en insérant, ta plage,
s'agrandira vu que le dollar n'est pas présent).
2) si c'est indirect que tu veux utiliser, met par exemple dans la cellule
B6 : Data.$A$1:$Data.$C7000
et utilise ensuite indirect(b6) à la place de ta plage dans la formule ,
soit : RECHERCHEV(DATE(GAUCHE($A18;4);MOIS(B$1);31);indirect(B6);3;0)
B6 peut être le résultat d'un calcul ;)
Yves
Le jeu. 1 sept. 2022 à 19:24, Mamin Luc<luc.mamin@helem.fr> a écrit :
Bonsoir
Le titre de ce message n'est pas très clair, je précise :
* Dans une feuille, appelons la "Data", j'ai une colonne de dates
quotidiennes, et une autre colonne avec des données.
Chaque mois, je copie/colle les données issues d'une source extérieure.
* Dans une seconde feuille, appelons la "Récap", je récapitule les
données de la feuille Data en les rangeant par années et par mois.
Pour ce faire, j'utilise
RECHERCHEV(DATE(GAUCHE($A18;4);MOIS(B$1);31);$Data.$A$1:$Data.$C$7000;3;0)
Et ça fonctionne très bien...
Mais, j'aimerais pouvoir "automatiser" la dernière ligne de la plage de
recherche.
Dans l'exemple ci-dessus, j'ai mis "7000", mais je voudrais intervenir
sur ce "7000" pour faire prendre en compte une donnée que je parviens à
calculer, présente dans la feuille Récap.
Donc quelque chose du genre : $Data.$C"ma donnée calculée"
Je pensais investiguer du côté des fonctions ADRESSE ou INDIRECT, mais
je n'y parviens pas.
Si une piste existait...
Rien d'urgent à cette question, qui relève un peu de l'exercice de style.
Merci.
Luc
--
Envoyez un mail àusers+unsubscribe@fr.libreoffice.org pour vous
désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Privacy Policy:https://www.documentfoundation.org/privacy
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.