[英]Excel Forumla/VBA to skip blank columns for calculation
我有一個特殊的數據集,其中包含有關我們公司從事的項目的信息。 每個項目可以經歷五個不同的狀態,我們有一列記錄該項目進入該特定狀態的每個日期。
現在進入Excel部分。 我們正在嘗試計算每種狀態下的天數,並找到項目的總時間。 總計很容易做到,因為我可以使用項目提交日期和項目上線日期之間的網絡天數。 但是,這些狀態給我帶來了問題,因為有時項目會跳過狀態,而日期字段為空。 因此,發生的情況是項目從狀態B變為狀態D,狀態為“ B”的天的公式在“ C”列中查找一個日期,以用作NETWORKDAYS公式中的第二個日期。 如果為空,則IF參數告訴公式使用TODAY()作為第二個日期。 我需要做的是搜索右邊的列(在該行的A:E的給定范圍內)並使用該日期(如果存在)。 如果不是,那么它可以默認為TODAY(),因為這將是一個尚未進行的“活動”項目。
=IF(IF(OR([@STALLED]<>"",[@CANCELED]<>""),"",IF([@INTAKEDATE]="","",IF([@SCOPEATE]="",NETWORKDAYS([@INTAKEDATE],TODAY()),(NETWORKDAYS([@STATUSADATE],[@SCOPEATE])))))<0,"",(IF(OR([@STALLED]<>"",[@CANCELED]<>""),"",IF([@INTAKEDATE]="","",IF([@SCOPEATE]="",NETWORKDAYS([@INTAKEDATE],TODAY()),(NETWORKDAYS([@STATUSADATE],[@SCOPEATE])))))))
這是針對每種狀態完成的,因此該表如下所示:
PROJECTID PROJECTNAME投入范圍建造日期TESTDATE投放日期投入時間SCOPEDAYS BUILDDAYS TESTDAYS
如果有任何宏或更好的公式,有人可以幫助我找出答案,我將不勝感激。 還有一個字段提供當前狀態,或者如果有幫助的話,則將該項目視為正在運行。 我現在有excel-block,想不出任何有意義的方法。
因此,我使用MIN
並通過調整IF
公式來弄清楚。 無論是誰先前發布過有關MAX
的文章,都確實幫助了我走這條路。 先生/女士,對您表示敬意。
我必須添加檢查以查看SCOPEDATE = BUILDDATE,因為如果日期匹配,它將返回1,與從INTAKEDATE到GOLIVEDATE運行網絡日相比,它又增加了一天的時間。
=IF(OR([@STALLED]<>"",[@CANCELED]<>""),"",
IF([@SCOPEDATE]="","",
IF([@SCOPEDATE]=[@BUILDDATE],0,
IF(NETWORKDAYS([@SCOPEDATE],(MIN([@BUILDDATE],[@TESTDATE],[@GOLIVEDATE])))<0,NETWORKDAYS([@SCOPEDATE],TODAY()),NETWORKDAYS([@SCOPEDATE],(MIN([@BUILDDATE],[@TESTDATE],[@GOLIVEDATE])))))))
我希望這對其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.