Bonjour à tous,
Merci à Jacqouille pour sa réponse sur compter les doublons
La formule matricielle qu'il me conseille
=SOMME(N(FREQUENCE(C4:C51;C4:C51)>0))
fonctionne parfaitement, sauf quand j'ai une valeur texte
Je m'explique, j'ai une colonne avec une série de numéros de commandes
4364,4365,4365,43666-7, 4366-7
La formule devrait me compter 3 alors qu'elle me compte 2
Elle ignore les valeurs textes parcequ'il y a un tiret
Comment faire pour compter les valeurs uniques qui prenne en compte les
valeurs texte ?
Merci
Nous serons vite le 1er Nov. Je vais raviver la flemme du souvenir chez les anciens. -) A la lecture de tes réponses dans ce fil, je crois que les vacances t'on profité. Tes explik sont dignes du Parthénon Excellien de la mère Flo. Mille et deux mercis et bonne fin de WE
-- Bien amicalmement, Vivement conseillés: http://www.excelabo.net http://jacxl.free.fr/mpfe/trombino.html http://dj.joss.free.fr/netiquet.htm http://frederic.sigonneau.free.fr/
Jacquouille.
"AV" a écrit dans le message de news:
Poétiquement parlant, la première cel vide ne devrait-elle pas être considérée comme unique et les suivantes comme doux blonds? -)
C'est comme on veut : http://cjoint.com/?itjHbgEgVk
PS Il ne faudra pas oublier de relancer les cotisations pour la SPA.
Hum... il en reste si peu qui savent encore ce que c'est ... Et puis comme je suis parti avec la caisse, je ne souhaiterais pas que...
AV
Nous serons vite le 1er Nov. Je vais raviver la flemme du souvenir chez les
anciens. -)
A la lecture de tes réponses dans ce fil, je crois que les vacances t'on
profité. Tes explik sont dignes du Parthénon Excellien de la mère Flo.
Mille et deux mercis et bonne fin de WE
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/
Jacquouille.
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de news:
OkhTw5BxGHA.1288@TK2MSFTNGP02.phx.gbl...
Poétiquement parlant, la première cel vide ne devrait-elle pas être
considérée comme unique et les suivantes comme doux blonds? -)
C'est comme on veut :
http://cjoint.com/?itjHbgEgVk
PS Il ne faudra pas oublier de relancer les cotisations pour la SPA.
Hum... il en reste si peu qui savent encore ce que c'est ...
Et puis comme je suis parti avec la caisse, je ne souhaiterais pas que...
Nous serons vite le 1er Nov. Je vais raviver la flemme du souvenir chez les anciens. -) A la lecture de tes réponses dans ce fil, je crois que les vacances t'on profité. Tes explik sont dignes du Parthénon Excellien de la mère Flo. Mille et deux mercis et bonne fin de WE
-- Bien amicalmement, Vivement conseillés: http://www.excelabo.net http://jacxl.free.fr/mpfe/trombino.html http://dj.joss.free.fr/netiquet.htm http://frederic.sigonneau.free.fr/
Jacquouille.
"AV" a écrit dans le message de news:
Poétiquement parlant, la première cel vide ne devrait-elle pas être considérée comme unique et les suivantes comme doux blonds? -)
C'est comme on veut : http://cjoint.com/?itjHbgEgVk
PS Il ne faudra pas oublier de relancer les cotisations pour la SPA.
Hum... il en reste si peu qui savent encore ce que c'est ... Et puis comme je suis parti avec la caisse, je ne souhaiterais pas que...
AV
Michir
Jacky Merci pour ton dernier message (je le trouve en rentrant de we) Mille excuses, effectivement dans mes chiffres j'ai fait une erreur sur 43666-7, je voulais écrire 4366-7. La formule devrait ainsi me trouver trois valeurs uniques Merci encore pour ton aide Michel
Et poutant, je n'ai fait que reprendre tes chiffres
Je m'explique, j'ai une colonne avec une série de numéros de commandes 4364,4365,4365,43666-7, 4366-7
Mais cela ne change rien au problème.
JJ
"Michir" a écrit dans le message de news:44e61b85$0$1025$
En A3, tu as mis un 6 de trop Michel
RE...
Cela ne fonctionne pas Jacky, c'est même encore plus faux puisque cela me renvoie 2 au lieu de 5 sur mon exemple
Ah!! bon.... Avec tes chiffres comme exemple: Voir ici: http://cjoint.com/?isvIPTbRkE JJ
Jacky
Merci pour ton dernier message (je le trouve en rentrant de we)
Mille excuses, effectivement dans mes chiffres j'ai fait une erreur sur
43666-7, je voulais écrire 4366-7. La formule devrait ainsi me trouver
trois valeurs uniques
Merci encore pour ton aide
Michel
Et poutant, je n'ai fait que reprendre tes chiffres
Je m'explique, j'ai une colonne avec une série de numéros de commandes
4364,4365,4365,43666-7, 4366-7
Mais cela ne change rien au problème.
JJ
"Michir" <michir1789@wanadoo.fr> a écrit dans le message de
news:44e61b85$0$1025$ba4acef3@news.orange.fr...
En A3, tu as mis un 6 de trop
Michel
RE...
Cela ne fonctionne pas Jacky, c'est même encore plus faux puisque cela
me renvoie 2 au lieu de 5 sur mon exemple
Ah!! bon....
Avec tes chiffres comme exemple:
Voir ici:
http://cjoint.com/?isvIPTbRkE
JJ
Jacky Merci pour ton dernier message (je le trouve en rentrant de we) Mille excuses, effectivement dans mes chiffres j'ai fait une erreur sur 43666-7, je voulais écrire 4366-7. La formule devrait ainsi me trouver trois valeurs uniques Merci encore pour ton aide Michel
Et poutant, je n'ai fait que reprendre tes chiffres
Je m'explique, j'ai une colonne avec une série de numéros de commandes 4364,4365,4365,43666-7, 4366-7
Mais cela ne change rien au problème.
JJ
"Michir" a écrit dans le message de news:44e61b85$0$1025$
En A3, tu as mis un 6 de trop Michel
RE...
Cela ne fonctionne pas Jacky, c'est même encore plus faux puisque cela me renvoie 2 au lieu de 5 sur mon exemple
Ah!! bon.... Avec tes chiffres comme exemple: Voir ici: http://cjoint.com/?isvIPTbRkE JJ
Jacky
Re.... Je viens de reprendre, la lecture des News.
Merci beaucoup Alain. C'est vraiment gentil de ta part. Vu comme cela, cela parait limpide et je pense avoir compris. Je vais essayer de l'adapter à mon problème du même genre.
La formule n'ayant de sens que par rapport à la question initiale, rappel de
celle-ci (fil du 18/08/2006 14:13) : "Trouver le 14ième jour (Xième) après une date D (A1 = 15/06/2006)" "Si le Xième jour après D tombe un samedi ou un dimanche, ou un jour au-delà du
28° du mois ou un jour férié (plage de référence pour les jours fériés), ajouter
1 et cela autant de fois que nécessaire."
L 'idée est donc de créer une série de jours au-delà du Xième demandé et de
retenir le 1° qui répond aux exigences Tout d'abord, pour des commodités de tests, remplacer 1000 par 100 dans la formule Dans la formule, le "noud de la chose" est la partie $A$1+LIGNE(INDIRECT("14:100")) C 'est ce qui permet de créer une matrice des jours qui vont de A1 + 14 à A1 +
100 Ca donne : {38897;38898;38899;38900;38901;38902;..;38983} Pour visualiser ce résultat intermédiaire, sélectionner dans la barre de formule
$A$1+LIGNE(INDIRECT("14:100")) et faire F9
Au travers de 3 tests logiques, on va chercher quel est la 1° date (le MIN) de
cette série qui respecte, simultanément (fonction ET), les 3 conditions indiquées Rappel : Dans une formule matricielle, on remplace la fonction ET par l'opérateur *
1° test : le jour ne doit pas être > au 28° du mois (JOUR($A$1+LIGNE(INDIRECT("14:100")))<29) Résultat intermédiaire (visualiser par sélection et F9) : {FAUX;FAUX;VRAI;VRAI;VRAI;VRAI;...;VRAI}
2° test : le jour ne doit pas être samedi ou dimanche (JOURSEM($A$1+LIGNE(INDIRECT("14:100"));2)<6) Résultat intermédiaire (visualiser par sélection et F9) : {VRAI;VRAI;FAUX;FAUX;VRAI;VRAI;...;FAUX}
3° test : le jour ne doit pas être un jour férié (ESTNA((EQUIV($A$1+LIGNE(INDIRECT("14:100"));JrF; 0)))) Résultat intermédiaire (visualiser par sélection et F9) : {VRAI;VRAI;VRAI;VRAI;FAUX;VRAI;...;VRAI}
Résultat intermédiaire des 3 tests simultanés (visualiser par sélection et F9)
: {FAUX;FAUX;VRAI;VRAI;VRAI;VRAI;...;VRAI} * {VRAI;VRAI;FAUX;FAUX;VRAI;VRAI;...;FAUX} * {VRAI;VRAI;VRAI;VRAI;FAUX;VRAI;...;VRAI Dans la formule matricielle, chaque élément de chacune des matrices étant multiplié par les 2 autres, le résultat renvoyé par XL est : {0;0;0;0;0;1;..;0}
On voit là, que le 6° jour après la date D + 14 est le 1° qui répond aux 3 conditions simultanées
La fonction SI renverra le "bon" jour en fonction de ces tests logiques : SI(Tests Logiques = 1 ; Dates) Résultat intermédiaire de la fonction SI : SI({0;0;0;0;0;1;..;0};{38897;38898;38899;38900;38901;38902;..;38983}) donne : ({FAUX;FAUX;FAUX;FAUX;FAUX;38902;...;FAUX}
La fonction MIN permet, ensuite, de ne retenir que la 1° valeur numérique de la
Résultat : 38902 N° de série qui correspond au mardi 04/07/06 (le 03/07/06 est défini comme férié)
http://cjoint.com/?iuibkl1kXq
AV
Re....
Je viens de reprendre, la lecture des News.
Merci beaucoup Alain.
C'est vraiment gentil de ta part.
Vu comme cela, cela parait limpide et je pense avoir compris.
Je vais essayer de l'adapter à mon problème du même genre.
Salutations
JJ
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de
news:u8khU4BxGHA.1888@TK2MSFTNGP03.phx.gbl...
La formule n'ayant de sens que par rapport à la question initiale, rappel
de
celle-ci (fil du 18/08/2006 14:13) :
"Trouver le 14ième jour (Xième) après une date D (A1 = 15/06/2006)"
"Si le Xième jour après D tombe un samedi ou un dimanche, ou un jour
au-delà du
28° du mois ou un jour férié (plage de référence pour les jours fériés),
ajouter
1 et cela autant de fois que nécessaire."
L 'idée est donc de créer une série de jours au-delà du Xième demandé et
de
retenir le 1° qui répond aux exigences
Tout d'abord, pour des commodités de tests, remplacer 1000 par 100 dans la
formule
Dans la formule, le "noud de la chose" est la partie
$A$1+LIGNE(INDIRECT("14:100"))
C 'est ce qui permet de créer une matrice des jours qui vont de A1 + 14 à
A1 +
100
Ca donne : {38897;38898;38899;38900;38901;38902;..;38983}
Pour visualiser ce résultat intermédiaire, sélectionner dans la barre de
formule
$A$1+LIGNE(INDIRECT("14:100")) et faire F9
Au travers de 3 tests logiques, on va chercher quel est la 1° date (le
MIN) de
cette série qui respecte, simultanément (fonction ET), les 3 conditions
indiquées
Rappel : Dans une formule matricielle, on remplace la fonction ET par
l'opérateur *
1° test : le jour ne doit pas être > au 28° du mois
(JOUR($A$1+LIGNE(INDIRECT("14:100")))<29)
Résultat intermédiaire (visualiser par sélection et F9) :
{FAUX;FAUX;VRAI;VRAI;VRAI;VRAI;...;VRAI}
2° test : le jour ne doit pas être samedi ou dimanche
(JOURSEM($A$1+LIGNE(INDIRECT("14:100"));2)<6)
Résultat intermédiaire (visualiser par sélection et F9) :
{VRAI;VRAI;FAUX;FAUX;VRAI;VRAI;...;FAUX}
3° test : le jour ne doit pas être un jour férié
(ESTNA((EQUIV($A$1+LIGNE(INDIRECT("14:100"));JrF; 0))))
Résultat intermédiaire (visualiser par sélection et F9) :
{VRAI;VRAI;VRAI;VRAI;FAUX;VRAI;...;VRAI}
Résultat intermédiaire des 3 tests simultanés (visualiser par sélection et
F9)
:
{FAUX;FAUX;VRAI;VRAI;VRAI;VRAI;...;VRAI} *
{VRAI;VRAI;FAUX;FAUX;VRAI;VRAI;...;FAUX} *
{VRAI;VRAI;VRAI;VRAI;FAUX;VRAI;...;VRAI
Dans la formule matricielle, chaque élément de chacune des matrices étant
multiplié par les 2 autres, le résultat renvoyé par XL est :
{0;0;0;0;0;1;..;0}
On voit là, que le 6° jour après la date D + 14 est le 1° qui répond aux 3
conditions simultanées
La fonction SI renverra le "bon" jour en fonction de ces tests logiques :
SI(Tests Logiques = 1 ; Dates)
Résultat intermédiaire de la fonction SI :
SI({0;0;0;0;0;1;..;0};{38897;38898;38899;38900;38901;38902;..;38983})
donne : ({FAUX;FAUX;FAUX;FAUX;FAUX;38902;...;FAUX}
La fonction MIN permet, ensuite, de ne retenir que la 1° valeur numérique
de la
Re.... Je viens de reprendre, la lecture des News.
Merci beaucoup Alain. C'est vraiment gentil de ta part. Vu comme cela, cela parait limpide et je pense avoir compris. Je vais essayer de l'adapter à mon problème du même genre.
La formule n'ayant de sens que par rapport à la question initiale, rappel de
celle-ci (fil du 18/08/2006 14:13) : "Trouver le 14ième jour (Xième) après une date D (A1 = 15/06/2006)" "Si le Xième jour après D tombe un samedi ou un dimanche, ou un jour au-delà du
28° du mois ou un jour férié (plage de référence pour les jours fériés), ajouter
1 et cela autant de fois que nécessaire."
L 'idée est donc de créer une série de jours au-delà du Xième demandé et de
retenir le 1° qui répond aux exigences Tout d'abord, pour des commodités de tests, remplacer 1000 par 100 dans la formule Dans la formule, le "noud de la chose" est la partie $A$1+LIGNE(INDIRECT("14:100")) C 'est ce qui permet de créer une matrice des jours qui vont de A1 + 14 à A1 +
100 Ca donne : {38897;38898;38899;38900;38901;38902;..;38983} Pour visualiser ce résultat intermédiaire, sélectionner dans la barre de formule
$A$1+LIGNE(INDIRECT("14:100")) et faire F9
Au travers de 3 tests logiques, on va chercher quel est la 1° date (le MIN) de
cette série qui respecte, simultanément (fonction ET), les 3 conditions indiquées Rappel : Dans une formule matricielle, on remplace la fonction ET par l'opérateur *
1° test : le jour ne doit pas être > au 28° du mois (JOUR($A$1+LIGNE(INDIRECT("14:100")))<29) Résultat intermédiaire (visualiser par sélection et F9) : {FAUX;FAUX;VRAI;VRAI;VRAI;VRAI;...;VRAI}
2° test : le jour ne doit pas être samedi ou dimanche (JOURSEM($A$1+LIGNE(INDIRECT("14:100"));2)<6) Résultat intermédiaire (visualiser par sélection et F9) : {VRAI;VRAI;FAUX;FAUX;VRAI;VRAI;...;FAUX}
3° test : le jour ne doit pas être un jour férié (ESTNA((EQUIV($A$1+LIGNE(INDIRECT("14:100"));JrF; 0)))) Résultat intermédiaire (visualiser par sélection et F9) : {VRAI;VRAI;VRAI;VRAI;FAUX;VRAI;...;VRAI}
Résultat intermédiaire des 3 tests simultanés (visualiser par sélection et F9)
: {FAUX;FAUX;VRAI;VRAI;VRAI;VRAI;...;VRAI} * {VRAI;VRAI;FAUX;FAUX;VRAI;VRAI;...;FAUX} * {VRAI;VRAI;VRAI;VRAI;FAUX;VRAI;...;VRAI Dans la formule matricielle, chaque élément de chacune des matrices étant multiplié par les 2 autres, le résultat renvoyé par XL est : {0;0;0;0;0;1;..;0}
On voit là, que le 6° jour après la date D + 14 est le 1° qui répond aux 3 conditions simultanées
La fonction SI renverra le "bon" jour en fonction de ces tests logiques : SI(Tests Logiques = 1 ; Dates) Résultat intermédiaire de la fonction SI : SI({0;0;0;0;0;1;..;0};{38897;38898;38899;38900;38901;38902;..;38983}) donne : ({FAUX;FAUX;FAUX;FAUX;FAUX;38902;...;FAUX}
La fonction MIN permet, ensuite, de ne retenir que la 1° valeur numérique de la