2013-08-29 76 views
0

我有一個問題與Excel。我的數據位於2個不同的電子表格中。EXCEL:查找值和相應值的公式

紙張被登錄和事件:

LOGIN

USER_ID(COL A)

signup_date(COL B)

EVENTS

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

你的配方肯定不行。用戶在LOGIN中可以有不同的行嗎?換句話說,同一個用戶可以有不同的sign_up日期嗎? – Mayou

+0

'我正試圖從用戶註冊到他們的第一個活動結束時的平均天數'cf'我正在嘗試查找與該用戶相匹配的事件中的相應日期?活動中每個用戶有多個結束日期? – pnuts

+1

Cross發佈[在SU]上(http://superuser.com/q/638347/219090)。 – Jerry

回答

0

DMIN函數將工作(雖然我覺得功能有點笨拙)。如果您想使用DMIN,則可以執行以下操作。

創建第三個工作表並在單元格中創建三個列標題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板材在第三工作表所示。這將返回表中列出的每個user_idEvents工作表的最小日期

0

在登錄表上,我會再添加一列days_to_first_event。和在C2添加以下陣列式(按下Ctrl + Shift + Enter鍵來進行設置)

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

此發現爲user_idEvents片最早end_date,然後減去用戶的signup_date。 (我已將它們格式化爲一個名爲tbl_events的表格,但您可以替換您的範圍)

然後,您可以基於正值進行平均值計算,因爲任何負值都意味着它們尚未完成事件。使用此公式

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

可能在一個公式中包含所有這些,但今天早上我無法將我的大腦包裹起來。