Somme de fonctions

Résolu/Fermé
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015 - 30 juin 2014 à 09:32
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015 - 2 juil. 2014 à 08:34
Bonjour,


J'aurais aimé faire de deux fonctions une seule qui puisse tenir dans une cellule, cependant je ne sais pas comment intégrer une fonction dans l'autre et qu'elle soit fonctionnelle.


Voici les deux fonctions en question :

=PETITE.VALEUR('Debit Zones'!B3:B99;NB.SI('Debit Zones'!B3:B99;0)+1)
et

=SOMME(DECALER($A$3;5*(LIGNE()-3);0;5;1))

Je vais essayer de synthétiser ce que j'aimerais obtenir de ces deux formules en une phrase.

J'affiche la plus petite valeur non nulle dans la plage B3:B99 dans la page 'Débit zones' lorsque je fait glisser cette formule la cellule repend à partir de la fin de la zone dans le même intervalle que la cellule précédente (96 cases). (Soit B3:B99 pour la première cellule et B99:B195 pour la deuxième).

Je vous remercie pour votre aide.

Cordialement.

12 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
30 juin 2014 à 10:08
Bonjour,

Pas sur tout compris, je commencerais par nommer chaque plage, exemple
'Debit Zones'!B3:B99 nommée zon1

'Debit Zones'!B100:B195 nommée zon2

cette formule sur la ligne 3

=PETITE.VALEUR(INDIRECT("zon"&LIGNE()-2);1+NB.SI(INDIRECT("zon"&LIGNE()-2);0))

si tu la copie sur la ligne 5 par exemple
=PETITE.VALEUR(INDIRECT("zon"&LIGNE()-4);1+NB.SI(INDIRECT("zon"&LIGNE()-4);0))

mais il est possible de composer différemment en tenant compte du saut de ligne de 96
0
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015
30 juin 2014 à 10:19
J'ai essayé avec cette formule cependant il est affiché :

"Vous avez tapé un nombre insuffisant d'arguments pour cette fonction.

=PETITE.VALEUR(INDIRECT('Debit Zones'!B3:B99)&LIGNE()-2);1+NB.SI(INDIRECT('Debit zones'!B3:b99&LIGNE()-2);0))
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
30 juin 2014 à 10:25
Re,

commence par nommer chaque plage comme je te l'ai expliqué
Debit Zones'!B3:B99 nommée zon1 puis Debit Zones'!B100:B195 nomme cette plage zon2 etc
dans la formule 'Debit Zones'!B3:B99 sera remplacé par zon

et ta formule devient sur la ligne 3
=PETITE.VALEUR(INDIRECT("zon"&LIGNE()-2);1+NB.SI(INDIRECT("zon"&LIGNE()-2);0))
0
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015
30 juin 2014 à 10:34
Le problème est que cette formule ne vas pas reprendre seulement la dite "zon1" mais les données s'étendent sur presque 10 000 cellules par colonnes. Donc si je dois renommer chaque plage manuellement je n'ai pas fini. Sachant que je dois également reporter ce genre de calcul sur une quinzaine de pages.

Ne serait il pas possible d'intégrer directement dans la formule le décalages de 96 cases sans passer par d'autres cellules intermédiaires qui alourdissent encore plus le fichier?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
30 juin 2014 à 11:23
Re,

Wahou, je regarde comment éviter le VBA
0
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015
30 juin 2014 à 11:26
D'accord merci
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 30/06/2014 à 13:37
Re,

en cellule N3 tu saisis la première plage B3:B99 en N4 la deuxième B100:B195 etc

=PETITE.VALEUR(INDIRECT("'Debit Zones'!"&N3);1+NB.SI(INDIRECT("'Debit Zones'!"&N3);0))

tu automatises le tout
exemple en M2 tu saisis le nom de l'onglet à traiter Debit Zones
et colonne N3 tu saisis la première plage B3:B99 en N4 la deuxième B100:B195 etc

=PETITE.VALEUR(INDIRECT("'"&$M$2&"'!"&N3);1+NB.SI(INDIRECT("'"&$M$2&"'!"&N3);0))

on peut aller plus loin dans l'automatisation en saisissant le nombre de saut de ligne dans une cellule exemple 96 et l'incrémentation calcule automatiquement les bornes mais cela implique que chaque saut de plage soit identique

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015
30 juin 2014 à 14:23
Il est possible d'avoir le même intervalle en reprenant B3:B99 puis B99:B195.
Je n'arrive pas à appliquer la formule dans le tableau
Je vous joint le tableau pour que vous puissiez vous représenter tout cela.

https://www.cjoint.com/?3FEowkNwmGx
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
30 juin 2014 à 16:32
Re,

Si je reprends ton tableau, feuille Bilan F01 cellule F49 quel est le contenu qui devrait s'afficher

Toujours sur la même feuille mais en cellule E49 quel est la valeur qui devrait s'afficher
0
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015
1 juil. 2014 à 08:08
0:00 pour E49
4 pour F49
Il est possible que dans la copie du tableau la colonne E n'ait pas pris le format heure.
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 1/07/2014 à 19:34
Re,

Excuse j'étais absent des écrans
Feuille Bilan F01 colonne C j'ai simplifié tes formules et affecté un format personnalisé

Ensuite feuille Débit zones j'ai nommé la colonne A "date" et la colonne B zone ce qui simplifie les formules.
En E49 et F49 deux formules matricielles. Au passage pour confirmer une formule matricielle à la place de faire Entrée, il faut cliquer en même temps sur trois touche du clavier Ctrl, Shift et Entrée, si tu fais comme il faut la formule se place entre {}

https://www.cjoint.com/?DGbtHaS75Wd

ensuite tu incrémentes vers le bas
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Termittt Messages postés 41 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 29 avril 2015
2 juil. 2014 à 08:34
Merçi beaucoup
0