递增地增加SUM公式的列字母

我正在尝试创build一个KPI表,其中一个单元格需要在另一个工作表中对单元格进行求和,具体取决于哪个月,以创buildYTD值。 所以对于每个月,这需要总结另一列的权利。

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

我已经做了一个单元格检索哪个单元格应该使用下面的公式,在这种情况下返回文本BI:= CONCATENATE(CHAR(66); CHAR(68 + MID(TEXT($ D $ 18;“DD / MM / YYYY“); 5; 1)))

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

试试这个公式

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

当你拖动这个公式(到右边)它将变成=SUM(Sheet2!$BE$4:BJ$4)=SUM(Sheet2!$BE$4:BK$4)等等。

您在公式中使用相对参考 。 为了得到理想的结果,你应该使用绝对参考混合参考 。 有关单元格引用的详细信息,请参阅

编辑:根据意见


使用这个公式

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

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

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

在这里输入图像说明

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

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

公式DATE(YEAR($D$18),1,1)将返回在单元格D18中inputdate的1月1日。
要在第2行find这个date,我们可以使用MATCH返回列号:
MATCH(<date formula>,$2:$2,0)MATCH(DATE(YEAR($D$18),1,1),$2:$2,0)

同样,我们可以使用match来查找结束date列号: 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)))

当然,如果你没有与你的数字有关的date那么这将无法正常工作….