J'essaie de faire fonctionner une formule imbriquée, mais je continue à avoir une erreur. J'ai essayé d'utiliser la formule générique =IF(AND(A1="this",B1="that"),"x","")
mais je n'ai pas trouvé comment m'assurer que Q6 = date. Un autre critique m'a écrit un code pour formater conditionnellement une cellule avec des critères similaires. Cela a donc fonctionné et je me suis dit que je pouvais l'utiliser pour cette situation. Malheureusement, ça ne marche pas. Quelqu'un peut-il bien vouloir m'aider à comprendre ce que j'ai mal fait?
Si ces deux conditions sont remplies:
ET
Ensuite:
EDIT: ajout de cette deuxième condition: toute erreur ou valeur négative résultant devient "NA". Je pense que ce sera une sorte de déclaration imbriquée?
IF: nombre négatif ou erreur (#VALUE!)
THEN: "NA"
Les formules que j'ai essayées:
=IF( AND(ISDATE(Q6), COUNTIFS(P6, "closed", Q6, ">"&DATE(0,1,1)), "Q6-B6", ""))
ET
=IF(AND(P6="closed", Q6">"&DATE( 0,1,1), Q6-B6, ""))
ET
=IF(AND(P6= “closed”, ISDATE(Q6 ">"&DATE(0,1,1))), Q6-B6, "")
Je l'ai compris! Était une solution simple; il suffit de définir la deuxième condition comme une date inférieure à celle d'aujourd'hui.
=IF(AND(P6="closed", Q6<"Today()"), Q6-B6, "")
MAIS maintenant si j'obtiens un nombre négatif (car la colonne B n'a pas de date de début), comment puis-je faire en sorte que cette formule retourne "NA?"
J'ai essayé cette formule (j'ai une erreur):
=IF(AND(P6="closed", Q6<"Today()", Q6-B6, ""), IF(R6<0, "NA", IF(R6="VALUE!", "NA", "NA")))
Suis-je sur la bonne voie? Est-ce que cela échoue parce que si elle est erronée/si elle est négative, elle est circulaire (c'est le résultat de la première partie de la formule en cours d'exécution)? J'ai eu la valeur négative à disparaître en utilisant la mise en forme conditionnelle et en faisant la police de texte en blanc (merci, @ user0!)
La pièce d'erreur doit-elle être écrite comme un tableau/une erreur? le code IFERROR me confond complètement. J'ai essayé ces derniers mais j'ai toujours Formula parse error
:
=iferror(ArrayFormula(IF(AND(P6="closed")*(Q6<"Today()"),Q6-B6), "NA”))
=iferror(ArrayFormula(IF(AND(P6="closed")*( Q6<"Today()"),Q6-B6, “”),1)
=iferror(ArrayFormula(IF(AND(P6="closed")*( Q6<"Today()"),Q6-B6, “”),1,"NA")
Sensationnel. Je me sens bien accompli. Beaucoup d'essais et d'erreurs, mais cette formule semble fonctionner dans tous les cas. Donne-moi le nombre Q6-B6, NA s'il y a une erreur, et vide si les conditions ne sont pas remplies (les valeurs négatives que j'ai utilisées pour masquer la mise en forme conditionnelle).
=IFERROR(IF(AND(P6="closed", Q6<"Today()"), Q6-B6, ""), "NA")
Je pense que je l'ai compris! Je viens de fixer à la deuxième condition une date inférieure à celle d’aujourd’hui (les dates de la colonne Q étant la date de fermeture, il s’agit de dates antérieures). J'ai modifié la formule générique IF-AND:
=IF(AND(P6="closed", Q6<"Today()"), Q6-B6, "")
Pour les valeurs négatives, j'ai utilisé la mise en forme conditionnelle et rendu le texte en blanc (le crédit revient à @ user0, qui m'a aidé avec un autre problème et a utilisé cette astuce ingénieuse)
Pour les erreurs, j'ai utilisé une formule de piège d'erreur (également grâce à @ user0). Il a fallu un peu de peaufinage et beaucoup d'essais et d'erreurs, mais j'ai finalement réussi à le faire fonctionner! :)
=IFERROR(IF(AND(P6="closed", Q6<"Today()"), Q6-B6, ""), "NA")
=IFERROR(IF(AND(P6="closed", Q6<"Today()"), Q6-B6, ""), "NA")
peut être légèrement amélioré pour:
=IFERROR(
IF(
AND(P6 = "closed";
Q6 < "NOW()");
IF((Q6-B6) < 0;
"";
Q6-B6);
"");
"NA")
NOW()
est utilisé pour davantage de précision (si nécessaire), car il peut inclure l'heure déjà passée de la journée.IF()
est capable de détecter et de capturer des valeurs négatives, il n’est donc pas nécessaire de recourir au formatage conditionnel.solution finale pour OP:
=IFERROR(IF(P6="never opened", "",
IF(B6="", "",
IF(AND(P6="closed", Q6<"NOW()"), Q6-B6, TODAY()-B6))),)