所以我在这里尝试回答 this 问题,但我注意到 ABS
公式不适用于某些日期值。我不明白为什么它在某些日期工作而不与其他人合作。
有人可以解释一下我在这里发生了什么吗?
以下是显示我尝试过的屏幕截图。
*注意:日期为"dd/mm/yyyy"
格式,我不想在列A
中进行任何更改。
答案 0 :(得分:2)
由于数据是以这种格式提供给您的,因为有些日期是真正的数字日期,有些是看起来像日期的文本,您需要按摩数据,以便在继续之前所有数据都是真正的数字日期。
以下是可以放在B列中的公式:
=IF(LEFT(A2,2)>"31",A2,DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2)))
这个公式假设A列中所有真正文本但看起来像日期的值都是这种格式:mm / dd / yyyy。
此外,在公式开头与“31”的比较意味着这应适用于1987年之后的所有日期。
答案 1 :(得分:1)
在我看来,这个问题还没有解决,因为问题的真正原因尚未确定,所以我发布这个问题是为了提高对问题原因的认识。
真正的问题不是某些日期无效(认为它们实际上是文本而不是代表特定日期的序列号),问题是用于处理输入文件的计算机(不一定与发现此问题时使用的相同)期待美国符号(mm / dd / yyyy)中的日期,以及所有这些日期都在国际表示法(年/月/日)。
正如@ Nelly27281所述
注意:日期采用“dd / mm / yyyy”格式,我不想制作 A栏中的任何变化。
然而,在[A2:A4,A9]
中查看显然正确的所有值,请注意这些日期表示为文本显示预期为几天的天数,反之亦然[C2:C4,C9]
(参见图。下面)
将来自同一来源的日期格式混合起来确实很奇怪。
这实际上意味着单元格[A2:A4,A9]
的格式类似于m/d/yyyy
根据上述情况,似乎实际值(预期值 - 可能来自外部文件)是:
要复制该问题,请更改Region
设置,将Short date
格式化为MM/dd/yyyy
,并将单元格A2:A10
格式化为m/d/yyyy
。然后在这些单元格中输入日期列表,您会注意到A5:A8,A10
中的日期作为文本输入。这是因为系统期望日期为mm/dd/yyyy
,并且这些输入的第一部分是&gt; 12 (不符合资格数月)因此输入的值不会被识别为日期,因为它们包含非数字字符,它们将被视为标签(文本或字符串)。< / p>
基于以上(应根据源数据进行验证),以下公式返回正确的日期假设:
numeric
日期已转换为m/d/yyyy
实际上d/m/yy
text
日期都应使用d/m/yy
格式转换为日期。 =IF(ISNUMBER($A2),
DATE(YEAR($A2),DAY($A2),MONTH($A2)),
DATE(RIGHT($A2,4),SUBSTITUTE(MID($A2,1+FIND("/",$A2),2),"/",""),
SUBSTITUTE(LEFT($A2,2),"/","")))
(输入B2然后复制到最后一条记录)