【问题标题】:Formula to distribute "exceeded" amounts to adjacent cells (up, down or up & down) depending on the scenario根据场景将“超过”数量分配到相邻单元格(向上、向下或向上和向下)的公式
【发布时间】:2019-02-15 12:39:04
【问题描述】:

根据 teylyn 的评论进行了编辑,另外我意识到原始屏幕截图中存在错误。对此感到抱歉。:

我正在尝试使用 D 列从 C 列分配“超过”的金额,就像溢出一样。该图显示了有时会出现的常见场景

我需要一个细胞向下分布,有时向上,有时向上和向下。

图像中的箭头显示了它在相邻列上分布的原始值以及它的分布方向(向上、向下或两者兼而有之)。

teylyn 问道:“你试过什么 - 这不是一个免费的网站!” (我的话不是他的???确定使用哪个相邻的单元格/列。我可以让它向一个方向分布——我已经安定下来了,但我曾经有过一次,但我似乎不能同时做这两个。

这是我最终尝试过的...好吧,已经太晚了,所以我明天必须回来完成这个以解释我尝试过的大量事情,但基本上,它是一堆帮手使用 =IF(This>=That,This,That,OrTheOtherThing) 的单元格,然后将它们向下汇总几列以供 D 列参考。就像我说的那样,它可以向下分配,但不能向上或向上和向下分配。

【问题讨论】:

  • 这需要递归,而 Excel 公式可能无法做到这一点。你需要用 VBA 来做到这一点。哦,总是很受欢迎:你试过什么?因为这个网站不是免费的脚本编写服务。
  • @Jeff - 是什么决定了它是向上还是向下“分布”?

标签: excel excel-formula formula distribute


【解决方案1】:

我不清楚什么逻辑会决定它何时“分布”,所以也许这种仅向下的方法可以帮助您开始并帮助您确定哪种逻辑是,嗯,逻辑

这只是减去当前单元格“上方”单元格的总和的运行总计。

在单元格B1中:=IF(SUM($A$1:A1)>48,48,SUM($A$1:A1)-SUM($B1:B$1))

在单元格B2中:=IF(SUM($A$1:A2)-SUM($B$1:B1)>48,48,SUM($A$1:A2)-SUM($B$1:B1))

..然后将fill B2复制到该列的其余部分。

【讨论】:

  • 首先,在这里感谢您的帮助。我真的很感激!你提供的公式比我之前的几个帮助列要好得多——我想我把它复杂化了。我有一个上升、下降的方法,我几年前在我的旧工作中使用过这两种方法,但不会让访问从他们那里得到它。至于逻辑:只要上面少于 48 个(我称之为“足够的空间”),它就应该上升,并将上游不适合的任何东西溢出到下游最近的单元格中。几年前,我从 Microsoft excel 论坛中的一位 MVP 那里获得了帮助 - 我再也找不到那些论坛了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2011-10-06
  • 2023-03-31
  • 1970-01-01
  • 2015-12-23
  • 1970-01-01
  • 2012-10-16
相关资源
最近更新 更多