Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction indirect

11 réponses
Avatar
guy boily
Bonjour

J'ai récupéré cette formule merveilleuse de JB Boisgontier:

=SOMME.SI(INDIRECT("fichier1_"&$a$1&"!a:a");A2;INDIRECT("fichier1_"&$a$1&"!b:b")) et elle fonctionne à merveille.

Mais je voudrais que la somme de la colonne B de la feullle "fichier1_"
s'exécute à la fois sous deux conditions .

Dans la feuille où j'applique cette formule j'ai une liste déroulante en b1.
Je cherche à faire la somme de la colonne B de la feuille "fichier1_" si la
colonne A de cette feuille possède des enregistrements répondant à ceux
inscrits dans ma colonne A et à ceux du critère de ma liste déroulante en B1.
Ces deux critères doivent être respectés avant d'effectuer la somme. Les
enregistrements sur lesquels s'applique le critère de ma liste déroulante se
retrouvent dans la colonne B de ma feuille "feuil_"

Finalement je cherche à faire une
somme.si(et(INDIRECT("fichier1_"&$a$1&"!a:a");$A2;("fichier1_"&$a$1&"!b:b");$b$1);INDIRECT("fichier1_"&$a$1&"!b:b"))

(cette formule n'est présente que pour illustrer mes propos...soyez
indulgent...)


Quelqu'un peut-il m'aider à remanier cette formule?

Merci !
p.s. c'est la première fois que j'utilise la fonction indirect et je crois
que je ne suis pas au bout de mon calvaire...








--
boily_SLSJ

10 réponses

1 2
Avatar
isabelle
bonjour Guy,

=sommeprod((INDIRECT("fichier1_"&$a$1&"!a:a")=$A2)*(INDIRECT("fichier1_"&$a$1&"!b:b")=$b$1))

isabelle

Bonjour

J'ai récupéré cette formule merveilleuse de JB Boisgontier:

=SOMME.SI(INDIRECT("fichier1_"&$a$1&"!a:a");A2;INDIRECT("fichier1_"&$a$1&"!b:b")) et elle fonctionne à merveille.

Mais je voudrais que la somme de la colonne B de la feullle "fichier1_"
s'exécute à la fois sous deux conditions .

Dans la feuille où j'applique cette formule j'ai une liste déroulante en b1.
Je cherche à faire la somme de la colonne B de la feuille "fichier1_" si la
colonne A de cette feuille possède des enregistrements répondant à ceux
inscrits dans ma colonne A et à ceux du critère de ma liste déroulante en B1.
Ces deux critères doivent être respectés avant d'effectuer la somme. Les
enregistrements sur lesquels s'applique le critère de ma liste déroulante se
retrouvent dans la colonne B de ma feuille "feuil_"

Finalement je cherche à faire une
somme.si(et(INDIRECT("fichier1_"&$a$1&"!a:a");$A2;("fichier1_"&$a$1&"!b:b");$b$1);INDIRECT("fichier1_"&$a$1&"!b:b"))

(cette formule n'est présente que pour illustrer mes propos...soyez
indulgent...)


Quelqu'un peut-il m'aider à remanier cette formule?

Merci !
p.s. c'est la première fois que j'utilise la fonction indirect et je crois
que je ne suis pas au bout de mon calvaire...










Avatar
guy boily
bonjour Isabelle
merci boucoup de ta réponse mais ca ne marche pas...la fonction me renvoie
#nombre!.
je penses avoir omis quelques explications tout à l'heure:
Voici : Les chiffres à additionner se trouvent dans la colonne D de la
feuille"fichier1_"
alors si je lis le résultat que je voudrais obtenir, ça donnerais ceci: si
tu retrouves dans la colonne B de la feuille'"fichier1_" le texte précis qui
est dans ma cellule $A2 et que sur la même ligne de la feuille "fichier1_" tu
retrouves dans la colonne A le texte précis qui se trouve dans ma cellule
$b$1 alors tu additionnes les chiffres qui se trouvent sur cettte ligne de la
colonne D de ma feuille "fichier1_" .


j'ai tenté d'ajouter la dernière partie de la fonction de JB à la tienne
avec modifications des noms des colonnes pour faire plus à ma réalité:
=sommeprod(((INDIRECT("fichier1_"&$a$1&"!b:b")=$A2)*(INDIRECT("fichier1_"&$a$1&"!a:a")=$b$1));indirect("fichier_1"&$a$1&"!d:d"))
et ça ne marche pas ...évidemment

