=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonjour, je désire simplifier cette formule qui fonctionne très bien,
et qui gère les tickets, mais comme je dois la recopier sur un grand
nombre de lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonjour, je désire simplifier cette formule qui fonctionne très bien,
et qui gère les tickets, mais comme je dois la recopier sur un grand
nombre de lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonjour, je désire simplifier cette formule qui fonctionne très bien,
et qui gère les tickets, mais comme je dois la recopier sur un grand
nombre de lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous une
autre forme dans laquelle aucun ET() n'est utilisé : tu testes une par une
les conditions B3="", ensuite C3="", puis B3>C3. Ca rend la formule plus
compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible des
deux
premières conditions, il te faut une réponse différente (ou presque : 4
configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Crel wrote:Bonjour, je désire simplifier cette formule qui fonctionne très bien,
et qui gère les tickets, mais comme je dois la recopier sur un grand
nombre de lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous une
autre forme dans laquelle aucun ET() n'est utilisé : tu testes une par une
les conditions B3="", ensuite C3="", puis B3>C3. Ca rend la formule plus
compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible des
deux
premières conditions, il te faut une réponse différente (ou presque : 4
configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Crel wrote:
Bonjour, je désire simplifier cette formule qui fonctionne très bien,
et qui gère les tickets, mais comme je dois la recopier sur un grand
nombre de lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous une
autre forme dans laquelle aucun ET() n'est utilisé : tu testes une par une
les conditions B3="", ensuite C3="", puis B3>C3. Ca rend la formule plus
compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible des
deux
premières conditions, il te faut une réponse différente (ou presque : 4
configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Crel wrote:Bonjour, je désire simplifier cette formule qui fonctionne très bien,
et qui gère les tickets, mais comme je dois la recopier sur un grand
nombre de lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonjour, je désire simplifier cette formule qui fonctionne très bien, et
qui
gère les tickets, mais comme je dois la recopier sur un grand nombre de
lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonjour, je désire simplifier cette formule qui fonctionne très bien, et
qui
gère les tickets, mais comme je dois la recopier sur un grand nombre de
lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonjour, je désire simplifier cette formule qui fonctionne très bien, et
qui
gère les tickets, mais comme je dois la recopier sur un grand nombre de
lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Mille merci Nicolas, concernant le ET, tu as raison, mais je
n'arrivai pas à la simplifier, si cela ne te dérange pas peux-tu
m'expliquer ce choix dans l'écriture ?
Patrick
Nicolas B." a écrit dans le message
de news:Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous
une autre forme dans laquelle aucun ET() n'est utilisé : tu testes
une par une les conditions B3="", ensuite C3="", puis B3>C3. Ca rend
la formule plus compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible
des deux premières conditions, il te faut une réponse différente (ou
presque : 4 configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Mille merci Nicolas, concernant le ET, tu as raison, mais je
n'arrivai pas à la simplifier, si cela ne te dérange pas peux-tu
m'expliquer ce choix dans l'écriture ?
Patrick
Nicolas B." <nicolas.bruot@adresse.bidon.com> a écrit dans le message
de news: erGsXtbkDHA.360@TK2MSFTNGP12.phx.gbl...
Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous
une autre forme dans laquelle aucun ET() n'est utilisé : tu testes
une par une les conditions B3="", ensuite C3="", puis B3>C3. Ca rend
la formule plus compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible
des deux premières conditions, il te faut une réponse différente (ou
presque : 4 configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Mille merci Nicolas, concernant le ET, tu as raison, mais je
n'arrivai pas à la simplifier, si cela ne te dérange pas peux-tu
m'expliquer ce choix dans l'écriture ?
Patrick
Nicolas B." a écrit dans le message
de news:Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous
une autre forme dans laquelle aucun ET() n'est utilisé : tu testes
une par une les conditions B3="", ensuite C3="", puis B3>C3. Ca rend
la formule plus compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible
des deux premières conditions, il te faut une réponse différente (ou
presque : 4 configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Si on s'intéresse aux deux premières conditions de la formule, tu veux que
:
Si C3="" et B3="" alors 0
Si C3="" et B3<>"" alors 1
Si C3<>"" et B3="" alors Erreur
Si C3<>"" et B3<>"" alors voir l'autre condition (B3>C3)
Soit le tableau suivant :
C3="" B3="" Résultat
VRAI VRAI 0
VRAI FAUX 1
FAUX VRAI Erreur
FAUX FAUX voir l'autre condition
Tu peux t'aperçevoir que toutes les combinaisons de VRAI/FAUX entre les
deux
conditions sont présentes (il y en a 2^(nombre de conditions), donc ici
2^2=4), et il faut un résultat différent pour chacune.
Il est difficile de prendre en compte tous les cas possibles en utilisant
des ET(). Un petit exemple :
Si tu commence par =SI(ET(B3="";C3="");..., cela ne t'avance à rien, car
il
faudra bien différiencier à un autre endroit de la formule, lorsque cette
première condition est fausse, si c'est B3 ou C3 qui est différent de "".
Si dans le tableau précédent, tu n'avais que deux résultats différents
possibles, tu pourrais par contre forcément simplifier ta formule.
Voilà pour l'explication (j'espère qu'elle est assez claire).
Bonne chance
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Crel wrote:Mille merci Nicolas, concernant le ET, tu as raison, mais je
n'arrivai pas à la simplifier, si cela ne te dérange pas peux-tu
m'expliquer ce choix dans l'écriture ?
Patrick
Nicolas B." a écrit dans le message
de news:Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous
une autre forme dans laquelle aucun ET() n'est utilisé : tu testes
une par une les conditions B3="", ensuite C3="", puis B3>C3. Ca rend
la formule plus compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible
des deux premières conditions, il te faut une réponse différente (ou
presque : 4 configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Si on s'intéresse aux deux premières conditions de la formule, tu veux que
:
Si C3="" et B3="" alors 0
Si C3="" et B3<>"" alors 1
Si C3<>"" et B3="" alors Erreur
Si C3<>"" et B3<>"" alors voir l'autre condition (B3>C3)
Soit le tableau suivant :
C3="" B3="" Résultat
VRAI VRAI 0
VRAI FAUX 1
FAUX VRAI Erreur
FAUX FAUX voir l'autre condition
Tu peux t'aperçevoir que toutes les combinaisons de VRAI/FAUX entre les
deux
conditions sont présentes (il y en a 2^(nombre de conditions), donc ici
2^2=4), et il faut un résultat différent pour chacune.
Il est difficile de prendre en compte tous les cas possibles en utilisant
des ET(). Un petit exemple :
Si tu commence par =SI(ET(B3="";C3="");..., cela ne t'avance à rien, car
il
faudra bien différiencier à un autre endroit de la formule, lorsque cette
première condition est fausse, si c'est B3 ou C3 qui est différent de "".
Si dans le tableau précédent, tu n'avais que deux résultats différents
possibles, tu pourrais par contre forcément simplifier ta formule.
Voilà pour l'explication (j'espère qu'elle est assez claire).
Bonne chance
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Crel wrote:
Mille merci Nicolas, concernant le ET, tu as raison, mais je
n'arrivai pas à la simplifier, si cela ne te dérange pas peux-tu
m'expliquer ce choix dans l'écriture ?
Patrick
Nicolas B." <nicolas.bruot@adresse.bidon.com> a écrit dans le message
de news: erGsXtbkDHA.360@TK2MSFTNGP12.phx.gbl...
Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous
une autre forme dans laquelle aucun ET() n'est utilisé : tu testes
une par une les conditions B3="", ensuite C3="", puis B3>C3. Ca rend
la formule plus compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible
des deux premières conditions, il te faut une réponse différente (ou
presque : 4 configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Si on s'intéresse aux deux premières conditions de la formule, tu veux que
:
Si C3="" et B3="" alors 0
Si C3="" et B3<>"" alors 1
Si C3<>"" et B3="" alors Erreur
Si C3<>"" et B3<>"" alors voir l'autre condition (B3>C3)
Soit le tableau suivant :
C3="" B3="" Résultat
VRAI VRAI 0
VRAI FAUX 1
FAUX VRAI Erreur
FAUX FAUX voir l'autre condition
Tu peux t'aperçevoir que toutes les combinaisons de VRAI/FAUX entre les
deux
conditions sont présentes (il y en a 2^(nombre de conditions), donc ici
2^2=4), et il faut un résultat différent pour chacune.
Il est difficile de prendre en compte tous les cas possibles en utilisant
des ET(). Un petit exemple :
Si tu commence par =SI(ET(B3="";C3="");..., cela ne t'avance à rien, car
il
faudra bien différiencier à un autre endroit de la formule, lorsque cette
première condition est fausse, si c'est B3 ou C3 qui est différent de "".
Si dans le tableau précédent, tu n'avais que deux résultats différents
possibles, tu pourrais par contre forcément simplifier ta formule.
Voilà pour l'explication (j'espère qu'elle est assez claire).
Bonne chance
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Crel wrote:Mille merci Nicolas, concernant le ET, tu as raison, mais je
n'arrivai pas à la simplifier, si cela ne te dérange pas peux-tu
m'expliquer ce choix dans l'écriture ?
Patrick
Nicolas B." a écrit dans le message
de news:Salut Crel,
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Cette formule n'est pas facile à simplifier. Tu peux la mettre sous
une autre forme dans laquelle aucun ET() n'est utilisé : tu testes
une par une les conditions B3="", ensuite C3="", puis B3>C3. Ca rend
la formule plus compréhensible et tu gagne 17 caractères :-)
=SI(B3="";SI(C3="";0;"ERREUR");SI(C3="";1;SI(B3>C3;"ERREUR";C3-B3+1)))
Le ET n'est ici pas conseillé, car à chaque configuration possible
des deux premières conditions, il te faut une réponse différente (ou
presque : 4 configurations possibles et 3 résultats différents).
A+
--
Nicolas B.
Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC
Bonsoir,
Pas simple, ta formule.
Tout d'abord, une question : si "ça freine un peu", c'est que tu dois
traiter un TRES grand nombre de lignes, et que tu dois le faire
régulièrement. Ne serait-il alors pas plus judicieux d'effectuer ce
traitement avec un autre outil automatisant ce calcul, comme Access ou
l'outil qui te génère ces données.
Ensuite, il possible qu'Excel interprète les formules de manière
récursive.
Dans le cas d'un "Si(Condition;Alors;Sinon)", si la première condition est
vérifiée, il ne perd pas de temps à interpréter le Sinon. Je te conseille
donc de tester ta formule en l'adaptant à tes données. Il est à supposer
que
les erreurs sont les cas les moins fréquents. Mais dans ta formule
actuelle,
avant d'arriver au calcul de différence, il faut passer par 3 "Si". En
mettant la condition "Pas d'erreur" en premier, tu peux donc peut-être
gagner du temps.
Les différents cas possibles sont les suivants (si je ne me suis pas
trompé)
:
b3 c3 Résultat
"" "" 0
"" y Erreur
x "" 1
x y si(x<y;y-x+1;"Erreur")
Il faudrait alors adapter la formule en fonction de la fréquence des cas
possibles.
Je te propose deux exemples :
=si(et(b3<>"";c3<>"");si(b3<Ã;c3-b3+1;"Erreur");si(b3<>"";1;si(c3="";0;"Er
reur")))
avec cette formule, on passe 2 "Si" avant d'arriver au calcul, et le cas 0
est supposé moins fréquent que les cas 1.
=si(et(b3<>"";c3<>"";b3<Ã);c3-b3+1;si(et(b3="";c3="");0;si(et(c3="";b3<>""
);0;"Erreur")))
avec cette formule, on ne passe qu'un "Si" avant d'arriver au calcul, et
le
cas 1 est supposé plus fréquent que le cas 0.
Mais honnêtement, je ne pense pas que cela fasse gagner des milliers
d'heures au traitement.
Pour finir, si tu n'as pas encore pensé à cela : évite de travailler en
réseau (copie ton fichier sur ton disque dur : les accès disque sont plus
rapides que les accès réseau), pense à augmenter la mémoire vive de ton
ordinateur (les calculs sont plus rapides quand le fichier complet peut
être
chargé en mémoire sans swap sur le disque), voir à changer ton ordinateur.
Dis-moi ce qu'il en est.
Pierre.
"Crel" a écrit dans le
message
de news:Bonjour, je désire simplifier cette formule qui fonctionne très bien, et
quigère les tickets, mais comme je dois la recopier sur un grand nombre de
lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonsoir,
Pas simple, ta formule.
Tout d'abord, une question : si "ça freine un peu", c'est que tu dois
traiter un TRES grand nombre de lignes, et que tu dois le faire
régulièrement. Ne serait-il alors pas plus judicieux d'effectuer ce
traitement avec un autre outil automatisant ce calcul, comme Access ou
l'outil qui te génère ces données.
Ensuite, il possible qu'Excel interprète les formules de manière
récursive.
Dans le cas d'un "Si(Condition;Alors;Sinon)", si la première condition est
vérifiée, il ne perd pas de temps à interpréter le Sinon. Je te conseille
donc de tester ta formule en l'adaptant à tes données. Il est à supposer
que
les erreurs sont les cas les moins fréquents. Mais dans ta formule
actuelle,
avant d'arriver au calcul de différence, il faut passer par 3 "Si". En
mettant la condition "Pas d'erreur" en premier, tu peux donc peut-être
gagner du temps.
Les différents cas possibles sont les suivants (si je ne me suis pas
trompé)
:
b3 c3 Résultat
"" "" 0
"" y Erreur
x "" 1
x y si(x<y;y-x+1;"Erreur")
Il faudrait alors adapter la formule en fonction de la fréquence des cas
possibles.
Je te propose deux exemples :
=si(et(b3<>"";c3<>"");si(b3<Ã;c3-b3+1;"Erreur");si(b3<>"";1;si(c3="";0;"Er
reur")))
avec cette formule, on passe 2 "Si" avant d'arriver au calcul, et le cas 0
est supposé moins fréquent que les cas 1.
=si(et(b3<>"";c3<>"";b3<Ã);c3-b3+1;si(et(b3="";c3="");0;si(et(c3="";b3<>""
);0;"Erreur")))
avec cette formule, on ne passe qu'un "Si" avant d'arriver au calcul, et
le
cas 1 est supposé plus fréquent que le cas 0.
Mais honnêtement, je ne pense pas que cela fasse gagner des milliers
d'heures au traitement.
Pour finir, si tu n'as pas encore pensé à cela : évite de travailler en
réseau (copie ton fichier sur ton disque dur : les accès disque sont plus
rapides que les accès réseau), pense à augmenter la mémoire vive de ton
ordinateur (les calculs sont plus rapides quand le fichier complet peut
être
chargé en mémoire sans swap sur le disque), voir à changer ton ordinateur.
Dis-moi ce qu'il en est.
Pierre.
"Crel" <nospam-mouedra-pas-de-pub@club-internet.fr> a écrit dans le
message
de news:O7g6oMbkDHA.2436@TK2MSFTNGP09.phx.gbl...
Bonjour, je désire simplifier cette formule qui fonctionne très bien, et
qui
gère les tickets, mais comme je dois la recopier sur un grand nombre de
lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))
Bonsoir,
Pas simple, ta formule.
Tout d'abord, une question : si "ça freine un peu", c'est que tu dois
traiter un TRES grand nombre de lignes, et que tu dois le faire
régulièrement. Ne serait-il alors pas plus judicieux d'effectuer ce
traitement avec un autre outil automatisant ce calcul, comme Access ou
l'outil qui te génère ces données.
Ensuite, il possible qu'Excel interprète les formules de manière
récursive.
Dans le cas d'un "Si(Condition;Alors;Sinon)", si la première condition est
vérifiée, il ne perd pas de temps à interpréter le Sinon. Je te conseille
donc de tester ta formule en l'adaptant à tes données. Il est à supposer
que
les erreurs sont les cas les moins fréquents. Mais dans ta formule
actuelle,
avant d'arriver au calcul de différence, il faut passer par 3 "Si". En
mettant la condition "Pas d'erreur" en premier, tu peux donc peut-être
gagner du temps.
Les différents cas possibles sont les suivants (si je ne me suis pas
trompé)
:
b3 c3 Résultat
"" "" 0
"" y Erreur
x "" 1
x y si(x<y;y-x+1;"Erreur")
Il faudrait alors adapter la formule en fonction de la fréquence des cas
possibles.
Je te propose deux exemples :
=si(et(b3<>"";c3<>"");si(b3<Ã;c3-b3+1;"Erreur");si(b3<>"";1;si(c3="";0;"Er
reur")))
avec cette formule, on passe 2 "Si" avant d'arriver au calcul, et le cas 0
est supposé moins fréquent que les cas 1.
=si(et(b3<>"";c3<>"";b3<Ã);c3-b3+1;si(et(b3="";c3="");0;si(et(c3="";b3<>""
);0;"Erreur")))
avec cette formule, on ne passe qu'un "Si" avant d'arriver au calcul, et
le
cas 1 est supposé plus fréquent que le cas 0.
Mais honnêtement, je ne pense pas que cela fasse gagner des milliers
d'heures au traitement.
Pour finir, si tu n'as pas encore pensé à cela : évite de travailler en
réseau (copie ton fichier sur ton disque dur : les accès disque sont plus
rapides que les accès réseau), pense à augmenter la mémoire vive de ton
ordinateur (les calculs sont plus rapides quand le fichier complet peut
être
chargé en mémoire sans swap sur le disque), voir à changer ton ordinateur.
Dis-moi ce qu'il en est.
Pierre.
"Crel" a écrit dans le
message
de news:Bonjour, je désire simplifier cette formule qui fonctionne très bien, et
quigère les tickets, mais comme je dois la recopier sur un grand nombre de
lignes; ça freine un peu.
Merci beaucoup
Patrick
=SI(ET(C3<>"";B3="");"ERREUR";SI(B3="";0;SI(C3="";1;SI(ET(B3>C3);"ERREUR";(C
3-B3+1)))))