2017-08-24 82 views
0

我的Excel表中有兩個選項卡。跟蹤Excel中的任務依賴關係

選項卡1:包含跨多個功能區域的所有依賴項的列表。這些列是功能區,依賴項說明,依賴項ID,計劃結束日期,目標結束日期。

標籤2:包含的任務有以下的列的列表:

功能區,交付名稱,交割描述,目標日期,日期推算,依賴性ID

例如

Functional Area Dependencies Plan end date Target End date 
    F1   D1   8/22   8/22 
    F1   D2   8/23   8/23 
    F2   D3   8/24   8/24 
    F2   D4   8/25   8/25 

Functional Area Deliverable Dependencies Target Date Projected Date 
    F1    de1  D1, D2  8/20   
    F1    de2  D1   8/20   
    F2    de3  D3, D4  8/20   
    F2    de4  D3   8/20   

依存關係ID將包含來自標籤1的幫助,我想綁在一個給定的交付的所有ID是要找出一個辦法,如果我的任何依賴聯繫在一個規定交付的有個約會過我的交付物的目標日期,我的預計日期應填充到所有依賴項中的最新日期。所以在上面的例子中,de1的預計日期應該填充到8/23,而d2的預計日期應該是8/22。請指教。謝謝。

+0

我工作的事情,但你會更容易將有第三個標籤,稱爲交付的依賴。這對於每個行都是單行的,例如de1 | D1,de1 | D2等 - 是否有可能? – Cronan

+0

嗨Cronan - 那麼你的意思是刪除可交付物 - 依賴列和移動到第三個選項卡?如果它僅用於計算目的,我可以創建另一個選項卡並在那裏複製這兩列。那會有用嗎? – Ankit

+0

對不起,不,我的意思是另一個選項卡,它有兩列,依賴和交付。如果de1有兩個依賴項,這個新選項卡將有兩行,de1重複兩次。是什麼讓你的問題真的很難,就是把選項卡2上的依賴關係合併到一個單元格中的方式。 – Cronan

回答

1

你需要三件才能使這個工作。第一是這樣的式(我們開始對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))

+0

此方法不需要添加第三個選項卡 - 請讓我知道是否有任何不清楚的內容 – Cronan

+0

謝謝Cronan。我會馬上給你一個嘗試,讓你知道它的工作 – Ankit

+0

嗨克羅南 - 公式的作品完美,但他們無論如何使這個公式動態,因爲一些功能區有3個依賴項,有些有6個,有些有8個。而且這些依賴關係可以不斷添加,刪除,因此需要以這種方式使其變爲動態 – Ankit