Voilà j'espère qu'ainsi être plus précis dans mon questionnement...

merci encore Isabelle..pour ton aide




--
boily_SLSJ



bonjour Guy,

=sommeprod((INDIRECT("fichier1_"&$a$1&"!a:a")=$A2)*(INDIRECT("fichier1_"&$a$1&"!b:b")=$b$1))

isabelle

Bonjour

J'ai récupéré cette formule merveilleuse de JB Boisgontier:

=SOMME.SI(INDIRECT("fichier1_"&$a$1&"!a:a");A2;INDIRECT("fichier1_"&$a$1&"!b:b")) et elle fonctionne à merveille.

Mais je voudrais que la somme de la colonne B de la feullle "fichier1_"
s'exécute à la fois sous deux conditions .

Dans la feuille où j'applique cette formule j'ai une liste déroulante en b1.
Je cherche à faire la somme de la colonne B de la feuille "fichier1_" si la
colonne A de cette feuille possède des enregistrements répondant à ceux
inscrits dans ma colonne A et à ceux du critère de ma liste déroulante en B1.
Ces deux critères doivent être respectés avant d'effectuer la somme. Les
enregistrements sur lesquels s'applique le critère de ma liste déroulante se
retrouvent dans la colonne B de ma feuille "feuil_"

Finalement je cherche à faire une
somme.si(et(INDIRECT("fichier1_"&$a$1&"!a:a");$A2;("fichier1_"&$a$1&"!b:b");$b$1);INDIRECT("fichier1_"&$a$1&"!b:b"))

(cette formule n'est présente que pour illustrer mes propos...soyez
indulgent...)


Quelqu'un peut-il m'aider à remanier cette formule?

Merci !
p.s. c'est la première fois que j'utilise la fonction indirect et je crois
que je ne suis pas au bout de mon calvaire...













Avatar
isabelle
bonjour Guy,

je crois bien que Indirect et Sommeprod ne fond pas bon ménage, une autre solution est de nommer les plages,
=SOMMEPROD(1*(a¢)*(b±)*(d))
attention il ne faut pas utiliser les colonne entière pour la fonction sommeprod
a = A1:Ax
b = B1:Bx
d = D1:Dx

isabelle


bonjour Isabelle
merci boucoup de ta réponse mais ca ne marche pas...la fonction me renvoie
#nombre!.
je penses avoir omis quelques explications tout à l'heure:
Voici : Les chiffres à additionner se trouvent dans la colonne D de la
feuille"fichier1_"
alors si je lis le résultat que je voudrais obtenir, ça donnerais ceci: si
tu retrouves dans la colonne B de la feuille'"fichier1_" le texte précis qui
est dans ma cellule $A2 et que sur la même ligne de la feuille "fichier1_" tu
retrouves dans la colonne A le texte précis qui se trouve dans ma cellule
$b$1 alors tu additionnes les chiffres qui se trouvent sur cettte ligne de la
colonne D de ma feuille "fichier1_" .


j'ai tenté d'ajouter la dernière partie de la fonction de JB à la tienne
avec modifications des noms des colonnes pour faire plus à ma réalité:
=sommeprod(((INDIRECT("fichier1_"&$a$1&"!b:b")=$A2)*(INDIRECT("fichier1_"&$a$1&"!a:a")=$b$1));indirect("fichier_1"&$a$1&"!d:d"))
et ça ne marche pas ...évidemment

Voilà j'espère qu'ainsi être plus précis dans mon questionnement...

merci encore Isabelle..pour ton aide






Avatar
guy boily
bonjour Isabelle

EUREKA ça marche. Tu es un génie...une seule chose : il faut que les plages
nommées A,B et D soient de la même dimension à défaut de quoi il nous
retourne #N/A.
Je suis au petit oiseau...je fête ça...

