Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 对SUMPRODUCT和VLOOKUP公式中的列使用变量_Excel_Variables_Vlookup_Vba - Fatal编程技术网

Excel 对SUMPRODUCT和VLOOKUP公式中的列使用变量

Excel 对SUMPRODUCT和VLOOKUP公式中的列使用变量,excel,variables,vlookup,vba,Excel,Variables,Vlookup,Vba,我试着用这个公式: =SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{4,5},0)) 它工作正常,但我想尝试为公式的{4,5}部分使用一个变量(数组中要求和的列),因为公式需要根据此公式之前的工作表输入进行更改 我在工作表上有一些单元格,用于设置要搜索的初始列和最终列(可能是10列,但10列必须从90个可用列中选择)。这些列是与每个年龄相关的总体。所以,如果我需要10到15岁的人口,我需要总结5列。如果是20-25,则需要总结5个不同的列 我尝试使用Colu

我试着用这个公式:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{4,5},0))
它工作正常,但我想尝试为公式的
{4,5}
部分使用一个变量(数组中要求和的列),因为公式需要根据此公式之前的工作表输入进行更改

我在工作表上有一些单元格,用于设置要搜索的初始列和最终列(可能是10列,但10列必须从90个可用列中选择)。这些列是与每个年龄相关的总体。所以,如果我需要10到15岁的人口,我需要总结5列。如果是20-25,则需要总结5个不同的列

我尝试使用Columns函数,但它似乎对我不起作用

用户在单元格中输入搜索范围的上限和下限来选择列,然后我将这些值转换为相应的数值列值

因此,如果他们选择5作为下限,10作为上限,我知道我必须添加7才能在数据页上获得正确的数据列(第12列),同样地,对于上限(第17列)

整个可能的搜索区域是
$D$4:$DC$4623
。所以,在公式中,如果我把它写得很长,它会是:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{12,13,14,15,16,17},0))
我更喜欢用变量写出来,比如:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{L:U},0)) 
其中变量L为12,变量U为17


有人能建议一种编写公式的方法吗?

使用以下数组公式:

=SUM(VLOOKUP(B$4778,$D$4:$DC$4623,ROW(INDIRECT(D5 & ":" & E5)),FALSE))
=SUM(INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),D5):INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),E5))
其中D5为下部,E5为上部

作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认。如果操作正确,excel将在公式周围放置
{}


或者最好使用以下非数组公式:

=SUM(VLOOKUP(B$4778,$D$4:$DC$4623,ROW(INDIRECT(D5 & ":" & E5)),FALSE))
=SUM(INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),D5):INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),E5))

太棒了!就像他们在英国说的那样,两人都工作得很愉快!你为我节省了很多时间和挫折。我将使用n0n数组公式。非常感谢。