ABS公式不适用于date值

所以我试图在这里回答这个问题,但我注意到ABS公式不能使用某个date值。 我不明白为什么它在某些date,而不是与其他人一起工作。

可以请别人解释一下这里发生了什么?

以下是显示我所尝试的截图。

在这里输入图像说明

*注 :date格式为"dd/mm/yyyy" ,我不想在A栏中做任何修改。

由于数据是以这种格式提供给你的,而且由于某些date是真正的数字date,而有些是看起来像date的文本,所以你需要对数据进行处理,以便所有数据都是真正的数字date。

这是一个公式,你可以在列B中应该这样做:

 =IF(LEFT(A2,2)>"31",A2,DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))) 

这个公式假设列A中所有真正的文本,但看起来像date的值是在这个确切的格式:mm / dd / yyyy。

此外,在公式开始时与“31”的比较意味着这应该适用于1987年以后的所有date。

在我看来,这个问题还没有解决,因为问题的真正原因还没有确定,所以我发布这个问题是为了提高对问题原因的认识。

真正的问题不是某些date是无效的(认为​​它们实际上是文本而不是表示特定date的序列号) ,问题在于用于处理input文件的计算机(不一定与在此问题中使用的计算机相同被确定)预计date在美国标记(mm / dd / yyyy) ,并且所有这些date以国际标记(dd / mm / yyyy)

正如@ Nelly27281所述

注:date格式为“dd / mm / yyyy”格式,我不想在A列中做任何更改。

然而,看[A2:A4,A9]中所有显然是正确的值,请注意,这些date表示为文本正在显示[C2:C4,C9]预计为几天的date,反之亦然如下图)

在这里输入图像说明 图。1

将同一来源的date格式混合起来确实很奇怪。

这实际上意味着单元格格式[A2:A4,A9]类似于m/d/yyyy

根据上述看来,实际值(预期的 – 可能来自外部文件)是:

在这里输入图像说明 图2

要复制问题,请更改Region设置,将Short date格式设置为MM/dd/yyyy然后将单元格A2:A10格式化为m/d/yyyy 。 然后在这些单元格中inputdate列表,您会注意到A5:A8,A10中的date是作为文本input的。 这是因为系统预期date为mm/dd/yyyy ,而这些input的第一部分是> 12 (不符合月份),所以input的值不会被识别为date,因为它们包含非数字字符作为标签(文本或string)

根据以上(应根据源数据进行validation) ,以下公式将返回正确的date,假定:

  1. 任何numericdate转换为m/d/yyyy实际上是d/m/yy
  2. 任何textdate应使用格式d/m/yy作为date进行转换。

=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中input,然后复制到最后一个logging)