Une autre petite question sans rapport avec la précédente : Que sifgnifie
cette formule
=si($g$11=1;indirect(adresse(ligne()+((ent((colonne()-2/$gi$14))*$g$10);$gi$16+mod(colonne()+5;$gi$14;;;$gi$8));;indirect(adresse(ligne()+($gi$10*($gi$11-1));$gi$16+mod(colonne()+5;$gi$14;;;$gi$8)))

que veut dire :ligne() ; (ent((colonne() ; indirect(adresse( ;
mod(colonne()

Encore merci isabelle le génie
--
boily_SLSJ



bonjour Guy,

je crois bien que Indirect et Sommeprod ne fond pas bon ménage, une autre solution est de nommer les plages,
=SOMMEPROD(1*(a¢)*(b±)*(d))
attention il ne faut pas utiliser les colonne entière pour la fonction sommeprod
a = A1:Ax
b = B1:Bx
d = D1:Dx

isabelle


bonjour Isabelle
merci boucoup de ta réponse mais ca ne marche pas...la fonction me renvoie
#nombre!.
je penses avoir omis quelques explications tout à l'heure:
Voici : Les chiffres à additionner se trouvent dans la colonne D de la
feuille"fichier1_"
alors si je lis le résultat que je voudrais obtenir, ça donnerais ceci: si
tu retrouves dans la colonne B de la feuille'"fichier1_" le texte précis qui
est dans ma cellule $A2 et que sur la même ligne de la feuille "fichier1_" tu
retrouves dans la colonne A le texte précis qui se trouve dans ma cellule
$b$1 alors tu additionnes les chiffres qui se trouvent sur cettte ligne de la
colonne D de ma feuille "fichier1_" .


j'ai tenté d'ajouter la dernière partie de la fonction de JB à la tienne
avec modifications des noms des colonnes pour faire plus à ma réalité:
=sommeprod(((INDIRECT("fichier1_"&$a$1&"!b:b")=$A2)*(INDIRECT("fichier1_"&$a$1&"!a:a")=$b$1));indirect("fichier_1"&$a$1&"!d:d"))
et ça ne marche pas ...évidemment

Voilà j'espère qu'ainsi être plus précis dans mon questionnement...

merci encore Isabelle..pour ton aide









Avatar
isabelle
Une autre petite question sans rapport avec la précédente : Que sifgnifie
cette formule:
=si($g$11=1;indirect(adresse(ligne()+((ent((colonne()-2/$gi$14))*$g$10);$gi$16+mod(colonne()+5;$gi$14;;;$gi$8));;indirect(adresse(ligne()+($gi$10*($gi$11-1));$gi$16+mod(colonne()+5;$gi$14;;;$gi$8)))
que veut dire :ligne() ; (ent((colonne() ; indirect(adresse( ;
mod(colonne()



=LIGNE()
et
=COLONNE()
retourne le numéro de la ligne (ou colonne) ou est inscrit la formule

­RESSE(ligne;colonne)
donne la référence d'une adresse
par exemple ­RESSE(1;1)
retour la valeur $A$1

et =INDIRECT(ADRESSE(1;1))
retour la valeur inscrit dans la cellule A1

si j'écris la formule suivante en cellule D3
=INDIRECT(ADRESSE(LIGNE()+1;COLONNE()))
le résultat sera la valeur de la celulle D4

même si tu coupe la cellule D4 pour la coller ailleurs, la cellule D3 fera toujours référence à la cellule D4
contrairement à si tu avais écris en cellule D3 la formulle =$D$4 qui elle aurait été modifier lors du collage.

isabelle

Avatar
guy boily
bonjour isabelle,

merci boucoup ...c'est clair

--
boily_SLSJ





Une autre petite question sans rapport avec la précédente : Que sifgnifie
cette formule:
=si($g$11=1;indirect(adresse(ligne()+((ent((colonne()-2/$gi$14))*$g$10);$gi$16+mod(colonne()+5;$gi$14;;;$gi$8));;indirect(adresse(ligne()+($gi$10*($gi$11-1));$gi$16+mod(colonne()+5;$gi$14;;;$gi$8)))
que veut dire :ligne() ; (ent((colonne() ; indirect(adresse( ;
mod(colonne()



=LIGNE()
et
=COLONNE()
retourne le numéro de la ligne (ou colonne) ou est inscrit la formule

­RESSE(ligne;colonne)
donne la référence d'une adresse
par exemple ­RESSE(1;1)
retour la valeur $A$1

et =INDIRECT(ADRESSE(1;1))
retour la valeur inscrit dans la cellule A1

si j'écris la formule suivante en cellule D3
=INDIRECT(ADRESSE(LIGNE()+1;COLONNE()))
le résultat sera la valeur de la celulle D4

même si tu coupe la cellule D4 pour la coller ailleurs, la cellule D3 fera toujours référence à la cellule D4
contrairement à si tu avais écris en cellule D3 la formulle =$D$4 qui elle aurait été modifier lors du collage.

isabelle




Avatar
guy boily
re-bonjour Isabelle
J'avais encore une petite question en rapport avec la fonction indirect du
début
Je voudrais concatener le champ a et b avant d'appliquer la fonction :

=somme.si(indirect("fichier1_"&$a$1&"!c:c");a3;indirect("fichier1_"&$a$1&"!w:w"))
je voudrais concatener le champ a et b dans le champ c dans mes deux
feuilles soit celle ou je somme le champ w et celle dans laquelle apparait la
formule.

Est-ce possible

Merci à l'avance ....






--
boily_SLSJ



bonjour isabelle,

merci boucoup ...c'est clair

--
boily_SLSJ





Une autre petite question sans rapport avec la précédente : Que sifgnifie
cette formule:
=si($g$11=1;indirect(adresse(ligne()+((ent((colonne()-2/$gi$14))*$g$10);$gi$16+mod(colonne()+5;$gi$14;;;$gi$8));;indirect(adresse(ligne()+($gi$10*($gi$11-1));$gi$16+mod(colonne()+5;$gi$14;;;$gi$8)))
que veut dire :ligne() ; (ent((colonne() ; indirect(adresse( ;
mod(colonne()



=LIGNE()
et
=COLONNE()
retourne le numéro de la ligne (ou colonne) ou est inscrit la formule

­RESSE(ligne;colonne)
donne la référence d'une adresse
par exemple ­RESSE(1;1)
retour la valeur $A$1

et =INDIRECT(ADRESSE(1;1))
retour la valeur inscrit dans la cellule A1

si j'écris la formule suivante en cellule D3
=INDIRECT(ADRESSE(LIGNE()+1;COLONNE()))
le résultat sera la valeur de la celulle D4

même si tu coupe la cellule D4 pour la coller ailleurs, la cellule D3 fera toujours référence à la cellule D4
contrairement à si tu avais écris en cellule D3 la formulle =$D$4 qui elle aurait été modifier lors du collage.

isabelle






Avatar
isabelle
bonjour Guy,

pour concatener le champ a et b :
¡&B1
à recopier vers le bas.

isabelle

re-bonjour Isabelle
J'avais encore une petite question en rapport avec la fonction indirect du
début
Je voudrais concatener le champ a et b avant d'appliquer la fonction :

=somme.si(indirect("fichier1_"&$a$1&"!c:c");a3;indirect("fichier1_"&$a$1&"!w:w"))
je voudrais concatener le champ a et b dans le champ c dans mes deux
feuilles soit celle ou je somme le champ w et celle dans laquelle apparait la
formule.

Est-ce possible

Merci à l'avance ....








Avatar
guy boily
bonjour et merci Isabelle
Est-ce possible de concatener directement dans la formule les colonnes B et
C de la feuille "fichier1_" qui deviendrait alors la colonne C et la
colonne A et B qui deviendrait la colonne B de ma feuille dans laquelle
apparait ma formule ; ceci pour éviter de concatener manuellement mes champs
dans mes feuilles avant d'appliquer la fonction: comme ceci :


=somme.si(indirect("fichier1_"&$a$1&"!concatener(b&c");concatener(a&b);indirect("fichier1_"&$a$1&"!w:w")) (Pour illustration seulement)

Ca m'éviterait boucoup de manipulations.

Merci miles fois Bye!







--
boily_SLSJ



bonjour Guy,

pour concatener le champ a et b :
¡&B1
à recopier vers le bas.

isabelle

re-bonjour Isabelle
J'avais encore une petite question en rapport avec la fonction indirect du
début
Je voudrais concatener le champ a et b avant d'appliquer la fonction :

=somme.si(indirect("fichier1_"&$a$1&"!c:c");a3;indirect("fichier1_"&$a$1&"!w:w"))
je voudrais concatener le champ a et b dans le champ c dans mes deux
feuilles soit celle ou je somme le champ w et celle dans laquelle apparait la
formule.

Est-ce possible

Merci à l'avance ....











Avatar
isabelle
bonjour Guy,

je ne sais pas comment faire cela, je passe la main à d'autre.
a+
isabelle

bonjour et merci Isabelle
Est-ce possible de concatener directement dans la formule les colonnes B et
C de la feuille "fichier1_" qui deviendrait alors la colonne C et la
colonne A et B qui deviendrait la colonne B de ma feuille dans laquelle
apparait ma formule ; ceci pour éviter de concatener manuellement mes champs
dans mes feuilles avant d'appliquer la fonction: comme ceci :


=somme.si(indirect("fichier1_"&$a$1&"!concatener(b&c");concatener(a&b);indirect("fichier1_"&$a$1&"!w:w")) (Pour illustration seulement)

Ca m'éviterait boucoup de manipulations.

Merci miles fois Bye!









1 2