我正在尝试创建一个电子表格,该电子表格将用于向客户提供报价。一些零件编号适用于单个项目。某些部件号是最多4件的捆绑包。我正在尝试创建一个公式,以返回与给定部件号关联的所有值。
最初,我在报价单中有两部分-一部分使用VLOOKUP返回带有单个项目的部件号,另一部分使用返回数组的项目的数组公式。
第一个公式是
=IF(ISNA(VLOOKUP(B12,PriceList,2,FALSE)),"",VLOOKUP(B12,PriceList,2,FALSE))
第二个是
{=IFERROR(INDEX(Bundles!$B$2:$B$101, SMALL(IF($B$33=Bundles!$A$2:$A$101, ROW(Bundles!$B$2:$B$101 ) - 1,""), ROW() - 32 )),"")}
Screenshot showing results of first two formulas
两者都能正常工作。他们依靠两个数据表“ PriceList”和“ Bundles”
我希望销售代表能够在B列中输入零件编号,并获得正确的零件描述-无论是1、2、3还是4项,以显示在C列中。我希望他们能够能够在同一报价上输入多个零件号。
我试图以此为基础编号
=IF(LEFT(B29,4)="BUND",IFERROR(INDEX(Bundles!$B$2:$B$101,SMALL(IF($B$29=Bundles!$A$2:$A$101,ROW(Bundles!$B$2:$B$101)-1,""),ROW()-28)),""),VLOOKUP(B29,PriceList,2,FALSE))}
这适用于捆绑商品,但重复单个商品。
我想拥有一个数据源(PriceList)和一个公式。
我现在想做的是使用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)))}
对于单个项目,这将返回同一项目的四行,对于捆绑商品,则不会返回
我曾考虑过将数组函数放在另一个单元格中,并引用该单元格,但是如果捆绑包包含多个项目,这将无济于事。
任何想法或建议都将受到欢迎。