如果我更改1以保持相同的总小时数,则自动更改所有日历小时的公式

时间:2016-06-21 14:38:46

标签: excel excel-formula

这个问题与我的其他帖子有关: Formula to divide data from one cell equally into multiple cells

这是我想要实现的目标: 如果我手动更改其中一个等分数字,是否可以自动更改日历中的值。

实施例

  • 总小时数400
  • 第1630周开始
  • 结束1630周

分为36个,我将36个中的1个更改为100个,其他36个自动更改为30个,因此总数保持为400个。 这就是我的Excel工作表的样子:http://imgur.com/9RUNTGV 左边的3列是

AQ4 = COUNTIF(L4:AP4; $ I4 /($ K4- $ J4 + 1))##这是具有分割总数的单元格数

AR4 = SUM(L4:AP4)##这是我用来与手动更改值之前的总小时数进行比较的总值

AS4 = COUNTIF(L4:AP4;“<>”& $ I4 /($ K4- $ J4 + 1)) - COUNTIF(L4:AP4;“”)##这是单元格数这不是$ I4 /($ K4- $ J4 + 1)或空白。

这就是我迄今为止所提出的,但它不起作用:

=IF(AND(AC$2>=$J4;AC$2<=$K4);$I4/($K4-$J4+1);AND($AS4>0;(2*$I4-$AR$4)/($AQ4-$AS4);($K4-$J4+1);$I4/($K4-$J4+1)))

3 个答案:

答案 0 :(得分:3)

试试这个:

=IF(AND(Y$2>=$J4,Y$2<=$K4),$I4/($K4-$J4+1),IF(AQ4<>AS4,(2*I4-AR4)/(AS4-AQ4),$I4/($K4-$J4+1)))

我不知道你想要实现什么,但这个功能不会产生错误

你的函数有不正确的参数放置所以它就像2个单独的函数试图在一个单元格中读取,如果你按照指南excel显示在函数下面而你在键入它时这可以在将来被阻止< / p>

答案 1 :(得分:0)

""; IF(aq4<>as4; (2*I4-AR4)/(AS4-AQ4; $I4/($K4-$J4+1))))

“If Not”,之后是第四个参数......

答案 2 :(得分:0)

在上一个问题的this answer中,我们在L7中有这个公式,可以将其复制到其他单元格中:

=IF( AND(L$2>=$J7; L$2<=$K7); $I7/($K7-$J7+1); "") 

现在的挑战是让该公式知道同一行上的其他值,因为它们可能已被手动更改。这会导致循环引用问题:单元格 L7 必须考虑对单元格 M7 所做的更改,但 M7 也应考虑更改细胞 L7 。如果(最初)在这两个单元格中没有手动编码的值,我们有一个循环引用。所以这不可能做到。

然而,可以完成的是,使每个单元格中的公式只看向左侧,并根据它进行计算。这样就不会有循环引用。

这导致 L7

的以下公式
=IF(L$2=$J7; 
    $I7/($K7-$J7+1); 
    IF(AND(L$2>$J7; L$2<=$K7); 
       ($I7-SUM(OFFSET(L7;0;$J7-L$2;1;L$2-$J7)))/($K7-L$2+1); 
       ""))

这意味着:

如果此单元格是句点中的第一个(L$2=$J7),则按以前的方式执行,并计算均匀分布的值($I7/($K7-$J7+1))。如果此单元格是该时段内的另一个单元格,则取以前单元格的总和(SUM(OFFSET(L7;0;$J7-L$2;1;L$2-$J7))),从总需求总和($I7-SUM(...))中减去该单元格,并将其除以剩余单元格的数量在右边,也计算这个单元格(.../($K7-L$2+1))。在所有其他情况下输出空字符串。

复制此公式。

一旦用一个固定数字覆盖一个值,你显然会破坏那里的公式。但是看看它是如何使它右边的细胞重新计算的。总和保持不变。请注意,不考虑期间之外的单元格更改。

最后,请务必从左到右进行手动更改。如果您对已经更改的另一个单元格左侧的单元格进行了更改,则事情将不再合适。在这种情况下,您首先必须在更深的单元格中恢复公式,然后在左侧单元格中进行更改,然后再按从左到右的顺序再次进行更改。