簡體   English   中英

Excel Forumla / VBA跳過空白列進行計算

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM