Excel 带有索引/匹配和逻辑测试的返回值
我有一个表,它的行中显示了唯一的值。我需要返回当天正确的首次登录时间的值Excel 带有索引/匹配和逻辑测试的返回值,excel,excel-formula,Excel,Excel Formula,我有一个表,它的行中显示了唯一的值。我需要返回当天正确的首次登录时间的值 A B C D 1 Session User Date Time 2 1000 U1 3/6/2017 10:01 3 1234 U1 3/6/2017 12:00 如您所见,一个代理一天可以登录两次,我只需要第一次登录 我想我可以使用索引并与用户和日期的
A B C D
1 Session User Date Time
2 1000 U1 3/6/2017 10:01
3 1234 U1 3/6/2017 12:00
如您所见,一个代理一天可以登录两次,我只需要第一次登录
我想我可以使用索引并与用户和日期的多个条件匹配,但是如何包括逻辑测试来检查编号较低的会话(以后的会话总是具有较高的会话ID号)
到目前为止,我的公式如下所示:
=INDEX(A:D,MATCH("U1"&"3/6/2017",B:B&C:C,0),D:D)
我实际上没有直接使用U1和日期,而是使用单元格引用,因此语法错误不是问题
另外,我知道这是一个数组公式,所以用Ctrl+Shift+Enter确认
然而,我不知道如何继续从这里说检查U1在B:B和日期在C:C,但只返回D;D对于A:A中的最低会话,您可以包含一个额外的helper列
isFirstLogin
,公式如下:
=COUNTIFS($B:$B,$B2,$C:$C,$C2,$A:$A,"<"&$A2)=0
=COUNTIFS($B:$B,$B2,$C:$C,$C2,$A,”试试
这将检索所提供日期的最低数字会话编号,然后在类似的包装公式中使用该编号检索与会话、用户和日期关联的时间。请记住将结果格式化为时间;它最初将作为原始编号检索
“U1”
和日期(2017,3,6)
可以指包含该值的单元格。对于第二个、第三个等匹配项,请替换、1)
(聚合的小子函数的k)使用适当的顺序。你本能地使用索引和匹配
是正确的。如果它们按时间顺序排列,则不需要找到最小值,只需找到第一次出现的值-这正是匹配
所做的
=INDEX($B$2:$B$3,MATCH(G2&H2,$C$2:$C$3&$D$2:$D$3,0))
作为数组公式输入(Ctrl+Shift+Enter,而不仅仅是Enter)
结果如下所示(请参见列I
)
将其作为数组公式输入(用Ctrl+Shift+Enter确认):
事实上,它只是获取初始函数的最小值,并将其与用户和日期匹配,以获得所需的结果!;)作为公式的替代方法,您可以创建一个数据透视表,自动显示每个用户每天第一次登录的会话号和时间,而不考虑数据顺序:
插入数据透视表
将用户、日期和会话添加到行标签(您可以交换用户和日期,但会话必须是最后一个)
为值添加时间
按最小值总结时间(如果会话是唯一的,Sum/Max实际上有相同的结果,因为每个会话只有一个值。这里的最小值听起来更好。)
将时间最小值字段的数字格式更改为时间(右键单击字段、值字段设置、数字格式、时间)
将报表布局更改为表格格式(在“数据透视表工具”>“设计”选项卡上)
更改报告布局以重复所有项目标签
删除小计
删除总计
右键单击会话字段并选择过滤器>前10名
设置为:按时间最小值显示底部1个项目(这将导致基于最早时间的每个用户/日期组合仅显示第一个会话)
到目前为止,请包括您的公式。您可以使用MIN()
查找最低值,即最早的一小时!)您好。到目前为止,我的公式如下:=索引(A:D,匹配(“U1”和“3/6/2017”,B:B&C:C,0),D:D)
。实际上,我没有直接使用U1和日期,而是使用单元格引用,因此语法错误不是问题。此外,我知道这是一个数组公式,因此可以使用Ctrl+Shift+Enter进行确认。但是,我不知道如何从这里继续说在B:B中检查U1,在C:C中检查日期,但对于a:a中的最低会话,只返回D;D
。在完成OP的所有编辑之后,我相信他/她实际上想要与用户相关联的时间、日期和最低会话数,因此可能需要更多级别的查找。如果是这种情况,OP可以将索引($B$2:$B$3,
更改为索引($E$2:$E$3,
?所有这些都假设结果是按时间顺序出现的。非常感谢,Michael。不幸的是,pivot对我不起作用,因为我需要在另一个表中使用提取的值来匹配计划时间。这很完美-我喜欢简单的解决方案。谢谢你,Taosique!
=INDEX($B$2:$B$3,MATCH(G2&H2,$C$2:$C$3&$D$2:$D$3,0))
=INDEX(A:D,
MATCH(
MIN(INDEX(A:D,MATCH("U1"&"3/6/2017",B:B&C:C,0))&"U1"&"3/6/2017"
,D:D&B:B&C:C,0)
,D:D)