首页 文章

excel公式取决于不同列中的动态值

提问于
浏览
2

我试图使用SUM和SUMIF创建一个excel公式,但无法找到如何 .

我有一个第一列(A),它是一项工作的总时间,然后是每一行每天在该任务中花费的时间(列B,C,......) .

对于每一天(列B,C,......),公式将仅返回A列中(对于该特定列)与那天已完成的任务相关的那些值的总和:所有单元格的总和在一行内等于或大于任务分配的时间 .

  • 一个12小时任务的示例:
A   B  C  D  E    
    12  4  6  2  0

使用公式:

A   B  C  D  E
    12  4  6  2  0    
    0   0  0  12 0

其中12显示在D列中,因为4 6 2 = 12(A列)


  • 第二个例子(3个任务):
A   B  C  D  E    
    10  9  0  1  0    
    21  8  8  5  0    
    5   0  0  3  2

使用公式:

A   B  C  D  E    
    10  9  0  1  0    
    21  8  8  5  0
    5   0  0  3  2
    0   0  0  31 5

哪里:

31(D日)= 10(任务1当天结束)21(任务2也完成当天)

5(第E天)=任务3在那天结束


试过这个公式(对于B日):

SUMIF(B1:B3,">=A1:A3",A1:A3)

(如果该行p到列B的单元格(在这种情况下只是B)> = =迭代的那些,则将A列中的值相加) .

然后对于C列,它将是,

SUMIF(C1:C3 + B1:B3,">=A1:A3",A1:A3)

上面的例子不起作用(第一个返回零,第二个是无效公式),任何想法?

谢谢 .

2 回答

  • 0

    用户ServerS给出的下面的公式工作正常:

    Col B:

    =IF(SUM(B2)=A2,A2,0)+IF(SUM(B3)=A3,A3,0)+IF(SUM(B4)=A4,A4,0)+IF(SUM(B5)=A5,A5,0)
    

    Col C:

    =IF(SUM(B2:C2)=A2,A2,0)+IF(SUM(B3:C3)=A3,A3,0)+IF(SUM(B4:C4)=A4,A4,0)+IF(SUM(B5:C5)=A5,A5,0)
    

    Col D.

    =IF(SUM(B2:D2)=A2,A2,0)+IF(SUM(B3:D3)=A3,A3,0)+IF(SUM(B4:D4)=A4,A4,0)+IF(SUM(B5:D5)=A5,A5,0)
    

    但是有两个不便之处:如果添加了新行,则需要对其进行调整并包含另一个IF() . 如果IF试图将公式传播到相邻单元格是不可能的,那么更好的是有一个通用SUM,因为它会改变公式的一部分,如“= A2,A2,0”到“= A3,A3,0”,这需要保持不变 .

    如果可能的话,任何其他改进这一点的想法都会受到赞赏 .

  • 0

    您可以避免使用带有sumproduct的IF . 此方法允许用于插入所需的任何行 . 确保范围正确(例如A2:A5,最后一行使用5) . 我会这样做:

    在B栏:

    =SOMMEPROD(($A$2:$A$5)*($A$2:$A$5=(B2:B5)))
    

    在C栏:

    =SUMPRODUCT(($A$2:$A$5)*($A$2:$A$5=(B2:B5+C2:C5)))-B6
    

    在D栏

    =SUMPRODUCT(($A$2:$A$5)*($A$2:$A$5=(B2:B5+C2:C5+D2:D5)))-C6-B6
    

    在E栏

    =SUMPRODUCT(($A$2:$A$5)*($A$2:$A$5=(B2:B5+C2:C5+D2:D5+E2:E5)))-D6-C6-B6
    

    SUMPRODUCT

相关问题