Project Est Comp Need Date Revision Date
ABC123BLDP01.001 1/1/2017 2/14/2017 12/31/2017
ABC123BLDP01.001 1/12/2017 2/14/2017 1/5/2017
ABC123BLDP01.001 2/25/2017 2/14/2017 2/14/2017
ABC123BLDP01.001 4/30/2017 2/14/2017 3/31/2017
ABC123BLDP01.001 5/26/2017 2/14/2017 4/27/2017
我有一张与上面类似的表格。它里面有数百个项目,我正在想出最简单的方法来计算每个项目的第二列(Est Comp)更改的次数。数据在 excel 中。我需要 VBA 吗?或者我可以在这里创建一个 COUNTIFS 语句吗?我想不出如何使用 COUNTIFS 逐行检查同一项目的日期差异。
答案1
从上面的评论来看,似乎你只想计算给定项目中预计完成日期发生变化的行,即包含清楚的日期。这意味着,给定的预计完成日期将仅被计算一次,即使给定项目的预计完成日期出现多次。
关于如何列出和计算唯一值和不同值的良好解释可以找到这里并给出了一些使用 SUMIF() 函数的示例这里。
下图所示的方法需要如图所示的“辅助”列。辅助列的公式为=1/COUNTIFS(A$2:A$16,A2,B$2:B$16,B2)
。这会计算给定项目和预计完成日期组合在列表中出现的次数,然后取该数字的倒数。
例如,项目 ABC... 仅出现一次,预计完成日期为 1/1/17,但出现两次,预计完成日期为 1/12/17。因此倒数为 1 和 0.5。这样做的原因是,将给定项目的这些数字相加可以得出项目和预计完成日期列的不同组合数,也就是每个项目有多少个不同的预计完成日期。
如果您有兴趣,上面的链接对此有更详细的解释。
现在让我们列出项目清单。单元格 F2 有以下公式:
=IFERROR(INDEX($A$2:$A$16,MATCH(0,INDEX(COUNTIF($F$1:F1,$A$2:$A$16),0,0),0)),"")
请注意,第一行数据上方必须有一行才能使此公式正常工作。您有列名,所以没问题。
现在剩下要做的就是计算每个项目的不同 Est Comp 日期的数量。G2 中的公式为:
=SUMIF(A$2:A$16,F2,E$2:E$16)
此公式将每个项目的 Helper 列相加,并得出每个项目的不同 Est Comp 日期的数量。日期的次数已更改可能比这个数字少 1,但是您可以决定并在需要时减去 1。
我希望这个帮助能祝你好运。