Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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 2003中定义间接引用其他工作簿的命名范围_Excel_Validation - Fatal编程技术网

在Excel 2003中定义间接引用其他工作簿的命名范围

在Excel 2003中定义间接引用其他工作簿的命名范围,excel,validation,Excel,Validation,我试图在Excel 2003中的特定工作簿中定义命名范围。具体来说,我想将名称“name”指定给工作簿“Hours”的第4页上的一个范围(数据列表)。此数据列表本身是引用其他工作簿的公式的输出(“任务分解”)。例如,工作表4的单元格A2(“小时”工作簿)=“[Task breakdown.xls]Sheet2”!A2和“” 当我如上所述创建/定义命名范围时,单击ctrl F3时,它将显示在命名范围列表中。但是,当我在公式中引用命名范围(使用“Name”)时,它不起作用。此外,当我单击左上角“名称

我试图在Excel 2003中的特定工作簿中定义命名范围。具体来说,我想将名称“name”指定给工作簿“Hours”的第4页上的一个范围(数据列表)。此数据列表本身是引用其他工作簿的公式的输出(“任务分解”)。例如,工作表4的单元格A2(“小时”工作簿)=“[Task breakdown.xls]Sheet2”!A2和“”

当我如上所述创建/定义命名范围时,单击ctrl F3时,它将显示在命名范围列表中。但是,当我在公式中引用命名范围(使用“Name”)时,它不起作用。此外,当我单击左上角“名称”框旁边的小下拉箭头以显示命名范围时,“名称”不会显示。知道为什么吗

我试图使用范围“Name”(同样,由引用其他工作簿的公式的输出组成)作为公式中的引用,该公式在数据验证中指定“源”

范围“名称”定义如下:

=OFFSET(Sheet4!$B$1,1,0,SUMPRODUCT((Sheet4!$B:$B<>""+0)-1,1)
有趣的是,当以兼容模式(.xls)在excel 2007+中打开时,引用“名称”和数据验证下拉列表(如上所述)可以完美地工作

任何帮助都将不胜感激


谢谢

是的。我认为这与公式中定义范围“Name”的SUMPRODUCT部分有关(特别是最有可能的特殊字符“”。我这么说是因为我试着用COUNTA(Shet4!$B:$B)-1替换SUMPRODUCT部件,它可以工作。但是,问题是该范围将包括包含公式的单元格,这些单元格的输出结果为空(单元格看起来为空…类似于“”),这不是我想要的。我想从命名区域中排除外观为空的单元格。除了上面带有特殊字符的sumproduct函数外,是否还有其他方法指定该区域应仅包括实际显示值的单元格?同样,有趣的是,整个过程(使用sumproduct)在Excel 2007及更高版本中运行良好。
=OFFSET(OFFSET(Name,0,1,1,1),Match(E2,Name,0)-1,0,COUNTIF(Name,E3))