我有三列数据,如下所示:
05-May-15 05-May-15 0.006999933
05-May-15 06-May-15 0.006999933
05-May-15 05-Jun-15 0.008996562
05-May-15 06-Jul-15 0.008993128
05-May-15 05-Aug-15 0.006744264
05-May-15 05-Nov-15 0.006912941
05-May-15 05-May-16 0.007104633
05-May-15 05-May-17 0.006910929
05-May-15 06-Nov-17 0.007017292
05-May-15 07-May-18 0.00712202
05-May-15 05-Nov-18 0.007835916
05-May-15 06-May-19 0.008551509
05-May-15 05-Nov-19 0.009734602
05-May-15 05-May-20 0.010916848
05-May-15 05-Nov-20 0.011779622
05-May-15 05-May-21 0.012632521
05-May-15 05-Nov-21 0.013504069
05-May-15 05-May-22 0.014366506
05-May-15 07-Nov-22 0.014935518
05-May-15 05-May-23 0.0154865
05-May-15 06-Nov-23 0.016059181
05-May-15 06-May-24 0.016626256
05-May-15 05-Nov-24 0.017200193
05-May-15 05-May-25 0.017771865
05-May-15 05-Nov-25 0.018052656
第一个是从最旧到最新排序,第二个是未排序的。
我需要选择第一列和第二列之间的差异等于一个月的每个实例。例如,我想要获取第3列中的值,其中第一列是05 - 5月 - 15,第二列是05 - 6月 - 15,并且在06年5月 - 15日和06年执行相同的操作 - 6月 - 15日,等等系列的其余部分。
我应该写什么VLOOKUP来实现这个目标?
提前致谢。
答案 0 :(得分:0)
没有vlookup:例如你的表从" A1"细胞。然后用公式
构建第4列 D1 = AND(DAY(A1)=DAY(B1),YEAR(A1)+MONTH(A1)/12+1/12=YEAR(B1)+MONTH(B1)/12)
。
对于您需要的行,列值将为TRUE,否则为false。
答案 1 :(得分:0)
这相对简单,因为excel有一些内置函数来处理添加/减去日期。在这种情况下,我会使用=IF()
和=EDATE()
的组合。
=IF()
允许我们检查某些逻辑测试是否为真。在您的情况下,我们要检查第一列中的日期与第二列中的日期之间的差异是否为一个月。幸运的是,=EDATE(m, n)
允许我们从月'm'开始正好添加或减去n个日历月。你最终会得到一个看起来像这样的公式:
=IF(B1 = EDATE(A1, 1), C1, FALSE)
这里,B1是第二个日期,A1是第一个日期,1是要添加的月数,C1是返回值(如果差异是一个月),FALSE只是返回值,如果不是整整一个月。公式简洁,很好。如果差异不是一个月,您可以将“FALSE”更改为您想要返回的任何内容,您只需将该公式复制到一列中,例如“D”列。