=MIN(IF(Sheet1!$B$2:$B$100=A2,Sheet1!$A$2:$A$100,""))
同时按CTRL SHIFT 回车键,再下拉公式
=MAX(IF(Sheet1!$B$2:$B$100=A2,Sheet1!$A$2:$A$100,""))
同时按CTRL SHIFT 回车键,再下拉公式
use Tempdb
go
--> -->
if not object_id(N'Tempdb#Tab') is null
drop table #Tab
Go
Create table #Tab([ID] int,[Name] nvarchar(2),[Logtime] Datetime,[action] nvarchar(2))
Insert #Tab
select 1,N'张三','2011-08-24 08:00',N'登录' union all
select 2,N'张三','2011-08-24 08:31',N'登录' union all
select 3,N'张三','2011-08-24 09:20',N'离开' union all
select 4,N'张三','2011-08-24 09:29',N'登录' union all
select 5,N'张三','2011-08-24 13:50',N'离开' union all
select 6,N'张三','2011-08-24 14:20',N'登录' union all
select 7,N'张三','2011-08-24 15:20',N'登录' union all
select 8,N'张三','2011-08-24 16:30',N'离开' union all
select 9,N'张三','2011-08-24 08:00',N'登录' union all
select 10,N'陶明','2011-08-24 07:31',N'登录' union all
select 11,N'陶明','2011-08-24 08:20',N'离开' union all
select 12,N'陶明','2011-08-24 09:50',N'登录' union all
select 13,N'陶明','2011-08-24 15:50',N'离开' union all
select 14,N'陶明','2011-08-24 16:10',N'离开' union all
select 15,N'陶明','2011-08-24 16:42',N'离开'
Go
Select
CONVERT(VARCHAR(8),[Logtime],112) AS 日期,
[Name] AS 姓名,
min(CASE WHEN [action]=N'登录' THEN convert(varchar(8),[Logtime],8) END) AS 最早上班时间,
max(CASE WHEN [action]=N'离开' THEN convert(varchar(8),[Logtime],8) END) AS 最晚下班时间
from #Tab
WHERE CONVERT(VARCHAR(8),[Logtime],112)='20110824'
GROUP BY CONVERT(VARCHAR(8),[Logtime],112),[Name]
/
日期 姓名 最早上班时间 最晚下班时间
20110824 陶明 07:31:00 16:42:00
20110824 张三 08:00:00 16:30:00
/
在B2、C2分别输入以下数组公式,按Ctrl+Shift+Enter组合键结束
=MIN(--LEFT(A2:A10,8))
=MAX(--RIGHT(A2:A10,8))
详见附图示例
365版本的maxifs函数,获取最晚的时间,用minifs函数获取最早时间。
例如提取最早时间公式为=minifs(c:c,a:a,e2,b:b,f2)就可以提取人名为吴俊辉、6月3日的最小数据,同理最大值,可以使用maxifs函数。
以上就是关于Excel表格前后页关联;自动筛选相同名称的最早时间和最晚时间,求详细函数并解答全部的内容,包括:Excel表格前后页关联;自动筛选相同名称的最早时间和最晚时间,求详细函数并解答、求一个sql 语句得出所有人在某一天的最早上班时间和最晚下班时间、Excel如何使用函数获取最早最晚日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)