Excel 公式用于计算值何时发生变化?

Excel 公式用于计算值何时发生变化?

我遇到了一个似乎无法解决的 Excel 难题。

在 A 列中有一长串县的列表,每个县都是一个更大的县群的成员,这些县与我们组织的特定资金请求有关。B 列是该请求中的总资金金额——例如,如果某个组织收到了 3,000 美元,并声称为 Smith、Robeson、Macon 和 Duplin 县提供服务,则电子表格如下所示:

Col A    Col B   (data starts in row 1) 
Smith    3000
Robeson  3000
Macon    3000
Duplin   3000

.. 该列表还列出了其他请求中的县,总共约有 1200 行条目。

我正在尝试设置一个函数,允许将总金额(3000)除以单元格数量直到......为止B 值发生变化。因此,例如,如果下一个 B 值为 6500,则公式将只计算分母中的 A1-A4。理论上,这允许我将公式拖到整个列中,而不是每次有新的县分组时手动更改范围。(条目已经排序,因此来自相同值请求(例如,两个 10,000 美元的请求)的两个县分组不会彼此相邻)。

我无法构建一个可以根据值解释未知范围的 COUNT 公式改变而不是发生。如果您能提供任何帮助,我将不胜感激!哦,万圣节快乐。

答案1

可能有更好的方法来格式化您的数据。例如,如果连续两个请求的金额相同怎么办?您需要为每个请求提供一个唯一的 ID,以便区分它们。但是,为了回答您的实际问题,我相信您的目标是计算B连续存在多少个值实例,然后将该值除以实例数。为此,我建议如下:

  1. 添加标题行。您不需要但是它使公式变得更简单,因为您不必在第一行时进行错误检查。
  2. 在单元格中使用此公式C2并根据需要复制/粘贴:
    =IF(B2=B1,C1,B2/(MATCH(TRUE,INDEX(B2:B1001<>B2,),0)-1))
    如果值与前一个相同,则只需复制其计算值。否则,计算一行中有多少个相同的值,然后将该值除以该计数。
    请注意,我假设一行中的值少于 1,000 个,因为这应该涵盖它。

答案2

如果您添加一列来识别资金请求,这将容易得多。它可以不可见;例如,列Z。设置Z1为 1,并设置Z2

=IF(B1=B2, Z1, Z1+1)

并将其拖到数据底部。那么你想要的分母就是

COUNTIF(Z$1:Z$9999, Z1)

(调整9999以覆盖所有数据),因此C1可以

=B1 / COUNTIF(Z$1:Z$9999, Z1)

答案3

设置 C2 TO1并在 C2 中写入以下公式:=IF(B3=B2,(C2+1),1)

公式截图

相关内容