0

我有一个关于excel的问题。我的数据位于 2 个不同的电子表格中。

工作表是登录和事件:

登录

user_id (COL A)

注册日期(COL B)

活动

user_id (COL A)

结束日期(COL B)

收入(COL C)

我试图找到从用户注册到他们的第一个事件结束的平均天数。在尝试匹配用户 ID 时,我有以下代码,但它不起作用:

=MIN(IF(A2=Events!$A$2:$A$12282,(Events!B$2:B$12282)-B2))

在这种情况下,对于登录中的每个用户,我试图在与该用户匹配的事件中找到相应的日期。然后我试图找出日期的差异并找到数组中的最小值,但它给出的是最大值和/或不起作用。任何帮助表示赞赏!

4

2 回答 2

0

DMIN功能将起作用(尽管我发现该功能使用起来有点笨拙)。如果您想使用DMIN,您可以执行以下操作。

创建第三张工作表并在单元格A1&中创建三个列标题B1A1应该包含user_id. B1可以是类似的东西minimum_event_dateC1可以是类似的东西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都显示在第三个工作表中。这将从您的工作表中返回工作表上列出的Events每个日期的最短日期user_idLogin

于 2013-08-29T18:32:04.947 回答
0

在登录表上,我会再添加一列days_to_first_event。并在 C2 中添加以下数组公式(按 Ctrl+Shift+Enter 进行设置)

=MIN(IF(tbl_events[user_id]=A2,tbl_events[end_date]))-B2

这会在工作表上找到最早end_date的,然后减去用户的。(我已将它们格式化为一个名为的表格,但您可以替换您的范围)user_idEventssignup_datetbl_events

然后你可以基于正值进行平均,因为任何负值都意味着他们还没有完成一个事件。使用这个公式

=SUMIF(C:C,">=0")/COUNTIF(C:C,">=0")

可以将所有这些都包含在一个公式中,但是今天早上我无法解决这个问题。

于 2014-01-08T17:48:04.073 回答