我有一个excel问题。我的数据位于2个不同的电子表格中。
表格是登录和事件:
LOGIN
user_id(COL A)
signup_date(COL B)
活动
user_id(COL A)
end_date(COL B)
收入(COL C)
我正在尝试查找用户注册到第一个活动结束的平均天数。 在尝试匹配用户ID时,我有以下代码,但它不起作用:
=MIN(IF(A2=Events!$A$2:$A$12282,(Events!B$2:B$12282)-B2))
在这种情况下,对于登录中的每个用户,我试图在与该用户匹配的事件中查找相应的日期。然后我试图找到日期的差异,并找到数组中的最小值,但它给出最大值而不是/或不工作。任何帮助表示赞赏!
答案 0 :(得分:0)
DMIN
函数将起作用(尽管我发现函数有点笨拙)。如果您想使用DMIN
,可以执行以下操作。
创建第3个工作表,并在单元格A1
中创建三个列标题。 B1
。 A1
应包含user_id
。 B1
可以是minimum_event_date
之类的内容。 C1
可以是delta_date
。
在单元格A2
中输入以下公式:
="="&Login!A2
在单元格B2
中输入以下公式:
=DMIN(Events!$A$1:$B$37,"end_date",A$1:A2)
您需要更改Events!$A$1:$B$37
以匹配Events
表格中的数据范围。
在单元格C2
中输入以下公式:
=B2-Login!B2
然后,您可以向下填充列,直到Login
表中的所有用户都显示在第3个工作表中。这将返回Events
工作表中user_id
表中列出的每个Login
的最短日期
答案 1 :(得分:0)
在登录表上,我会再添加一列days_to_first_event
。在C2中添加以下数组公式(按Ctrl + Shift + Enter设置它)
=MIN(IF(tbl_events[user_id]=A2,tbl_events[end_date]))-B2
这会在end_date
表单上找到user_id
的最早Events
,然后减去用户的signup_date
。 (我已将它们格式化为一个名为tbl_events
的表,但您可以替换您的范围)
然后你可以根据正值进行平均,因为任何负面意味着他们还没有完成一个事件。使用这个公式
=SUMIF(C:C,">=0")/COUNTIF(C:C,">=0")
有可能在一个公式中包含所有这些,但今天早上我无法将我的大脑包裹起来。