我有一个看起来像这样的Excel列表:
我需要计算行C中值已完成的行数。但如果 T 列B中的值包含 Semikolon 它有计数双,如果它包含 2 Semikolons 它需要计算 3 等等......
她是一张图片,展示了计数应该如何运作。
我将无法在工作表中添加另一列,因此我可以锁定Matrix Fomula或类似的东西。
直到现在我用Countif和Countifs公式尝试了它但是没有用。 有人可以给我一个提示,如何做,或者最好使用Fomula?
答案 0 :(得分:4)
对于“已完成”总计,请使用此公式(根据需要调整范围以适合您的实际数据):
=SUMPRODUCT((LEN($B$5:$B$28)-LEN(SUBSTITUTE($B$5:$B$28,";",""))+1)*($C$5:$C$28="Finished"))
对于您的“待定”总数,如果需要相同的处理,请使用以下公式:
=SUMPRODUCT((LEN($B$5:$B$28)-LEN(SUBSTITUTE($B$5:$B$28,";",""))+1)*($C$5:$C$28="Pending"))
答案 1 :(得分:1)
您是否可以使用/创建新工作表(包含数据的工作表除外)?如果是,您始终可以计算在单独的工作表中使用所需的值,然后使用单元格引用将值拉回到原始工作簿中。因此,在Sheet2(例如)中,我将有两列:
待定:=IF(Sheet1!$C4="Pending",1+LEN(Sheet1!$B4)-LEN(SUBSTITUTE(Sheet1!$B4,";","")),0)
结束:=IF(Sheet1!$C4="Finished",1+LEN(Sheet1!$B4)-LEN(SUBSTITUTE(Sheet1!$B4,";","")),0)
根据需要填写该公式。
然后,在您要输入总和的原始工作表上(我在上面的公式中将其称为Sheet1,您将执行=SUM(Sheet2!$B$1:$B$25)
填充Amount Pending单元格,=SUM(Sheet2!$A$1:$A$25)
填写已完成金额。
** 如果你不允许使用新的工作表,我会说VB脚本是唯一的另一种选择。
<强> EDITED 强> 最佳解决方案是先前提供的SUMPRODUCT公式。