增量增加SUM公式的列字母

时间:2017-07-13 06:59:35

标签: excel excel-formula

我试图创建一个KPI表单,其中一个单元格需要在另一个表单中对单元格求和,这取决于它是哪个月,以创建YTD值。因此,对于每个月,这需要在右侧添加另一列。

现在我使用SUM(Sheet2!BE4:BI4)公式,我必须每月手动拖动1列到右边,所以下个月它将是SUM(Sheet2!BE4:BJ4)

我已经完成了一个单元格,它使用以下公式检索它应该使用哪个单元格,在这种情况下返回文本BI: = CONCATENATE(CHAR(66); CHAR(68 + MID(TEXT($ d $ 18;" DD / MM / YYYY&#34); 5; 1)))

我需要的是,当我在单元格中更换月份时,D18" (通过CONCATENATE公式引用)," BI4"将改变。如果我增加月份,它将自动更改为" BJ4"如果我减少月份,它将改为" BH4"。这可能吗?

2 个答案:

答案 0 :(得分:1)

试试这个公式

=SUM(Sheet2!$BE$4:BI$4)

将此公式拖到(右侧)时,它将变为=SUM(Sheet2!$BE$4:BJ$4)=SUM(Sheet2!$BE$4:BK$4),依此类推。

您在公式中使用相对参考。要获得理想的结果,您应该使用绝对参考混合参考。有关小区参考的详细信息,请参阅this

编辑:根据评论

使用此公式

=SUM(INDIRECT("Sheet2!BE4:"&CONCATENATE(CHAR(66),CHAR(68+MID(TEXT($D$18,"DD/MM/YYYY"),5,1)))&"4"))

注意:INDIRECT是一个易失性函数。有关易失性函数的详细信息,请参阅this

答案 1 :(得分:0)

我要在这里做一个假设 - 你在第4行有你的数字,在上面的行中你有这个数字的月份开始日期。类似于下面的布局。

enter image description here

注意:第2行中的月份名称是实际日期值,其自定义单元格格式为mmm - 它表示" Jan"但Excel会将其读作2017年1月1日(如果您想挑剔,则为42736天)。

有了这些数据,我们可以使用公式来查找一年中的第一天和在单元格D18中输入的所需日期。

公式DATE(YEAR($D$18),1,1)将在1月1日返回在单元格D18中输入的日期 要在第2行中找到此日期,我们可以使用MATCH返回列号:
 MATCH(<date formula>,$2:$2,0)MATCH(DATE(YEAR($D$18),1,1),$2:$2,0)

同样,我们可以使用匹配来查找结束日期列号:MATCH($D$18,$2:$2,0)

现在我们需要将这些列号转换为真正的单元格引用:
INDEX(<reference to whole row>,,<column in row to return>)
INDEX($4:$4,,<match formula to return column number>)
INDEX($4:$4,,MATCH(DATE(YEAR($D$18),1,1),$2:$2,0))返回第一个单元格引用。
INDEX($4:$4,,MATCH($D$18,$2:$2,0))返回最后一个单元格引用。

现在我们需要做的就是在sum公式中将它们结合在一起:
=SUM(<first cell reference>:<second cell reference>)
=SUM(INDEX($4:$4,,MATCH(DATE(YEAR($D$18),1,1),$2:$2,0)):INDEX($4:$4,,MATCH($D$18,$2:$2,0)))

当然,如果你没有与你的数字相关的日期,那么这不会起作用......

相关问题