当单元格地址未修复时,Excel计算差异的SUM

时间:2018-04-20 09:46:39

标签: excel excel-formula

在Excel中,我有一份员工列表(见图),我想存储他们的薪资更新历史记录。对于每次工资更新,我想计算他们的总工资差额。我无法创建计算公式以及$('#sticky').css({top: 60})每个期间的更新。

下面的图片展示了我的电子表格和所需的工资更新总数(我手动计算,下注需要一个公式)。实际上,将有几十名员工,因此对公式的要求是动态的,并且每行不包含手册“+”。

Example of my spreadsheet

注意:对于某些人来说,他们的工资可以保持不变,某些单元格中没有任何值。这是主要的挑战,因为我们必须为员工找到“前一薪水”的价值,因为它不必存储在前一个单元格中。否则,我可以使用一个简单的数组公式,如: 的 {= SUM(G3:G6-H3:H6)} 即可。但不幸的是,它在这种情况下不起作用(H列中没有值,所以我们必须找到它实际上的位置)。

此外,公式应该可以正常使用过滤:过滤掉某些行(人员处于非活动状态,请参见图片),应忽略此行/单元格。

任何人都可以帮我解决这个我正在努力的公式吗?

2 个答案:

答案 0 :(得分:0)

这将按照你的要求行事,而不是我最好的工作.Column "I"仍然是=SUM。记得按 Ctrl + shift + 输入。然后将公式拖动到要应用的位置。

{=IFERROR(IF(E3="",E3,E3-INDEX(F3:$I$3,MATCH(FALSE,ISBLANK(F3:$I$3),0))) +IF(E4="",E4,E4-INDEX(F4:$I$4,MATCH(FALSE,ISBLANK(F4:$I$4),0))) +IF(E5="",E5,E5-INDEX(F5:$I$5,MATCH(FALSE,ISBLANK(F5:$I$5),0))) +IF(E6="",E6,E6-INDEX(F6:$I$6,MATCH(FALSE,ISBLANK(F6:$I$6),0)));SUM(E3:E6))} Example

答案 1 :(得分:0)

这个公式确实给出了与你的测试数据相同的答案,如下所示, BUT 它做了一个非常大的假设 - 最后记录的薪水总是最大的。

=SUM(IF(D3:D6="",0,D3:D6-SUBTOTAL(4,OFFSET(E3,ROW(D3:D6)-ROW(D3),0,1,COLUMNS(E3:$J3)))))

enter image description here

必须使用 Ctrl Shift 输入

作为数组公式输入

如果要忽略隐藏的行,请使用忽略隐藏单元格的小计形式

=SUM(IF(D3:D6="",0,SUBTOTAL(104,OFFSET(D3,ROW(D3:D6)-ROW(D3),0,1,1))-SUBTOTAL(104,OFFSET(E3,ROW(D3:D6)-ROW(D3),0,1,COLUMNS(E3:$J3)))))

enter image description here