我正在建立年度记分卡(上面显示的样本)。记分卡的要求如下所列。
使用这个公式我正在尝试查看第2行中的每个列指示符,并尝试测试ISTEXT()以将值添加到ROW() - 1中。使用concatenate构建引用行范围的字符串可能不是最好的方法。
示例:如果我在第55行有值 = SUM(间接(CONCATENATE(行() - 1,“:”,行() - 1)))
= SUM(INDEX(INDIRECT(CONCATENATE(ROW() - 1,“:”,ROW() - 1)),MATCH(ISTEXT(2:2),2:2,0)))
我尝试使用水平sumifs()公式,运气不佳,尝试使用column()函数的模数值作为逻辑测试。
公式不起作用 = SUMIFS(INDIRECT(ROW() - 1&“:”& ROW() - 1),MOD(COLUMN() - 2,6),0)
或者使用其他一些方法来测试要添加的列。 = SUMIFS(间接(CONCATENATE(ROW() - 1,“:”,ROW() - 1)),IF(ISTEXT(2:2),1,0),TRUE)
如果我将第2行(N,H,T)中的字母更改为“X”,则测试可行的X,但此公式不考虑仅添加当前和之前期间的值的要求。 = SUMIFS(间接(CONCATENATE(行() - 1,“:”,行() - 1)),2:2,“X”)
我不知道如何根据您所在的列添加动态数量的间接单元格引用。所以让我们说它在第3期的第55行,我需要一个看起来在行中的公式2,看到每个列值(H,N,T)并加起来H55,N55,T55)。同样的公式需要根据它是否在第2期(H,N),(H55,N55)中构建一个不同的列表。
也许我需要完全重新考虑我的方法?写VBA而不是?
编辑 为了更好地扩展数据模型的内容,为了解决一些注释,我抛出了一些虚拟值和脏公式。
了解服务水平与年初至今的服务水平(YTD)。服务级别只是每周性能的平坦数据条目,然后“摘要”列是每周性能的简单平均值,以报告期间性能。年初至今的数字是期间数的平均值,因此这些值会逐渐累积。
我想写的公式是汇总列,包括期间值和YTD值。
答案 0 :(得分:0)
对于T栏使用:
=SUM(IF(MOD(COLUMN($H:T),6)=2,$H$1:T$1,0))
这是一个数组公式,必须使用 Ctrl + Shift + Enter 确认。
将$H$1:T$1
更改为您需要求和的rownumber(它将仅以H
开头的每第六列加总)
第9行有UPEH,第10行有此代码,然后=SUM(IF(MOD(COLUMN($H:T),6)=2,$H$9:T$9,0))
如果设置正确一次,您可以根据需要复制粘贴(只要它从H
开始每隔第6列保留一次)
为了让它更动态,你可以更好地使用:
=SUM(IF($A$4:T$4="Summary",$A$9:T$9,0))
这是一个数组公式,必须使用 Ctrl + Shift + Enter 确认。
它检查第4行是否包含"摘要"得到值的总和:)
修改强>
但是,如果你想在每个部分中使用完全相同的公式,你需要使用类似的东西:
=SUM(IF(AND($4:$4="Summary",COLUMN($4:$4)<=COLUMN(),OFFSET($1:$1,ROW()-2,),0))
这是一个数组公式,必须使用 Ctrl + Shift + Enter 确认。
它将所有单元格中的所有单元格从开头直到(包括)所有列包含&#34;摘要&#34;在第4行中 然而,这可能会非常快(估计很多)^^
BIG HINT :只看你的需要
让asume要添加的单元格在第1行,输出在第2行...... 我们也跳过不计算的列(为了方便)......
A2 would be just A1
B2 would be A1 + B1
C2 would be A1 + B1 + C1... but wait!
A1 + B1 = B2 so better -> C2 = B2 + C1
leads to:
R2Cx = R2C(x-1) + R1Cx
如果您只是在N列中使用该行为(它是它的值和左侧的计算值(H列))并且也是这样写的,您可以复制它并将其粘贴到T列中你会得到=T(above) + N(calculated)
。检查一下:)
答案 1 :(得分:0)
您的数据布局并不完全清楚。
所以,假设:
公式
{{1}}