Re: [fr-users] Calc : dans un RECHERCHEV, indiquer une référence de cellule par formule

2022-09-14 Par sujet Mamin Luc

Bonjour

J'ai de nouveau accès au fichier en question et donc :

 * Pour les jours de fin de mois, j'avais adapté mes formules en
   alternant manuellement 30 ou 31, et même 28 ou 29 selon si l'année
   est bissextile ou pas.
   C'était fonctionnel, mais pas très élégant.
   FIN.MOIS renvoie le numéro de série du dernier jour du mois dans
   l'année : 244 pour le 31 août 2022. Pour l'utiliser pour refabriquer
   une date, cela fonctionne si je mets JOUR(FIN.MOIS(...)).
   Mais, j'ai finalement opté pour JOURSDANSMOIS(DATE(Mon année;Mon
   mois;1)).

 * Pour ma question initiale :
   La fonction DECALER (avec cellule calculée) suggérée par Christian
   fonctionne tout à fait comme souhaité !

Merci beaucoup de vous être penché·es sur cette question.

@+
Luc

Le 02/09/2022 à 20:14, C Fourcroy a écrit :

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$10) 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$10);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  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+unsubscr...@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+unsubscr...@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


Re: [fr-users] Calc : dans un RECHERCHEV, indiquer une référence de cellule par formule

2022-09-02 Par sujet C Fourcroy

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$10) 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$10);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  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+unsubscr...@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+unsubscr...@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


Re: [fr-users] Calc : dans un RECHERCHEV, indiquer une référence de cellule par formule

2022-09-02 Par sujet C Fourcroy

Bonjour ,

Pour prendre en compte une saisie qui représente la dernière ligne, la 
fonction DECALER devrait faire l'affaire.
Pour ce qui est du jour à prendre et éviter le problème du 31, il y a la 
fonction FIN.MOIS


Je n'ai pas le temps de faire un exemple maintenant mais je ferai ça 
dans la soirée si nécessaire. (ça serait plus simple si on avait un 
exemple du classeur)


Bon courage.

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  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+unsubscr...@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+unsubscr...@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


Re: [fr-users] Calc : dans un RECHERCHEV, indiquer une référence de cellule par formule

2022-09-01 Par sujet yves dutrieux
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  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+unsubscr...@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
>


-- 
web site : http://www.molenbaix.com

-- 
Envoyez un mail à users+unsubscr...@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


[fr-users] Calc : dans un RECHERCHEV, indiquer une référence de cellule par formule

2022-09-01 Par sujet Mamin Luc

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+unsubscr...@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