各位大佬,我在使用VLOOKUP函数查找数的时候,数据会涉及到底表多个位置的合计,我用了“=SUMPRODUCT(VLOOKUP(J$3,'成本-本年'!$A:$DB,{15,16,17,18,19,20},0))”这个公式,即取成本-本年表中15,16,17,18,19,20列对应位置的合计数,但是由于底表经常变化,大括号里的{15,16,17,18,19,20}这些列数可以从某个单元格引用过来么,这样每次调整公式我只需要调整这个单元格的值就好了。或者有什么其它可行的方案也行 公式, 单元格
可以使用 INDIRECT 函数来实现你的需求。INDIRECT 函数可以将一个字符串作为引用,返回对应的单元格所包含的值。 例如,你可以将列数列表存储在一个单元格中,例如 F1 单元格中,然后将 SUMPRODUCT 函数公式中的列数部分改为 INDIRECT 函数,如下所示: =SUMPRODUCT(VLOOKUP(J$3,'成本-本年'!$A:$DB,INDIRECT("F1"),0)) 然后,当你需要更改列数列表时,只需要将 F1 单元格中的值更改为你想要的列数列表即可。 需要注意的是,使用 INDIRECT 函数时,必须始终保证字符串参数的引用正确性和完整性,否则可能会导致公式错误。
随便做了个底表,比如底表里面的人工成本这行取了数据表2、4、6列的合计数,我用了=SUMPRODUCT(VLOOKUP(B$1,底表!$A:$G,{2,4,6},))这个公式,想问的是数组中的2,4,6可以从某个单元格中引用过来么,这样下次底表的顺序变化了以后我直接改某个单元格的这组数就好了 链接:https://pan.baidu.com/s/14Gbutv96yMes1V0G56IPHQ?pwd=u7n0 提取码:u7n0 --来自百度网盘超级会员V9的分享
scxsg 发表于 2023-3-9 15:27 可以使用 INDIRECT 函数来实现你的需求。INDIRECT 函数可以将一个字符串作为引用,返回对应的单元格所包含 ... 大佬 INDIRECT 函数如果是单列没问题,但是如果用多列的常量数组后就不能计算了
=SUMPRODUCT(VLOOKUP(J$3, INDIRECT("'成本-本年'!$A:$DB"), INDEX( TRANSPOSE( {ADDRESS(1,J$4,4), ADDRESS(1,J$4+1,4), ADDRESS(1,J$4+2,4), ADDRESS(1,J$4+3,4), ADDRESS(1,J$4+4,4), ADDRESS(1,J$4+5,4)} ), ), 0) ) 试试
咋传本地图片啊 模板工作表b2单元格公式(右拉下拉到i3):[Asm] 纯文本查看 复制代码SUMPRODUCT((底表!$A$2:$A$8=B$1)*(ISNUMBER(FIND($A8,底表!$B$1:$G$1)))*底表!$B$2:$G$8) 模板工作表b4单元格公式(右拉到i4): [Asm] 纯文本查看 复制代码SUMPRODUCT((底表!$A$2:$A$8=B$1)*((ISNUMBER(FIND(MID($A10,2,1),底表!$B$1:$G$1)))+(ISNUMBER(FIND(MID($A10,1,1),底表!$B$1:$G$1))))*底表!$B$2:$G$8)
示例文件: 链接: https://pan.baidu.com/s/1fXIhwN-grWBtZ5E4-XC5Aw?pwd=52pj 提取码: 52pj 复制这段内容后打开百度网盘手机App,操作更方便哦