Arrays 将Excel数组函数嵌套在非数组函数中并返回数组
我正在尝试创建一个电子表格,用于向客户提供报价。某些零件号适用于单个项目。某些零件号最多由4个项目组成。我试图创建一个公式,返回与给定零件号关联的所有值 最初,我在报价中有两个部分-一个使用VLOOKUP返回单个项目的零件号,另一个使用数组公式返回项目数组 第一个公式是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
=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))
对于单个项目,它返回相同项目的四行,而对于捆绑包则不返回任何内容
我曾考虑过将数组函数放在另一个单元格中并引用该单元格,但如果捆绑包包含多个项,则这没有帮助
欢迎提出任何想法或建议