J'ai des fichiers excel composés de deux colonnes (A, B) qui comportent des valeurs périodiques. Pour chaque fichier, je veux chercher toutes les valeurs min et max de la deuxième colonne B. Ensuite, pour chaque couplet (min, max) successif une quantité physique qui a pour formule : quantité = (valeur max - valeur min)*100 / (valeur colonne A correspondant à max - valeur colonne A correspondant à min). Le résultat sera mis dans une nouvelle colonne C.
Merci Mike-31, J'ai plusieurs max et plusieurs min et pour chaque max et min successif j'applique la formule. Donc, j'aurai plusieurs valeurs avec cette formule. J'espère que le problème est bien posé.
Regarde cette formule matricielle, pour écourter la formule il vaut mieux nommer les deux plages.
La première plage je l'ai nommée Col_A et la deuxième Col_B
Colle cette formule dans une cellule
Et valide la en cliquant en même temps sur les touches Ctrl, Shift et Entrée si tu fais bien la formule se mettra entre crochet {}
Comme cela
{=((MAX(Col_B)-MIN(Col_B))*100)/(SI(LIGNES($1:1)<=NB.SI(Col_B;MAX(Col_B));INDEX(Col_A;PETITE.VALEUR(SI(Col_B=MAX(Col_B);LIGNE(INDIRECT("1:"&LIGNES(Col_B))));LIGNES($1:1)));""))-MIN(Col_A)}
Ensuite incrémente-la vers le bas sur plusieurs lignes pour prendre en compte les valeurs identiques
Colonne B tu as deux valeurs max 40 avec en face la première colonne A 0,033 ce qui je pense doit te donner 795780,106
Et pour la deuxième valeur max 40 en face tu as 0,041 ce qui te donne 194092,7889
Contrôle les deux calculs voir si le résultat est bon. Dans l'affirmative, si tu as besoin d'un modèle fais signe
Vous n’avez pas trouvé la réponse que vous recherchez ?
Salut Mike-31, je pense que ta formule est bien intéressante. J'ai renommé les deux colonnes par Col_A et Col_B (voir l'exemple), puis j'ai collé ta formule dans une cellule appartenant à une troisième colonne, mais une fois que je clique sur sur les touches Ctrl, Shift et Entrée il m'affiche #NOM?
Si tu peux m'éclaircir les étapes, je serai très ravi. Je te fais savoir que j'ai plusieurs fichiers que je dois le traiter de la même façon.
Bonsoir
en attendant notre ami Mike qui est le seul maître de sa formule(!), vérifiez les correspondances de vos noms de champ dans les formules avec le libellé du nom dans la liste des champs nommés.
Si excel renvoie #NOM c'est qu'il y a un problème d'écriture dans les noms de champ ou les codes des formules
Vous pouvez quand même essayez de tester la formule en écrivant les limites de champ plutôt que les noms . Cela vous permettra de vérifier si le problème est bien dans l'écriture.
Crdlmnt
en complément et à tout hasard, vu votre message:
il ne suffit pas de placer les noms COL_A et COL_B en tête de colonne!
le chemin varie selon la date de votre Excel
1° sélectionner le champ à nommer
2° Excel avant 2007:
barre d'outil / insertion .
/ Nom et entrer COL_A ou COL_B dans la fenêtre supérieure, la fenêtre inférieure donne les limites du champ (que vous pouvez corriger dans la fenêtre si besoin)
sur Excel à partir de 2007 même chose, mais le chemin est:
Ruban / Onglet formule et "définir un nom"
Alors vous avez des valeurs nulles ou des cellules vides dans votre tableau qui sont renvoyées dans la partie diviseur par PETITE.VALEUR , là on va laisser Mike traiter le sujet, je n'en suis pas capable sur cette formule.
crdlmnt
... mettez lui plutôt un fichier avec les deux colonnes remplies sur:
https://www.cjoint.com/ et revenez placer ici le lien donné par le site.
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
J'espère que tu vas bien. Je t'informe que la recherche des valeurs min et max se fait pour chaque sinusoïde. Avec un calcul manuel, je trouve 16 max et 16 min et par conséquent, on applique 16 fois la formule pour chaque max et min de chaque sinusoïde. Voici le lien du fichier avec mes calculs :
http://cjoint.com/?BAAkCgJe0Bm
Le résultat de la formule est mis, à chaque fois, dans la colonne C à côté de min.
Je viens de regarder rapidement ton fichier, mais à première vue le problème est de savoir quel critère logique défini chaque plage de tes sinusoïdes, si j'ai bien compris ton tableau,
la première plage A1:B35 soit 35 lignes
la deuxième A36:B74 39 lignes
la troisème A75:B115 41 lignes etc ...
La plage de chaque sinusoïde n'est pas constante sur la même colonne et varie aussi d'un fichier à un autre. Je souhaiterai trouver une astuce pour trouver tous les max et les min des sinusoïdes.
P.S.: J'ai beaucoup de fichiers que je dois tous les traiter de la même façon.
La seule astuce et renseignement logique qu'il faut arriver à donner à Excel, c'est la définition des plages, ou commence chaque sinusoïde et ou ça se termine quel est le point commun.
même manuellement comment définis tu ces plages !
A chaque sinusoïde, je cherche le max (la plus grande valeur positive) et le min (la plus petite valeur négative). Puisque le phénomène est périodique, les cycles se répètent avec la même façon.
Le problème est que les max et les min changent un petit peu d'un cycle à un autre et il faut prendre la va leur correspondante de la colonne A.
Si on suit ta logique, sur ton dernier fichier, le deuxième calcul en C74 serait faux, en effet tu as pris comme valeur min la cellule A74 avec -0,065 alors qu'en A75 et A76 nous avons -0,069 donc inférieur de 0,004 ce qui donnerait comme formule =(B55-A75)*100/(A55-A75) et le résultat serait 40738,94737
peux tu le contrôler et me donner des explications
Pour la recherche des valeurs Max et Min je m'intéresse seulement à la colonne B. Pour chaque sinusoïde, je cherche dans la colonne B la valeur Max et Min puis j'utiliserai la colonne A pour prendre les valeurs correspondantes au Max et Min trouvés.
La valeur A74 correspond au Min du 2ème cycle. J'espère que tu m'as bien compris.
Comme tu m'as précisé qu'il faut définir la plage où commence chaque sinusoïde, j'ajoute une colonne E au fichier qui montre le nombre de cycles ou de sinusoïdes, c-à-d on peut effectuer la recherche du Min et Max d'une sinusoïde entre deux cycles (1 et 2 , 2 et 3 , ....). Cette procédure sera généralisée pour tout le nombre de cycles. Le lien du nouveau fichier est :
http://cjoint.com/?BACkw0jW6AF
N.B : La recherche du Min et Max se fera sur la colonne B seulement puis on prend leur correspondant de la colonne A.
J'ai écrit plusieurs formule et code en VBA sans pouvoir trouver un critère logique qui séparerait tes plages surtout en fin de colonne B ou tes valeurs subissent des variations importantes dont les montants sont aléatoires
pas de problème pour les neuf premières soit jusqu'à la ligne 393 après c'est pas gagné. je cherche encore voir si je trouve un code logique
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.