Microsoft 365 Formule avec plages variables sur plusieurs feuilles

rcan7412

XLDnaute Occasionnel
Bonjour,

Je souhaiterais savoir s'il est possible de créer des formules en utilisant des plages variables de valeurs sur différentes feuilles.
Les plages de valeurs sont nommées et de tailles différentes et font référence à des feuilles différentes (utilisation de la fonction décaler).

Pour illustrer mes propos :
3 feuilles : Hist - Bal - Bals
3 plages dans chaque feuille : Compte - Solde - Per > HistCompte - HistSolde - HistPer (pour la feuille Hist)
> BalCompte - BalSolde - BalPer (pour la feuille Bal)
> BalsCompte - BalsSolde - BalsPer (pour la feuille Bals)

Ma formule pour les différentes feuilles :

SOMME.SI.ENS(HistSolde;HistCompte;"70*";HistPer;">="202001)
SOMME.SI.ENS(BalSolde;BalCompte;"70*";BalPer;">="202001)
SOMME.SI.ENS(BalsSolde;BalsCompte;"70*";BalsPer;">="202001)

Je souhaite regrouper le résultat dans une cellule en fonction du choix de la feuille.

Si(Feuille="Hist";SOMME.SI.ENS(HistSolde;HistCompte;"70*";HistPer;">="202001);si(Feuille="Bal";SOMME.SI.ENS(BalSolde;BalCompte;"70*";BalPer;">="202001);si(Feuille="Bals";SOMME.SI.ENS(BalsSolde;BalsCompte;"70*";BalsPer;">="202001);0))

Ici c'est pour l'exemple. Dans mon cas pratique, la formule est nettement plus longue et dépasse les capacités.
J'aimerais rendre variable les plages pour limiter la taille de la formule, mais est-ce possible ?

SOMME.SI.ENS(VariableSolde;VariableCompte;"70*";VariablePer;">="202001)

Variable prendrait la valeur de Hist ou Bal ou Bals selon un choix.

En gros on garde la même formule mais avec la fonction "si", on rend variable les noms des plages.

Maintenant on peut passer par des cellules supplémentaires, mais je souhaitais simplifier la structure qui est déjà importante.

Si quelqu'un a une piste ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Rcan,
En utilisant la fonction INDIRECT on peut reconstruire une adresse en fonction de paramètres.
Dans la PJ la formule est :
VB:
=SOMME.SI.ENS(INDIRECT(C9&"!C:C");INDIRECT(C9&"!A:A");"a";INDIRECT(C9&"!B:B");"a")
Avec en C9 Feuil1.
 

Pièces jointes

  • rcan.xlsx
    9.2 KB · Affichages: 16

Discussions similaires

Réponses
49
Affichages
1 K

Statistiques des forums

Discussions
314 759
Messages
2 112 571
Membres
111 604
dernier inscrit
Darkanou