【发布时间】:2015-01-15 22:19:10
【问题描述】:
我有一个“积分矩阵”的想法是,销售人员将商品出售给企业,这取决于产品的类型和预订日期(创建日期)分配的积分数量。
“产品 1+”、“产品 2+”、“产品 3+”与产品 1、2 和 3 是相同的产品。但是当它们满足新的标准时它们变为 +(“新”列 =是的)。
在遵循上述标准时,找出正确点的最佳方法是什么?乐于使用 VBA 或公式,但更喜欢两者。
【问题讨论】:
标签: excel excel-formula vba
我有一个“积分矩阵”的想法是,销售人员将商品出售给企业,这取决于产品的类型和预订日期(创建日期)分配的积分数量。
“产品 1+”、“产品 2+”、“产品 3+”与产品 1、2 和 3 是相同的产品。但是当它们满足新的标准时它们变为 +(“新”列 =是的)。
在遵循上述标准时,找出正确点的最佳方法是什么?乐于使用 VBA 或公式,但更喜欢两者。
【问题讨论】:
标签: excel excel-formula vba
假设你在第 14 点的第一行
在单元格“F14”中试试这个公式:=IF(E14="YES",VLOOKUP(D14,$A$2:$G$11,MATCH(CONCATENATE(C14," +"),$B$1:$G$1,0)+1,FALSE),VLOOKUP(D14,$A$2:$G$11,MATCH(C14,$B$1:$G$1,0),FALSE))
【讨论】:
您也可以这样做,我更喜欢使用 INDEX MATCH,因为它更灵活。概念是一样的。
=IF(E14="YES",INDEX($A$1:$G$11,MATCH($D14,$A$1:$A$11,0),MATCH($C14&" +",$A$1:$G$1,0)),INDEX($A$1:$G$11,MATCH($D14,$A$1:$A$11,0),MATCH($C14,$A$1:$G$1,0)))
【讨论】:
INDEX / MATCH 更好,但你的对我来说有点冗长。我的两分钱......我认为最好只在IF 声明中重复绝对必须重复的内容。我还从查找范围中消除了不必要的单元格,这仅在更大范围内才真正重要。 =INDEX($B$2:$G$11,MATCH(D14,$A$2:$A$11,0),MATCH(C14&IF(E14="YES"," +",""),$B$1:$G$1,0))