EXCEL:查找值和相应值的公式

时间:2013-08-29 17:43:55

标签: excel

我有一个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))

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

2 个答案:

答案 0 :(得分:0)

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

创建第3个工作表,并在单元格A1中创建三个列标题。 B1A1应包含user_idB1可以是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")

有可能在一个公式中包含所有这些,但今天早上我无法将我的大脑包裹起来。