你需要三件才能使這個工作。第一是這樣的式(我們開始對TAB2工作):
=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",",""))
細胞C2
包含的依賴關係的列表,例如D1,D2
通知的1 * 255位在該式中 - 如果你改變了1〜2,然後這個公式給出了您在依存列表中的第二項,則第三等
現在我們有三個公式,這將使你的第一,第二或第三的依賴:
=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",",""))
=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),2*255,255),",",""))
=TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),3*255,255),",",""))
我們將採取每個公式,並在VLOOKUP包裹起來 - 這是要查找從TAB1目標結束日期:
=VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",","")),Tab1!$B$2:$D$100,3,FALSE)
在這個公式中,我假設數據被查找的是Tab1!$B$2:$D$100
,我假設目標結束日期在第三欄。請注意,這還假定依賴項列是列B.
此公式原樣將爲我提供第一個依賴關係的目標結束日期。
我們差不多準備好這些包裝成一個單一的功能,但我們做之前,我們要謹防VLOOKUP錯誤:
=IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0)
現在我們可以用max函數把三者結合起來,這將給予我們最大(最新)日期:
=MAX(IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),1*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0),IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),2*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0),IFERROR(VLOOKUP(TRIM(SUBSTITUTE(MID(SUBSTITUTE("," & C2&REPT(" ",6),",",REPT(",",255)),3*255,255),",","")),'Tab1'!$B$2:$D$100,3,FALSE),0))
我工作的事情,但你會更容易將有第三個標籤,稱爲交付的依賴。這對於每個行都是單行的,例如de1 | D1,de1 | D2等 - 是否有可能? – Cronan
嗨Cronan - 那麼你的意思是刪除可交付物 - 依賴列和移動到第三個選項卡?如果它僅用於計算目的,我可以創建另一個選項卡並在那裏複製這兩列。那會有用嗎? – Ankit
對不起,不,我的意思是另一個選項卡,它有兩列,依賴和交付。如果de1有兩個依賴項,這個新選項卡將有兩行,de1重複兩次。是什麼讓你的問題真的很難,就是把選項卡2上的依賴關係合併到一個單元格中的方式。 – Cronan