Arrays 将Excel数组函数嵌套在非数组函数中并返回数组

Arrays 将Excel数组函数嵌套在非数组函数中并返回数组,arrays,excel-formula,nested,Arrays,Excel Formula,Nested,我正在尝试创建一个电子表格,用于向客户提供报价。某些零件号适用于单个项目。某些零件号最多由4个项目组成。我试图创建一个公式,返回与给定零件号关联的所有值 最初,我在报价中有两个部分-一个使用VLOOKUP返回单个项目的零件号,另一个使用数组公式返回项目数组 第一个公式是 =IF(ISNA(VLOOKUP(B12,价格表,2,FALSE)),“”,VLOOKUP(B12,价格表,2,FALSE)) 二是 {=IFERROR(索引(Bundles!$B$2:$B$101,SMALL(如果($B$33

我正在尝试创建一个电子表格,用于向客户提供报价。某些零件号适用于单个项目。某些零件号最多由4个项目组成。我试图创建一个公式,返回与给定零件号关联的所有值

最初,我在报价中有两个部分-一个使用VLOOKUP返回单个项目的零件号,另一个使用数组公式返回项目数组

第一个公式是

=IF(ISNA(VLOOKUP(B12,价格表,2,FALSE)),“”,VLOOKUP(B12,价格表,2,FALSE))

二是

{=IFERROR(索引(Bundles!$B$2:$B$101,SMALL(如果($B$33=Bundles!$A$2:$A$101,行(Bundles!$B$2:$B$101)-1,“”),行()-32)),”)}

两者都能独立工作。它们依赖于两个数据表“价格表”和“捆绑包”

我希望销售代表能够在B列中键入零件号,并在C列中显示正确的零件说明(无论是1、2、3或4项)。我希望他们能够在同一报价单上输入多个零件号

我试着以零件号为基础

=IF(左(B29,4)=“BUND”,IFERROR(索引(Bundles!$B$2:$B$101,SMALL(IF($B$29=Bundles!$A$2:$A$101,行(Bundles!$B$2:$B$101)-1,”),行()-28)),“”),VLOOKUP(B29,PriceList,2,FALSE))

这适用于捆绑项目,但重复单个项目

我想有一个单一的数据源(价格表)和一个单一的公式

我现在要做的是使用COUNTIF。例如,如果COUNTIF返回的值大于1,则使用数组公式,否则使用VLOOKUP公式

我想象它是这样的

IF((COUNTIF(PriceList,Quote!B11)>1)、“BUNDLE”、IF(ISNA(VLOOKUP(Quote!B11,PriceList,2,FALSE))、“”、VLOOKUP(Quote!B11,PriceList,2,FALSE))

其中“BUNDLE”由数组函数替换。我似乎不能想出正确的数组公式

我试过了

{=IF((COUNTIF(PriceList,Quote!B11)>1),IFERROR(INDEX(Bundles!B$2:$B$101,SMALL(IF($B$11=Bundles!A$2:$A$101,ROW(Bundles!B$2:$B$101)-1,“”,ROW()-32)),IF(ISNA(VLOOKUP(Quote!B11,PriceList,2,FALSE)),“”,VLOOKUP(Quote!B11,PriceList,2,FALSE)),VLOOKUP(Quote!B11,FALSE))

对于单个项目,它返回相同项目的四行,而对于捆绑包则不返回任何内容

我曾考虑过将数组函数放在另一个单元格中并引用该单元格,但如果捆绑包包含多个项,则这没有帮助

欢迎提出任何想法或建议