我在使用 Excel 时遇到了问题。我的数据位于 2 个不同的电子表格中。
这些表是登录和事件:
登录
用户 ID(COL A)
注册日期 (COL B)
活动
用户 ID(COL A)
结束日期 (COL B)
收入(COL C)
我正在尝试查找从用户注册到他们的第一个活动结束的平均天数。在尝试匹配用户 ID 时,我使用了以下代码,但它不起作用:
=MIN(IF(A2=Events!$A$2:$A$12282,(Events!B$2:B$12282)-B2))
在这种情况下,对于登录中的每个用户,我尝试在事件中找到与该用户匹配的相应日期。然后,我尝试找出日期之间的差异,并在数组中找到最小日期,但它给出的是最大值和/或不起作用。任何帮助表示感谢!
答案1
您无法按照以下方式将单个单元格与某个范围进行比较:
IF(A2=Events!$A$2:$A$12282...
您可以尝试使用查找功能。
答案2
尝试以下操作:在第一个工作表的第三列中输入以下公式
=VLOOKUP(A$2,Events!A$2:A$12282,1,0)
这应该将用户相应的 end_date 值放在 A2 中。注意,当且仅当每个用户只有一个结束日期时,这才会起作用。
如果这是您要找的,只需拖动公式即可填写所有值。
现在在第四列你可以做类似的事情
=C$2-B$2
再次拖动公式来填写所有缺失的值。
现在你应该已经准备好所有的计算了,你只需要做
=MIN(D2:D12282)
答案3
在登录表上,我将添加另一列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")
可以将所有这些包含在一个公式中,但是今天早上我无法理解。