【发布时间】:2018-02-20 06:05:54
【问题描述】:
我正在尝试对范围不断变化的单元格范围求和。
A 0
0
5
0
B 1
C 2
4
“A”应该返回 5,“B”应该返回 1,“C”应该返回 6。一些研究告诉我,OFFSET 公式可能有效,但我没有运气。
【问题讨论】:
标签: excel excel-formula
我正在尝试对范围不断变化的单元格范围求和。
A 0
0
5
0
B 1
C 2
4
“A”应该返回 5,“B”应该返回 1,“C”应该返回 6。一些研究告诉我,OFFSET 公式可能有效,但我没有运气。
【问题讨论】:
标签: excel excel-formula
这个怎么样:
在数据列之间插入一列并粘贴公式:(假设 Col A 现在有 A、B、C 和 Col C 有数字,您将其粘贴到 Col B):
=IF(AND(A2="",A1<>""),B1,IF(AND(A2="",A1=""),B1,A2))
请添加标题行以避免第一列出现错误...
这将填充值,您的数据现在将如下所示:
ColA ColB ColC
A A 0
A 0
A 5
A 0
B B 1
C C 2
C 4
现在您可以像这样使用 sumif 甚至是数组输入公式来汇总值:
Col F=SUM(IF($B:$B=E2,$C:$C,0)) 中的公式(使用 CTRL+Shift+Enter 而不是正常的回车,使其成为数组公式)
ColE ColF
C 6
B 1
A 5
希望这会有所帮助。
【讨论】:
不填写Column A 中的空白,这里是实现目标的公式。假设您要填写cell C1的公式(这是一个数组公式,请同时单击Ctrl + Shift + Enter):
{=IF(A1="","",SUM(OFFSET($A1,0,1,MATCH(0,ISNUMBER(VALUE(A2:$A$7&B2:$B$7))*1,0))))}
它的作用是使用OFFSET 来查找要聚合的范围。棘手的部分是OFFSET 的Height。为了找到它,我连接column A and column B 并检查它是否返回为值,使用ISNUMBER 和*1 将TRUE 和FALSE 更改为0 和1。找到下一个0 并返回行号我知道在哪里停止添加号码。希望这会有所帮助,但如果您有任何问题,请告诉我。
【讨论】: