OVH Cloud OVH Cloud

pair - impair

19 réponses
Avatar
vincent
bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue soit P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou 1C ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !! :)

10 réponses

1 2
Avatar
AV
Perso je pige que couic à tes histoires de pair/impair/les deux ...
Mais....avec en A1:A3 les valeurs "40B" ; "1C" ; "118D"
pour savoir si la partie numérique est paire ("P") ou impaire ("I")

Matricielle (validation par ctrl + maj +entrée)
=SI(MOD(1*STXT(A1;EQUIV(1;1*ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:5"));1));0);SOMME
(1*ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:5"));1))));2);"I";"P")

AV
Avatar
Dude
j'envisage bien quelques solutions, mais bon.

Acceptes-tu les macros dans ton fichier ? Y a-t-il parfois plusieurs lettres
?

s'il n'y a qu'une lettre après les adresses il doit bien y avoir une formule
pour supprimer la lettre, du type (en supposant que ton n° de rue soit dans
la colonne B et que l'on traite la ligne 2)

= si(esterreur(droite(B2;1)+0);gauche(B2;NBcar(B2)-1)+0;B2)

et c'est sur cette nouvelle colonne que tu calcules tes solutions....

S'il peut y avoir plusieurs lettres, le mieux est d'utiliser des macros je
pense.


"vincent" wrote in message
news:
bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue soit
P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou 1C
ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais
cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !! :)


Avatar
anonymousA
bonjour,

un truc bien compliqué qui suit une loi :

1 parité et impaire: 1P/P
1 parité et paire: 1P/I
2 parités et dernier numéro pair: 2P/P
2 parités et dernier numéro impair: 2P/I

ex: si en A1 tu écris 1A-56G tu obtiendras comme résultat de la formule 2P/P
mais si tu écris 2A-56G tu obtiendras la même chose car je n'ai testé que la
parité du dernier nombre, ta demande ne précisant pas si les 2 nombres
pouvaient être de parité différente.

=CHOISIR(SI(ESTERREUR(TROUVE("-";DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1));1));3;TROUVE("-";DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1));1))+MOD(GAUCHE(DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1)-1);NBCAR(DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1)-1))-1);2);"1P/P";"1P/I";"2P/P";"2P/I")

A+


bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue soit P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou 1C ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !! :)


Avatar
vincent
merci AV pour ta réponse.... je t'avoue que je comprends rien non plus à la
formule que tu m'as donné :) comme ca on est deux ;)

j'ai par ailleurs essayer de la tester mais apparement il ya une erreur dans
la formule... :s


Perso je pige que couic à tes histoires de pair/impair/les deux ...
Mais....avec en A1:A3 les valeurs "40B" ; "1C" ; "118D"
pour savoir si la partie numérique est paire ("P") ou impaire ("I")

Matricielle (validation par ctrl + maj +entrée)
=SI(MOD(1*STXT(A1;EQUIV(1;1*ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:5"));1));0);SOMME
(1*ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:5"));1))));2);"I";"P")

AV





Avatar
vincent
Merci Dude !

déjà une épine hors de mon pied, ta formule (à laquelle je ne comprend pour
le moment non plus :) ) me permet d'isoler un chiffre !

je pense que pour le reste (détermination des paires et impaires) je
continuerai comme je fais, cad du bidouillage à regarder le dernier chiffre
et utiliser des fonctions SI imbriquées pour voir s'il s'agit de 2, 4, 6, 8
ou 0.... si vous avez qqch de plus élégant n'hésitez pas !!

merci


j'envisage bien quelques solutions, mais bon.

Acceptes-tu les macros dans ton fichier ? Y a-t-il parfois plusieurs lettres
?

s'il n'y a qu'une lettre après les adresses il doit bien y avoir une formule
pour supprimer la lettre, du type (en supposant que ton n° de rue soit dans
la colonne B et que l'on traite la ligne 2)

= si(esterreur(droite(B2;1)+0);gauche(B2;NBcar(B2)-1)+0;B2)

et c'est sur cette nouvelle colonne que tu calcules tes solutions....

S'il peut y avoir plusieurs lettres, le mieux est d'utiliser des macros je
pense.


"vincent" wrote in message
news:
bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue soit
P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou 1C
ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais
cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !! :)







Avatar
vincent
ta formule est très intéressante !!

néanmoins, le caractère simple ou double de la parité est définit par des
tirets entre les chiffres de la dernière colonne. j'ai donc mis au point une
formule allant vvérifier si un double tiret existait dans la cellule, si c le
cas, je sais que les adresses peuvent etre paire et impaire. Sinon il me
reste à définir si les numéros sont pair ou impaires.

je me doute bien que tout ceci n'est pas clair mais c un peu le bazard :)


bonjour,

un truc bien compliqué qui suit une loi :

1 parité et impaire: 1P/P
1 parité et paire: 1P/I
2 parités et dernier numéro pair: 2P/P
2 parités et dernier numéro impair: 2P/I

ex: si en A1 tu écris 1A-56G tu obtiendras comme résultat de la formule 2P/P
mais si tu écris 2A-56G tu obtiendras la même chose car je n'ai testé que la
parité du dernier nombre, ta demande ne précisant pas si les 2 nombres
pouvaient être de parité différente.

=CHOISIR(SI(ESTERREUR(TROUVE("-";DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1));1));3;TROUVE("-";DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1));1))+MOD(GAUCHE(DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1)-1);NBCAR(DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1)-1))-1);2);"1P/P";"1P/I";"2P/P";"2P/I")

A+


bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue soit P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou 1C ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !! :)




Avatar
Dude
eh bien pour ce qui est de la parité, tu peux utiliser la fonction "MOD"
avec 2 en diviseur

par exemple, si tu reprends la formule que je t'ai donnée tout à l'heure :

=
si(mod(si(esterreur(droite(B2;1)+0);gauche(B2;NBcar(B2)-1)+0;B2);2)=0;"P";"I")


"vincent" wrote in message
news:
Merci Dude !

déjà une épine hors de mon pied, ta formule (à laquelle je ne comprend
pour
le moment non plus :) ) me permet d'isoler un chiffre !

je pense que pour le reste (détermination des paires et impaires) je
continuerai comme je fais, cad du bidouillage à regarder le dernier
chiffre
et utiliser des fonctions SI imbriquées pour voir s'il s'agit de 2, 4, 6,
8
ou 0.... si vous avez qqch de plus élégant n'hésitez pas !!

merci


j'envisage bien quelques solutions, mais bon.

Acceptes-tu les macros dans ton fichier ? Y a-t-il parfois plusieurs
lettres
?

s'il n'y a qu'une lettre après les adresses il doit bien y avoir une
formule
pour supprimer la lettre, du type (en supposant que ton n° de rue soit
dans
la colonne B et que l'on traite la ligne 2)

= si(esterreur(droite(B2;1)+0);gauche(B2;NBcar(B2)-1)+0;B2)

et c'est sur cette nouvelle colonne que tu calcules tes solutions....

S'il peut y avoir plusieurs lettres, le mieux est d'utiliser des macros
je
pense.


"vincent" wrote in message
news:
bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue
soit
P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou
1C
ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais
cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !!
:)









Avatar
AV
j'ai par ailleurs essayer de la tester mais apparement il ya une erreur dans
la formule... :s


Non, il n'y a pas d'erreur....
Soit tu as mal recopié, soit tu n'as pas validé matriciellement...
Voir exemple là :
http://cjoint.com/?dblJbZX8GU

AV

Avatar
vincent
dude ta formule est incroyable !!!

j'ai rien compris mais ca fonctionne parfaitement !!!

merci bcp, tournée générale pour toi :)


eh bien pour ce qui est de la parité, tu peux utiliser la fonction "MOD"
avec 2 en diviseur

par exemple, si tu reprends la formule que je t'ai donnée tout à l'heure :

=
si(mod(si(esterreur(droite(B2;1)+0);gauche(B2;NBcar(B2)-1)+0;B2);2)=0;"P";"I")


"vincent" wrote in message
news:
Merci Dude !

déjà une épine hors de mon pied, ta formule (à laquelle je ne comprend
pour
le moment non plus :) ) me permet d'isoler un chiffre !

je pense que pour le reste (détermination des paires et impaires) je
continuerai comme je fais, cad du bidouillage à regarder le dernier
chiffre
et utiliser des fonctions SI imbriquées pour voir s'il s'agit de 2, 4, 6,
8
ou 0.... si vous avez qqch de plus élégant n'hésitez pas !!

merci


j'envisage bien quelques solutions, mais bon.

Acceptes-tu les macros dans ton fichier ? Y a-t-il parfois plusieurs
lettres
?

s'il n'y a qu'une lettre après les adresses il doit bien y avoir une
formule
pour supprimer la lettre, du type (en supposant que ton n° de rue soit
dans
la colonne B et que l'on traite la ligne 2)

= si(esterreur(droite(B2;1)+0);gauche(B2;NBcar(B2)-1)+0;B2)

et c'est sur cette nouvelle colonne que tu calcules tes solutions....

S'il peut y avoir plusieurs lettres, le mieux est d'utiliser des macros
je
pense.


"vincent" wrote in message
news:
bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue
soit
P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou
1C
ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais
cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !!
:)














Avatar
anonymousA
c'est très exactement ce que fait cette formule. Par rapport à mon précédent
POST, je dirais que cette formule au fond ( si j'ai bien compris le problème
) résout tous les cas.
En effet, elle détermine s'il y a 2 tirets ou un seul .
dans le 1er cas, elle t'indique 1P ( dans le résultat 1P/P ou 1P/I) pour la
parité unique et /P ou /I pour indiquer si c'est pair ou impair.dans le 2nd
cas, elle t'indique si il y a 2 parités auquel cas, on se fout de savoir si
le 1er chiffre ( ou le 2nd) est pair et si son alter égo, le dernier (ou le
1er chifre) est impair ou pair puisque par définition quand il y a 2 tirets ,
il y a forcément des N° pairs et impairs dans la rue.

A+



ta formule est très intéressante !!

néanmoins, le caractère simple ou double de la parité est définit par des
tirets entre les chiffres de la dernière colonne. j'ai donc mis au point une
formule allant vvérifier si un double tiret existait dans la cellule, si c le
cas, je sais que les adresses peuvent etre paire et impaire. Sinon il me
reste à définir si les numéros sont pair ou impaires.

je me doute bien que tout ceci n'est pas clair mais c un peu le bazard :)


bonjour,

un truc bien compliqué qui suit une loi :

1 parité et impaire: 1P/P
1 parité et paire: 1P/I
2 parités et dernier numéro pair: 2P/P
2 parités et dernier numéro impair: 2P/I

ex: si en A1 tu écris 1A-56G tu obtiendras comme résultat de la formule 2P/P
mais si tu écris 2A-56G tu obtiendras la même chose car je n'ai testé que la
parité du dernier nombre, ta demande ne précisant pas si les 2 nombres
pouvaient être de parité différente.

=CHOISIR(SI(ESTERREUR(TROUVE("-";DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1));1));3;TROUVE("-";DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1));1))+MOD(GAUCHE(DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1)-1);NBCAR(DROITE(A1;NBCAR(A1)-TROUVE("-";A1;1)-1))-1);2);"1P/P";"1P/I";"2P/P";"2P/I")

A+


bonjour,

voici la colle du jour qui me tient en haleine depuis un petit bout de
tps... je vais tenter de tout expliquer clairement.
j'ai un fichier d'adresses avec 4 champs :
- rue
- numéro d'adresse maximum
- numéro d'adresse minimum
- intervalle et information pair ou impaire (ex : 1-3 veut dire que
l'intervalle d'adresse va de 1 à 3 mais comprend des numéros paire et
impaire; 1--3 veut dire que l'intervalle d'adresse va de 1 à 3 mais
uniquement avec un seul type de parité et ici impaire en l'occurence)

mon but est d'arriver à obtenir un champ qui me dise pour chaque rue soit P
pour paire, soit I pour Impaire, soit PI pour les deux.

Le probleme est que les numéros d'adresse sont parfois du style 40B ou 1C ou
118D ! donc on ne peut les traiter que comme des nombres !!

j'essaie de me débarrasser de cette lettre pour mesurer la parité mais cela
me demande d'effectuer des conditions multiples qui ne fonctionnne pas
vraiment avec excell

par ailleur il me faudrait aussi créer un champ d'adresse max et un
d'adresse min mais sans les adresses "lettrées"...

merci de vos réflexions si vous avez un peu de tps à perdre pour moi !! :)






1 2