我需要大家的帮助,关于如何通过跳过中间的一列来对所有值求和。
示例:我有从 A1 到 Z1 的原始数据,我想添加/求和所有数字,但跳过一列。仅添加 A1、A3、A5 等(Z1 以外)。
感谢您的帮助。
答案1
答案2
使用此公式对从 A1 到 Z1 的所有奇数列求和:
=SUM(IF(MOD(COLUMN($A$1:$Z$1),2)=1,$A$1:$Z$1,0))
答案3
可以采取稍微不同的方法:
=SUM(INDEX(A1:Z1,1,SEQUENCE(1,ROUNDUP(COLUMNS(A1:Z1)/2,0),1,2)))
INDEX()
如果您能弄清楚如何操作,将允许您选择所有奇数列。制作一个SEQUENCE()
从 1 开始,每一步增加 2,并且知道要走多少步的程序。
有多少步骤?好吧,假设您有九列。所以列 1、3、5、7 和 9。总共五列。一种方法是计算列数,如果是奇数则加一,如果是偶数则不加,然后除以 2。这似乎……很难……因为您需要一些复杂化,而不是直接将列数除以 2 并四舍五入。如果列数是偶数(例如 26 列),则除法将得到一个整数(小数部分为 .0),四舍五入后保持不变。如果是奇数,小数部分为“.5”,四舍五入。因此,在我给出的 9 列示例中,它将得到 4.5 并四舍五入为所需的 5。
如果你使用LET()
,它可能看起来像这样:
=LET(Range,A1:Z1,
SUM(INDEX(Range,1,SEQUENCE(1,ROUNDUP(COLUMNS(Range)/2,0),1,2))))
如果您必须更改它所求和的单元格,比如说要扩大列数,那么您只需要在一个地方而不是两个地方执行此操作,并且这个地方就在它的开始处。
避免这样做的一种方法是使用超出 Z 列的范围,这样您就可以继续添加列,而公式仍然有效。这样没问题,因为额外的列会有 0,不会影响总和。
更好的方法是为一个额外的列制定公式,并用它Insert
来添加任何新列。Excel 会调整公式。但是,如果您有用户,而他们不会这样做,Insert
而是直接在额外的列中输入内容而不做任何进一步的思考,那么这种方法就行不通了。那么前一种方法会更好。