Formules complexes

GrimmJow

XLDnaute Nouveau
Bonsoir,

Ci-joint un fichier test afin de vous cibler la partie de mon fichier où se trouve le problème.

La situation : un budget avec 3 monnaies.
Chacune d'elle voit son budget varier avec des recettes et des dépenses.
Par conséquent, elles peuvent avoir un solde négatif chacune séparément à des dates différentes.

Vous voyez le tableau de budget à gauche.
Et à droite je veux voir apparaitre quel sera le solde négatif le plus bas par monnaie et à quelle date est ce solde.

Pour afficher le solde minimum j'ai déjà la formule comme vous pouvez le voir.
(D'ailleurs comment s'appelle ce type de formule ? Celle qui nécessite de faire Ctrl + Maj + Entrée pour l'activer. Et pour voir si j'ai bien compris, c'est une espèce de formule qui permet de faire une recherche croisée ?)

Bref, mon problème intervient au niveau de la date.
En effet actuellement, vous pouvez voir que j'ai créé 3 bases de données (Budget_€, Budget_pounds et Budget_dollars) afin de faire une RECHERCHEV dans chacune d'elle de la date. Pourquoi cela ? Parce qu’il faut que ce soit la 1ère colonne de la base de données qui contienne la monnaie concernée.
Mon problème est qu'au vu de tous les noms définis que j'ai déjà créé, je suis en train de restructurer l'intégralité de mon fichier afin de raccourcir au mieux les formules et de supprimer les noms inutiles.

J'ai pensé à reprendre le même principe que pour afficher le solde le plus bas, mais cela ne marche que pour la première ligne (voir cellule jaune).
Donc y a-t-il une formule générale qui peut me faire dégager les 3 noms définis ?

Autre chose, excel peut-il être ralenti par le fait que le fichier contienne une multitude de formules et de noms définis ? Car c'est surtout pour cause de ralentissement ou de temps d'attente important lors de calcul que je me suis mis à effectuer cette restructuration.

Et pour finir, je voudrais dans le gestionnaire des noms afficher uniquement les noms présents sur un onglet. hors dans filtrer, quand je mets "Noms inclus dans l'étendue de la feuille de données", il ne m'affiche rien, alors qu'il y en à beaucoup.

Merci d'avance
 

Pièces jointes

  • test.xlsx
    11.1 KB · Affichages: 51
  • test.xlsx
    11.1 KB · Affichages: 54
  • test.xlsx
    11.1 KB · Affichages: 51
Dernière édition:

GrimmJow

XLDnaute Nouveau
Re : Formules complexes

Bonjour,

Merci pour la réponse. peux-tu m'expliquer ces formules et leur imbrication ?

Sinon rien pour les autres questions ?

Merci d'avance, bonne journée.

Edit : J'ai compris l'utilisation de ta formule et l'ai même amélioré, pas besoin de la formule décaler en fait. Par contre là où je bloque c'est la partie "valeur si vrai" avec l'imbrication LIGNE(INDIRECT(LIGNES)).
 
Dernière édition:

GrimmJow

XLDnaute Nouveau
Re : Formules complexes

Habitude :

Merci de ta réponse. Mais va vraiment falloir m'expliquer cette formule. Pourquoi 10*9 nous envoi-t-il sur la bonne ligne ? o_O

Rachid_0661 :

Voici le fichier joint.
Je dis qu'on a pas besoin de DECALLER car cette formule sert à renvoyer à une plage en se basant sur celle nommée "Description". Hors les plages auxquelles renvoie la formule DECALLER sont des plages également nommer dans mon véritable fichier, et je ne compte pas supprimer ces noms définis contrairement à d'autres. par conséquent je peux me servir de leur noms sans la formule. Du moins ça marche.
 

Pièces jointes

  • test.xlsx
    11.5 KB · Affichages: 35
  • test.xlsx
    11.5 KB · Affichages: 38
  • test.xlsx
    11.5 KB · Affichages: 39

R@chid

XLDnaute Barbatruc
Re : Formules complexes

Bonjour @ tous,
Ok,
Comment tu as nommé les plage, le A:A et B:B et C:C va te poser un problème avec les formules matricielles, donc on se sert de la fonction DECALER() pour faire des champs dynamiques qui augmente de taille quand on ajoute des valeurs,
et voila j'ai nommé une plage Description,
si tu veux faire faire les formules il faut que les champs aillent la même taille donc pour le champs des Euros on peut le définir comme ça =DECALER(Description;;1) , le champ des Pounds =DECALER(Description;;2) et le champ des Dollars =DECALER(Description;;3), mais le prob c'est qu'on devra Modifie le nom de chaque champs pour chercher les dates et les valeurs mines, alors j'ai profiter pour remplacer les 1, 2, et 3 par COLONNES($G:G) qui génère 1, 2, 3, .... quand on tire vers la droite...
Peut être je suis claire sur mon explication...
Bon Week-End
 

Habitude

XLDnaute Accro
Re : Formules complexes

Habitude :

Merci de ta réponse. Mais va vraiment falloir m'expliquer cette formule. Pourquoi 10*9 nous envoi-t-il sur la bonne ligne ? o_O

En fait j'utilise la format d'affichage et insère dans tes valeurs critique, au milliardième le numéro de ligne.
G3 par exemple
Budget_€+LIGNE(A:A)/(10^9), au lieu de renvoyé -25000
G3= -24999,999999995
H3= -11999,999999992

en entier, tu ne vois pas la différence

Je mutliplie ce nombre par 1 millard ou 1000000000 ou 10^9
ce qui donne
G3= -24999999999995
H3= -11999999999992

Sur ce nombre je fais un Modulo par 1 millard ou 100000000 ou 10^9
G3= 5
H3= 8

Ne reste plus qu'a faire un Index sur cette ligne.

Simple calcul, aucun déplacement, aucune matricielle.
Et en milliardième, pour qu'il y ait un impact, il te faut au moins un million de valeurs.

ET comme affirme Rachid, pour gagné encore plus en performance, dans la formule, tu pourrais remplacer les noms défini (Budget_€) par une plage calculé dynamiquement.
 

GrimmJow

XLDnaute Nouveau
Re : Formules complexes

En fait j'utilise la format d'affichage et insère dans tes valeurs critique, au milliardième le numéro de ligne.
G3 par exemple
Budget_€+LIGNE(A:A)/(10^9), au lieu de renvoyé -25000
G3= -24999,999999995
H3= -11999,999999992

en entier, tu ne vois pas la différence

Je mutliplie ce nombre par 1 millard ou 1000000000 ou 10^9
ce qui donne
G3= -24999999999995
H3= -11999999999992

Sur ce nombre je fais un Modulo par 1 millard ou 100000000 ou 10^9
G3= 5
H3= 8

Ne reste plus qu'a faire un Index sur cette ligne.

Simple calcul, aucun déplacement, aucune matricielle.
Et en milliardième, pour qu'il y ait un impact, il te faut au moins un million de valeurs.

ET comme affirme Rachid, pour gagné encore plus en performance, dans la formule, tu pourrais remplacer les noms défini (Budget_€) par une plage calculé dynamiquement.

En fait je crois que mon problème vient du fait que je ne connais absolument pas ce qu'est un modulo (surement ton MOD), car je ne vois toujours pas pourquoi on multiplie par 1 milliard.

Sinon concernant la vitesse de calcul de mon fichier excel très basse, vous dites que c'est lié à la multitude de noms définis ?

Merci
 

Discussions similaires

Réponses
2
Affichages
163
Réponses
3
Affichages
267
Réponses
0
Affichages
121

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350