Exceldate数据不能计算两个date之间的差异?

工作表在这里https://www.dropbox.com/s/kapavvj6yc0nhdr/recruitment%20%282%29.xls

我有从我们的IT部门收集的数据,并显示我正在分析的date。

当我用一个简单的减法函数=(A1-A2)计算两个date之间的差异时,我得到#VALUE或错误的数字结果。 我试图谷歌,我试图使用不同的function无济于事。

我在工作表中发现的一些date显示为date时(CTRL +`)查看和一些显示为序列号。 所以这可能是我想的问题。

我需要正确计算这个工作表中两个date之间的差异,没有任何错误。 任何input是高度赞赏。

两件事情:

首先,您的date格式为dd/mm/yyyy ,由D2的date即22/11/2012/ 。 考虑到这一点, J2恰当的公式应该是=F2-$D2 ,向右拖动。 原来的公式是减去错误的方式,这会导致负面的时间,因此是一个错误。

其次,如果您的区域设置阻止您将其作为默认设置读取,请将date修改为正确的格式。 其中一些被认为是string,一些是有效的date。 这是date常见的问题。 在我的结尾,下面的UDF工作得很好。

 Function ModifyDate(sDate As String) As Date Dim sDay As String, sMonth As String, sYear As String Dim divOne As Long, divTwo As Long divOne = InStr(sDate, "/") divTwo = InStrRev(sDate, "/") sDay = Left(sDate, divOne - 1) sMonth = Mid(sDate, divOne + 1, divTwo - divOne - 1) sYear = Right(sDate, 4) ModifyDate = DateValue(sMonth & "/" & sDay & "/" & sYear) End Function 

突出显示date和调用这样的function会导致所有这些date转换为mm/dd/yyyy格式。

 Sub ModifyRangeDates() On Error Resume Next For Each Cell In Selection Cell.Value = ModifyDate(CStr(Cell.Value)) Next End Sub 

然后我们应用我在第一段中给出的公式,向右拖下去。 最后,修改的文件在这里 。

请享用。

问题是区域设置。 电子表格是使用MM / DD / YYYY设置创build的。 当date以“DD / MM / YYYY”格式input时,date为12或更less的date被解释为MM / DD / YYYYdate。 否则,它被视为文本。

为了计算每个条目的“适当”date,我没有写一个UDF,而是把一个公式放到相邻的列中。 例如,我会插入一个名为“评估(calc)”的列,并使用以下公式:

 =IF(ISNUMBER(H2),DATE(YEAR(H2),DAY(H2),MONTH(H2)),DATE(RIGHT(H2,4),MID(H2,FIND("/",H2)+1,FIND("/",H2,1+FIND("/",H2))-FIND("/",H2)-1),LEFT(H2,FIND("/",H2)-1))) 

公式会检查“date”是否是一个数字,在这种情况下,它会反转月份和date并生成date值。 如果是文本,则parsing文本以提取正确的值。 (更复杂,因为一些date只有一个月份的一个数字)

我会重复每一列date,然后对结果进行计算。