Comment fonctionne le test logique dans un fichier Excel si la déclaration d'évaluer dates dans différents formats?
Feuille de calcul avec les données de l'exemple est lié ici.
Supposons que vous avez 3 dates "4/1/2015", "6/30/2015", et "5/1/2016" fixée à la Date format de cellule dans Excel.
Vous pouvez comparer directement les dates à l'aide d'opérateurs logiques (<, >, etc.). Si "4/1/2015" a été dans la Cellule A1 et "6/30/2015" a été dans la Cellule A2, cette formule =IF(A1>A2,"True","False")
correspond à la valeur "False".
Cependant, vous ne pouvez pas comparer une date à l'encontre d'un littéral de chaîne (c'est à dire "3/31/2015"). Si "4/1/2015" a été dans la Cellule A1, cette formule =IF(AND(A1>="4/01/2015",A1<="6/30/2015"),"True","False")
prend toujours la valeur "False".
Avec le mentionné ci-dessus, pourquoi est-ce qu'en ajoutant une opération arithmétique à un littéral de chaîne; Excel permet la comparaison entre les dates stockées dans des formats différents? Par exemple, si "4/1/2015" a été dans la Cellule A1, cette formule =IF(AND(A1>="4/01/2015"+0,A1<="6/30/2015"+0),"True","False")
permettra d'évaluer la valeur "True".
OriginalL'auteur Mike Dexter | 2015-08-05
Vous devez vous connecter pour publier un commentaire.
Dates sont stockées en tant que Double le nombre de jours à partir de Dec 31, 1899, majoré d'une fraction qui représente le pourcentage de temps qui s'est écoulé depuis minuit. Maintenant, je suis en train de taper ceci à 42221.50049, qui est 42,221 jours depuis 1899, et un peu après midi.
Vous voyez un format de date seulement parce que vous avez une date de format appliqué à la cellule. Il est encore un certain nombre en dessous. Mais les dates sont un peu spécial. La date indique également dans Excel de la barre de formule, pas comme un nombre, mais comme une date. D'autres nombres mis en forme ne montrent pas de cette façon. Excel est d'essayer de marcher sur une ligne fine entre l'enregistrement des dates Doubles, et montrer à l'utilisateur ce qu'ils s'attendent à voir.
Excel a intégré type de contrainte. TC vous permet de faire des choses sans être super rigoureux sur les types de données. En gros, si d'Excel, vous pouvez comprendre comment le faire ce que vous demandez, il le fera. Si vous demander l'ajout de deux chaînes,
"1" + "1"
Excel de le contraindre à chacune de ces chaînes pour un certain nombre de sorte qu'il peut effectuer l'opération et vous donner2
. Si vous demandez à"1" + "a"
, vous obtiendrez une erreur #VALEUR car Excel ne peut pas comprendre comment forcer "un" en quelque chose qui est valide opérande.Comparaisons ne déclenchent pas de coercition. Donc
="1"=1
retournera False - une chaîne de caractères n'est pas égale à un nombre et de faire la comparaison ne déclenche pas Excel afin de le contraindre à une valeur d'un type différent.Dans votre cas
A1>="04/01/2015"
semble une excellente occasion pour Excel afin de le contraindre à quoi ressemble un jour à une date réelle. Mais il ne le fait pas. C'est juste la façon dont il fonctionne. Mais l'ajout de zéro à la date (qui se souviennent est juste un Double), convertit en une date et que vous êtes de gauche comparant A1 à quelque chose qui a été contraint à une date.Littéraux de chaîne de dates semblent travailler dans beaucoup de milieux, comme SQL Server. Mais ils n'ont généralement pas dans Excel. Il est le meilleur, l'OMI, l'utilisation de la fonction DATE (), comme dans
A1>=DATE(2015,4,1)
.OriginalL'auteur Dick Kusleika