Remplacement d'une valeur si dépassement
Résolu/Fermé
jenor
Messages postés
51
Date d'inscription
mercredi 10 juin 2015
Statut
Membre
Dernière intervention
24 juillet 2015
-
17 juin 2015 à 14:44
jenor Messages postés 51 Date d'inscription mercredi 10 juin 2015 Statut Membre Dernière intervention 24 juillet 2015 - 22 juin 2015 à 09:31
jenor Messages postés 51 Date d'inscription mercredi 10 juin 2015 Statut Membre Dernière intervention 24 juillet 2015 - 22 juin 2015 à 09:31
A voir également:
- Remplacement d'une valeur si dépassement
- Coco chat remplacement - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Uptobox remplacement - Accueil - Services en ligne
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Skyrock chat remplacement ✓ - Forum Mail
8 réponses
jenor
Messages postés
51
Date d'inscription
mercredi 10 juin 2015
Statut
Membre
Dernière intervention
24 juillet 2015
18 juin 2015 à 07:37
18 juin 2015 à 07:37
Personne ?
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
18 juin 2015 à 07:53
18 juin 2015 à 07:53
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
jenor
Messages postés
51
Date d'inscription
mercredi 10 juin 2015
Statut
Membre
Dernière intervention
24 juillet 2015
18 juin 2015 à 09:17
18 juin 2015 à 09:17
Merci pour ta réponse, cependant la formule me donne le résultat 123 aulieu de 136,5.
De plus ce n'est pas exactement ce que j'attends, je voudrais que les valeurs fausses soient remplacées. Il faudrait sûrement passer par l'outil VBA, mais je ne sais pas du tout comment m'y prendre :-/ ...
De plus ce n'est pas exactement ce que j'attends, je voudrais que les valeurs fausses soient remplacées. Il faudrait sûrement passer par l'outil VBA, mais je ne sais pas du tout comment m'y prendre :-/ ...
Excel-worker
Messages postés
589
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
23 juillet 2015
58
>
jenor
Messages postés
51
Date d'inscription
mercredi 10 juin 2015
Statut
Membre
Dernière intervention
24 juillet 2015
18 juin 2015 à 09:37
18 juin 2015 à 09:37
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
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
18 juin 2015 à 09:39
18 juin 2015 à 09:39
Bonjour,
123, oui, mais sur la première ligne qui est cohérente et donc qui reprend la valeur en colonne B
et 136,5 sur les lignes incohérentes du 4 et 5 janvier.
as-tu un recalcul manuel?
Si tu appliques cette formule sur une autre plage, il faut adapter les bornes bien entendu.
cordialement
123, oui, mais sur la première ligne qui est cohérente et donc qui reprend la valeur en colonne B
et 136,5 sur les lignes incohérentes du 4 et 5 janvier.
as-tu un recalcul manuel?
Si tu appliques cette formule sur une autre plage, il faut adapter les bornes bien entendu.
cordialement
Excel-worker
Messages postés
589
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
23 juillet 2015
58
18 juin 2015 à 08:49
18 juin 2015 à 08:49
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
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
Modifié par JvDo le 18/06/2015 à 08:55
Modifié par JvDo le 18/06/2015 à 08:55
Bonjour,
parce que tu te sers du résultat attendu pour obtenir le résultat.
du moins, c'est ce que j'ai compris.
la colonne attendue est à calculer d'après moi.
la formule est compliquée parce qu'elle doit gérer les séquences multiples de valeurs incohérentes.
cordialement
parce que tu te sers du résultat attendu pour obtenir le résultat.
du moins, c'est ce que j'ai compris.
la colonne attendue est à calculer d'après moi.
la formule est compliquée parce qu'elle doit gérer les séquences multiples de valeurs incohérentes.
cordialement
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
18 juin 2015 à 08:57
18 juin 2015 à 08:57
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
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
18 juin 2015 à 09:05
18 juin 2015 à 09:05
Bonjour,
il suffit de rajouter un SIERREUR() à ma formule pour gérer les bornes incohérentes.
pour la partie "allonger la matrice", je ne comprends pas.
j'ai allongé la matrice, j'ai mis des séquences incohérentes et j'obtiens le résultat.
si tu peux expliquer ce qui ne va pas...
cordialement
il suffit de rajouter un SIERREUR() à ma formule pour gérer les bornes incohérentes.
pour la partie "allonger la matrice", je ne comprends pas.
j'ai allongé la matrice, j'ai mis des séquences incohérentes et j'obtiens le résultat.
si tu peux expliquer ce qui ne va pas...
cordialement
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
Modifié par Mike-31 le 18/06/2015 à 09:21
Modifié par Mike-31 le 18/06/2015 à 09:21
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.
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
18 juin 2015 à 09:35
18 juin 2015 à 09:35
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
18 juin 2015 à 09:51
18 juin 2015 à 09:51
Exact Jvdo, erreur de ma part, je n'avais pas modifié les bornes de ta formule, reste à savoir si le nombre de valeur hors critère du demandeur peuvent être supérieur à 2 consécutivement.
Il serait bien que Jenor le précise
Cordialement
Il serait bien que Jenor le précise
Cordialement
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
Modifié par JvDo le 18/06/2015 à 09:55
Modifié par JvDo le 18/06/2015 à 09:55
Ça fonctionne quel que soit le nombre de valeurs incohérentes successives puisque j'utilise le MAX et le MIN des lignes cohérentes pour repérer les valeurs cohérentes respectivement du dessus et du dessous.
cdlt
cdlt
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 18/06/2015 à 10:18
Modifié par Mike-31 le 18/06/2015 à 10:18
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
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
18 juin 2015 à 11:03
18 juin 2015 à 11:03
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
jenor
Messages postés
51
Date d'inscription
mercredi 10 juin 2015
Statut
Membre
Dernière intervention
24 juillet 2015
22 juin 2015 à 09:31
22 juin 2015 à 09:31
Je vous remercie vraiment beaucoup pour votre aide !!!
Merci pour le temps que vous m'avez accordé.
A bientôt
Merci pour le temps que vous m'avez accordé.
A bientôt