所以,你要像=sign_off_time(1234569)
返回9:14
?這種事情很簡單。但確切的實現將取決於您想要讀取這些數據的位置以及您的工作表結構的其餘部分。
基本上,我認爲你遇到的基本問題是VLOOKUP()
需要索引位於查找數組的第一列,然後才能找到索引右側的值。解決方案是使用INDEX()
和MATCH()
的組合代替VLOOKUP()
。 Here's a nice write up of how to use INDEX/MATCH and a comparison of this with VLOOKUP.
編輯:好的,你準備好了嗎?在這裏,我們去...如果工作表Sheet1看起來是這樣的:
1234569 |John Smith
From To Dur. Activity
9:00 9:01 0:01 Open
8:55 10:15 1:20 Activity3
6:55 8:19 1:24 Activity4
9:01 9:14 0:13 Signon
4657915 Jane Doe
From To Dur. Activity
8:55 10:15 1:20 Open
6:55 16:33 9:38 Activity4
11:55 15:42 3:47 Signon
8461224 Bob Dulluth
(etc)
,那麼這將在Sheet2中工作(或任何地方,真的)。它找到查找ID的行(例如,1234569),然後在下面找到'Signon'的第一個匹配項(不管下面有多遠),然後查找該行的第二列(註銷時間)。這將休息如果一個人的記錄沒有「登錄」活動,它會發現下一個人的「登錄」。
=INDEX(Sheet1!C2,MATCH("Signon",INDIRECT("Sheet1!R"&TEXT(MATCH(Sheet2!RC1,Sheet1!C1,0),"@")&"C4:R"&TEXT(ROWS(C3),"@")&"C4",FALSE),0)+MATCH(Sheet2!RC1,Sheet1!C1,0)-1)
式中的參考Sheet2!RC1
爲查找ID,因此根據需要更改。
您的數據是否始終格式一致?具體來說,'1234569'總是4行,'Signon'左邊3列? –
有時沒有「登錄」值進一步下降或反之亦然 – David