Remplacement d'une valeur si dépassement
Résolu
jenor
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
jenor Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
jenor Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aurai à nouveau besoin de votre aide ...
J'étudie un paramètre X auquel est associé une valeur par jour, cependant, des résultats incohérents peuvent apparaître (s'il est inférieur à 0 ou s'il est supérieur à 190, il est considéré comme étant faux).
Dans la deuxième colonne se trouvent deux paramètres X à la suite qui ne correspondent pas au critères. Dans le cas où une incohérence de ce type est constatée, je souhaiterai que la ou les valeurs soient remplacées par une approximation (moyenne entre les valeurs encadrant la ou les cellules concernées).
--> voir fichier ci-joint : https://www.cjoint.com/c/EFrmRekU280
Je vous remercie par avance pour l'aide que vous m'apporterez.
J'aurai à nouveau besoin de votre aide ...
J'étudie un paramètre X auquel est associé une valeur par jour, cependant, des résultats incohérents peuvent apparaître (s'il est inférieur à 0 ou s'il est supérieur à 190, il est considéré comme étant faux).
Dans la deuxième colonne se trouvent deux paramètres X à la suite qui ne correspondent pas au critères. Dans le cas où une incohérence de ce type est constatée, je souhaiterai que la ou les valeurs soient remplacées par une approximation (moyenne entre les valeurs encadrant la ou les cellules concernées).
--> voir fichier ci-joint : https://www.cjoint.com/c/EFrmRekU280
Je vous remercie par avance pour l'aide que vous m'apporterez.
A voir également:
- Remplacement d'une valeur si dépassement
- Remplacement coco - Accueil - Réseaux sociaux
- Coco.fr remplacement - Accueil - Réseaux sociaux
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Attribuer une valeur à une cellule texte excel ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
8 réponses
Si, si,
tu étais simplement passé sous mon radar.
essaie cette formule matricielle :
à valider par CTRL+MAJ+ENTER
cordialement
tu étais simplement passé sous mon radar.
essaie cette formule matricielle :
=SI(ET(B2>=0;B2<=190);B2;(INDEX(B:B;MAX(SI(($B$2:B2>=0)*($B$2:B2<=190);LIGNE($B$2:B2);0)))+INDEX(B:B;MIN(SI((B2:$B$11>=0)*(B2:$B$11<=190);LIGNE(B2:$B$11);9^9))))/2)
à valider par CTRL+MAJ+ENTER
cordialement
Faut mieux expliquer ce que tu recherche, refait ton fichier avec de meilleurs explications, sinon j'abandonne. Si toi même, tu ne sais pas l'expliquer correctement, qui le pourrait ? Nous faut un fichier avec des exemples précis et concrets, où, quand, comment, quel logique ? Nous faut tout les éléments sinon pas la peine de poursuivre.
Sur ceux, j'attends de tes nouvelles sur le remplissage du fichier. Pense aux exemples, inutile de le rédiger, un fichier vaut mieux qu'une parole.
Cdlt
Sur ceux, j'attends de tes nouvelles sur le remplissage du fichier. Pense aux exemples, inutile de le rédiger, un fichier vaut mieux qu'une parole.
Cdlt
Bonjour à tous,
@JvDO : pourquoi ne pas faire plus simple avec une formule de ce type ? :
=SI(ET(B2>=0;B2<=190);B2;SI(ET(C2>=0;C2<=190);C2;""))
Cdlt
@JvDO : pourquoi ne pas faire plus simple avec une formule de ce type ? :
=SI(ET(B2>=0;B2<=190);B2;SI(ET(C2>=0;C2<=190);C2;""))
Cdlt
Salut le fil,
Pour ma part hier je me suis pris la tête sur cette demande, s'il n'y a qu'une plage hors critère plusieurs possibilités effectivement, mais si on pousse le raisonnement plus loin en allongeant la matrice de quelques lignes en intégrant deux valeurs hors critères exemple B12:B13
les résultats sur cette deuxième plage sont erronées.
j'y arrive mais en ajoutant deux colonnes
Pour ma part hier je me suis pris la tête sur cette demande, s'il n'y a qu'une plage hors critère plusieurs possibilités effectivement, mais si on pousse le raisonnement plus loin en allongeant la matrice de quelques lignes en intégrant deux valeurs hors critères exemple B12:B13
les résultats sur cette deuxième plage sont erronées.
j'y arrive mais en ajoutant deux colonnes
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salt Jvdo,
j'ai allongé la liste pour le mois et en B11 correspondant au 10 janvier j'ai mis 126, en B12 -200 en B13 200 (même critère que sur la première plage)
et en B14 100
en suivant la logique de Jenor il faut retenir 126+100/2 soit 113
et encore en imaginant que le nombre de critère hors champ est limité à 2
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
j'ai allongé la liste pour le mois et en B11 correspondant au 10 janvier j'ai mis 126, en B12 -200 en B13 200 (même critère que sur la première plage)
et en B14 100
en suivant la logique de Jenor il faut retenir 126+100/2 soit 113
et encore en imaginant que le nombre de critère hors champ est limité à 2
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Tout à fait, mais ce que je voulais dire, si dans la liste il pouvait y avoir exemple 3 critères consécutifs, exemple B5, B6 et B7 d'après le demandeur Jenor, veut prendre les valeurs B4 et B8 exemple 138 et 140 soit 278 dans ce cas faut il que cette valeur soit divisée par 2 ou par 3 voir plus, mais bon ce n'est pas mon problème je poussais simplement la logique ce qui n'enlève rien à ta merveilleuse formule
cordialement
cordialement
Bonjour,
voilà une solution en VBA.
tu sélectionnes la zone de tes données avant de lancer la macro.
les résultats sont affichés en colonne C pour ne pas effacer les données dans un premier temps.
il suffit de remplacer C2 par B2 pour écraser les données.
je n'ai pas fait dans la dentelle, mais ça semble fonctionner.
Cordialement
voilà une solution en VBA.
tu sélectionnes la zone de tes données avant de lancer la macro.
les résultats sont affichés en colonne C pour ne pas effacer les données dans un premier temps.
il suffit de remplacer C2 par B2 pour écraser les données.
Option Base 1 Sub rendre_cohérent() Dim vTab() Set vZone = Selection() nb = vZone.Rows.Count ReDim vTab(nb) pred = 0: succ = 0 For i = 1 To nb If vZone(i) >= 0 And vZone(i) <= 190 Then vTab(i) = vZone(i) pred = i Else While (vZone(i) < 0 Or vZone(i) > 190) And i <= nb i = i + 1 Wend i = i - 1 succ = i If pred = 0 Or succ = nb Then vMoy = "" Else vMoy = (vZone(pred) + vZone(succ + 1)) / 2 pred = WorksheetFunction.Max(1, pred) For j = pred + 1 To succ vTab(j) = vMoy Next j pred = i End If Next i Range("c2").Resize(nb, 1) = WorksheetFunction.Transpose(vTab) End Sub
je n'ai pas fait dans la dentelle, mais ça semble fonctionner.
Cordialement