昨天有一个同学提问:
有N个月份的表格,想对同一个表求和可以用公式
=SUM('1月:6月'!A1)
但如果想对任意月份之间的A1单元格求和,该如何设置公式?如下图所示根据C1的开始月份和C2的结束月份,动态计算该月份之间的A1的和
分析:要解决这个问题,首先要根据开始和结束月份数字生成所有月份的地址
=ROW(INDIRECT(C1&":"&C2))&"月!A1"
公式说明:indriect可以把连接后的文本转换为行数,然后用row取行数值生成连续的整数
然后再用indirect把文本转换为引用,外面再套sum求和(老版本应该需要按ctrl shift enter三键输入数组公式)
=SUM(INDIRECT(ROW(INDIRECT(C1&":"&C2))&"月!A1"))
如果需要向下复制公式,对A2,A3...动态求和,公式可以修改为
=SUM(INDIRECT(ROW(INDIRECT(C$1&":"&C$2))&"月!A"&ROW(A1)))
兰色说:今天的多表求和公式中,应用了indirect的两个生要应用,一个是row+indirect生成动态序列,一个是把文本转换为引用。它才是多表求和的背后大神。
领取专属 10元无门槛券
私享最新 技术干货