Bonjour
Dans une cellule B1 j'ai la valeur 10.
Dans une cellule C1 je souhaiterais effectuer le calcul "somme(A1:10), mais que la valeur "10" du"A10" provienne de la cellule B1.
Comment puis-je faire svp?
Merci par avance.
![]()
Bonjour
Dans une cellule B1 j'ai la valeur 10.
Dans une cellule C1 je souhaiterais effectuer le calcul "somme(A1:10), mais que la valeur "10" du"A10" provienne de la cellule B1.
Comment puis-je faire svp?
Merci par avance.
![]()
Bonjour
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SOMME(INDIRECT("A1:A" & B1))
Ou bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SOMME(DECALER(A1;0;0;B1))
Bonjour
Dans une cellule A1 j'ai la valeur 10
J'ai des valeurs dans cellules B1 à C10.
Je souhaite effectuer l'opérationà ceci près que je souhaiterais que la valeur "10" provienne de A1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sommeprod(B1:B10;C1:C10)
Indirect me semble indiqué pour appeler la valeur de A1.
Aucun de mes essais de combiner sommeprod et indirect ne fonctionne.
Une piste svp?
merci par avance
Bonjour
Le principe et la syntaxe (à utiliser pour INDIRECT) sont pourtant rigoureusement les mêmes que ceux de la formule que je t'ai montrée dans cette discussion :Aucun de mes essais de combiner sommeprod et indirect ne fonctionne
https://www.developpez.net/forums/d1...llule-formule/
au demeurant laissée sans suite de ta part.
Il ne s'agit somme toute que de concaténer (pour chaque argument/plage) une chaîne de caractère et la valeur d'une cellule
La fonction INDIRECT doit être utilisée pour chacun des arguments plage
Il ne s'agit somme toute que de concaténer (pour chaque argument/plage) une chaîne de caractère et la valeur d'une cellule[/QUOTE]
La fonction INDIRECT permet de traiter des plages définies indirectement (dans une chaîne de caractères, donc entourée de guillemets).
Ton problème est donc identique à celui du remplacement, dans la chaîne de caractères, "tititoto" du mot "toto" par la valeur d'une variable X
Regarde ta formule sans indirect :
Si l'on utilise INDIRECT, elle devient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SOMMEPROD(B1:B10;C1:C10)
où l'on se réfère indirectement (par chaînes de caractères) aux deux plages traitées=SOMMEPROD(INDIRECT("B1:B10");INDIRECT("C1:C10"))
Je te laisse remplacer, dans chacune de ces deux chaînes, "10" par A1 (en concaténation habituelle).
C'est tout.
Bonjour
Si tu souhaite additionner les valeurs de "B" et "C"
=SOMMEPROD(INDIRECT("B1:B"&(A1))+(INDIRECT("C1:C"&(A1))))
L'imagination est plus importante que le savoir.... A . Einstein. :pastaper:
https://www.developpez.net/forums/blogs/179588-cb_60/
Merci de cliquer sur :resolu:pour clore cette discussion.
Bonjour,
Lorsque le nombre de cellules d'une plage est donné dans une cellule, on peut aussi penser à la fonction DECALER et écrire une formule du genre :
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SOMMEPROD(DECALER(B1;0;0;A1;1);DECALER(C1;0;0;A1;1))
Claude
La fonction INDIRECT permet de traiter des plages définies indirectement (dans une chaîne de caractères, donc entourée de guillemets).
Ton problème est donc identique à celui du remplacement, dans la chaîne de caractères, "tititoto" du mot "toto" par la valeur d'une variable X
Regarde ta formule sans indirect :
Si l'on utilise INDIRECT, elle devient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SOMMEPROD(B1:B10;C1:C10)
où l'on se réfère indirectement (par chaînes de caractères) aux deux plages traitées
Je te laisse remplacer, dans chacune de ces deux chaînes, "10" par A1 (en concaténation habituelle).
C'est tout.[/QUOTE]
Merci cela fonctionne bien.
A partir de ta première réponse (appliquer ce que tu m'avais dit pour sommeprod/indirect, j'avais essayé sans résultat.
Ta seconde réponse et surtout ton explication d'"INDIRECT" en deux étapes m'a permis de mieux l'appréhender.
Donc merci d'être revenu, et pour ta pédagogie également!
![]()
Merci Claude et CB_60, je creuserai vos réponse à l'occasion, surtout DECALER que je ne visualise pas du tout pour l'instant![]()
Partager