我想找到DOB OF FATHER& DOB之间的最早日期。在Sheet1中,通过匹配员工代码并在表2中具有最早日期值来计算母亲的责任。
第1页
Employee Code DOB OF FATHER DOB OF MOTHER
28883 29/12/1987 28/01/1988
83933 19/11/1988 12/07/1988
55428 21/01/1938 03/10/1938
99999 18/03/1982 11/02/1980
第2页
Employee Code Earliest Date
28883
99999
83933
55428
答案 0 :(得分:1)
Sheet1:
A B C
1 Code FatherDOB MotherDOB
2 28883 29/12/1987 28/01/1988
3 83933 19/11/1988 12/07/1988
4 55428 21/01/1938 03/10/1938
5 99999 18/03/1982 11/02/1980
Sheet2:
A B
1 Code EarliestDOB
2 28883 29/12/1987
3 99999 11/02/1980
4 83933 12/07/1988
5 55428 21/01/1938
您可以将两个vlookup
操作与min
操作结合使用:
=MIN(VLOOKUP(A2,Sheet1!$A$2:$C$5,2,FALSE),VLOOKUP(A2,Sheet1!$A$2:$C$5,3,FALSE))
第一个vlookup
为您提供父亲的出生日期(使用整个表范围,但提取第二列),第二个给出母亲的出生日期(提取第三个)列)。
最早的只是两者中的最小值。
如果某些日期可能为空,则最简单的解决方案可能是在工作表1上设置D
列以评估最早的日期,忽略空白。例如D2
将具有(为了便于阅读而分隔行):
=IF(ISBLANK(B2),
B3,
IF(ISBLANK(C2),
B2,
MIN(VLOOKUP(A2,$A$2:$C$5,2,FALSE),
VLOOKUP(A2,$A$2:$C$5,3,FALSE))))
如果其中一个单元格为空白,则使用另一个单元格,否则选择最早的单元格。
然后,您只需在表2的公式中查找新列D
(B2
的示例):
=VLOOKUP(A2,Sheet1!$A$2:$D$5,4,FALSE)
答案 1 :(得分:0)
我想指出一个永远存在于Excel中的限制。
Excel内部无法正确处理3/1/1900(1900年3月1日)之前的日期。
您可以通过自动化传递给Excel的各种示例日期:
Date Excel
-------- ------------------------------
18651001 throws error going into Excel
18991201 throws error going into Excel
18991229 throws error going into Excel
18991230 shows as "12:00:00" in Excel; it refuses to show a date portion
18991231 shows in Excel as 1/1/1900
19000101 shows in Excel as 1/2/1900
19000102 shows in Excel as 1/3/1900
19000103 shows in Excel as 1/4/1900
19000201 shows in Excel as 2/2/1900
19000228 shows in Excel as 2/29/1900
19000229 Feb 29 1900 was not a real date; Excel takes it
19000301 shows in Excel as 3/1/1900
19000601 shows in Excel as 6/1/1900
19001231 shows in Excel as 12/31/1900
19010101 shows in Excel as 1/1/1901
20151128 shows in Excel as 11/28/2015
VARIANT structure does dictate that a date must be after December 30, 1899 midnight as time zero:
2.2.25 DATE
DATE是一种指定日期和时间信息的类型。它表示为一个8字节的浮点数。
此类型声明如下:
typedef double DATE;
日期信息以整数增量表示,从1899年12月30日午夜开始,为零时间。时间信息由自前一个午夜以来的一天的分数表示。例如,上午6点。在1900年1月4日,将代表值5.25(1899年12月30日过去的5天和1/4)。
tl; dr:如果您在1900年3月1日之前在Excel中有任何日期(例如,活着的最老女人的出生日期),Excel将无法正确执行数学运算。
如果您希望在3/1/1900之前显示任何日期,则应显示为文字,而不是实际日期。
Stackoverflow是wiki和reddit的组合。我在这里添加有用的相关信息。任何试图在范围内找到最小日期的人都需要了解Excel中的此限制。