我遇到了一个似乎无法解决的 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
连续存在多少个值实例,然后将该值除以实例数。为此,我建议如下:
- 添加标题行。您不需要有但是它使公式变得更简单,因为您不必在第一行时进行错误检查。
- 在单元格中使用此公式
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)