adresse volante dans une formule

Brigitte

XLDnaute Barbatruc
Bonjour,

Nous aurions besoin d'un petit coup de pouce pour faire une formule avec nb.si (ou sommeprod).

Le but est de compter des cellules selon une condition, mais le souci réside dans le fait que :

- la formule de comptage (nb.si) est située dans un classeur
- la plage dans un autre classeur

Jusque là tout va bien : =nb.si(classeur/plage;"critère").


Là où ca se corse, c'est qu'il y a plusieurs classeurs possibles et que dans le nom dudit classeur se trouve un paramètre qui change :


ex : classeur-avril ; classeur-mai, classeur-juin

et que dans le classeur de comptage où figure nb.si, la formule se décompose donc ainsi :

=nb.si(classeur-avril;"critère") et que le mot avril qui distingue les classeurs est dans une cellule et ainsi il faut recomposer le nom du classeur par un texte fixe (début du nom du classeur) puis cette cellule (A2 : avril) puis fin du nom du classeur un texte fixe.

ET cela fera ainsi un chemin : blabla-avril-bloblo ou bien blabla-mai-bloblo...

Sans classeur difficile, mais d'une part ils sont confidentiels, d'autre part, il en faut deux, et enfin, vu que le chemin sera différent une fois posté... je ne peux guère mieux l'expliquer.

A mon avis, il faudrait du décaler ou qqchse comme ca qui fasse que le comptage se réalise ainsi :

=nb.si(blabla-A2-bloblo;"critère") --> =nb.si(blabla-avril-bloblo;"critère")
pour devenir
=nb.si(blabla-mai-bloblo;"critère") si la cellule A2 change et devient mai... etc

Comment écrire cela ? J'ai essayé avec concaténer, mais ca ne marche pas...

Merci d'avance. Si trop complexe, tant pis.
 

hoerwind

XLDnaute Barbatruc
Re : adresse volante dans une formule

Bonjour Brigitte,

Pas facile de t'aider car, comme tu le dis toi-même, si je trouve la solution mais vu que le chemin sera différent une fois posté, je ne vois pas bien comment tu vas faire.

As-tu essayé avec la fonction INDIRECT.EXT() de Morenfunc ?

Autre possibilité, écrire une formule par fichier et récupérer le résultat de celle qui t'intéresse.

Pourrais-tu quand même reconstruire trois petits fichiers (sans les données confidentielles) afin que nos essais se rapprochent le plus de la réalité ?
 

Brigitte

XLDnaute Barbatruc
Re : adresse volante dans une formule

Merci Bernard...
Ca semble être ca... J'avais juste oublié le chemin... donc le nom de la plage à compter est :

D:\répertoire
début du nom du classeur : identique pour tous les classeurs
fin du nom du classeur : à aller chercher dans une cellule du classeur de comptage
feuille
plage

seule la fin du nom du classeur changeant en fonction de la cellule pointée (avril, mai, juin...)

Merci à toi si tu peux me dire où et comment on doit mettre le répertoire dans ta formule.

=NB.SI(INDIRECT("[classeur-"&A2&"]Feuil1!plage");"critère")
 

Brigitte

XLDnaute Barbatruc
Re : adresse volante dans une formule

Re,

Merci hoerwind, heureuse de te croiser ici...

Si je te dis que j'y avais pensé, me croiras tu ? promis, c'est vrai de vrai :

Autre possibilité, écrire une formule par fichier et récupérer le résultat de celle qui t'intéresse.

Mais je n'avais pas osé proposer cela à mon époux... tant il semblait vouloir faire une formule qui varie selon le contenu de sa cellule référence.

Il vient d'opiner de la tête, car comme c'est toi qui le propose, là j'ose lui dire...

Sinon faire trois fichiers... les bras m'en tombent... il fait si chaud.

Mais merci encore.
 

hoerwind

XLDnaute Barbatruc
Re : adresse volante dans une formule

Re,

Plusieurs petites choses :

- D'abord le plaisir de te croiser est pour moi tout aussi grand que pour toi (à mon âge c'est d'ailleurs la seule chose qui me reste - lol).

- Ensuite, la seule chose qui compte est d'obtenir le résultat, et je préfère une méthode simple que je maitrise à tout autre manipulation intellectuelle ("manipulation" étant le synonyme d'un autre terme quelque peu plus trivial que je ne souhaite pas employer ici).

- Enfin, il me semble que la fonction INDIRECT ne fonctionne pas entre fichiers, raison pour laquelle INDIRECT.EXT existe.
Mais si tu dois transmettre ce fichier à d'autres personnes, assure-toi qu'ils l'ont bien téléchargé.
 

Discussions similaires