excel日期格式如何实现模糊匹配

原始的数据如上,导出的数据格式为常规,修改为其他格式也不会变

输入的格式为这样,我需要在C列用vlookup得到图1中的temp数据

1、在原始数据的C列插入一辅助列,在C3单元格输入以下公式,然后向下填充公式

=DATE(2000+MID(B3,7,2),LEFT(B3,2),MID(B3,4,2))+TIME(MID(B3,12,2)+IF(MID(B3,10,2)="上午",0,12),MID(B3,15,2),0)

公式分成两个部分:

前面DATE(2000+MID(B3,7,2),LEFT(B3,2),MID(B3,4,2))通过DATE日期函数将B3单元格的前半部分整理成日期;

后面TIME(MID(B3,12,2)+IF(MID(B3,10,2)="上午",0,12),MID(B3,15,2),0)通过TIME时间函数将B3单元格的后半部分整理成时间;

时间函数中增加了IF函数IF(MID(B3,10,2)="上午",0,12)判断上午或下午,考虑是否加上12小时。

2、因为查询的时间没有精确匹配的时间,且辅助列为升序排序的时间数列,因此选择使用LOOKUP函数在升序数据中查找与查找条件小的最大值,并返回对应的D列Temp。

在C2单元格输入=LOOKUP(B2,Sheet1!C:D)

公式表示:在Sheet1表的C列查找比B2单元格数据小的最大值,然后返回对应Sheet1的D列数据。

附图以同表举例

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-03-06
方法一:添加辅助列
1,实现日期格式统一化:数据库2表增加I列为辅助I2=TEXT(B2,"e-m-d")下拉。
2,进行匹配:收支表D4=SUMIF(数据库2!I:I,A4,数据库2!E:E)下拉。

方法二:使用sumifs函数
=SUMIFS(数据库2!F:F,数据库2!B:B,">="&收支!A4,数据库2!B:B,"<"&收支!A4+1)

方法三:使用sumif函数嵌套
=SUM(SUMIF(数据库2!B:B,">="&A4+{0,1},数据库2!E:E)*{1,-1})
注:日期时间实际为数值,只是显示方式不一样而已。一天数值就是1。">="&A4+{0,1},那么在大于等于a4日期数值的条件求和值1、大于等于a4日期数值+1的条件求和值2。两个和的值分*{1,-1}那么和值1、负和值2。sum,两和值相加即=和值1-和值2

方法四:使用sumif函数与countif函数嵌套
=SUM(COUNTIF(数据!C:C,">="&A4+{0,1})*{1,-1})
相似回答