找到2行之间的最小重叠

时间:2016-06-30 14:54:12

标签: excel excel-vba excel-formula vba

所以我有两个关于批量采购的数据集产生了不同的总数。一个例子是:购买200比购买200便宜,所以购买180会更有意义,如果你买180总是购买200

所以我想找到数据集2中最大值小于数据集1的位置

实施例

    **Data set 1**                **Data set 2**                result
                                  (starts at 200)           
    Quantity  Price  Total      Quantity  Price  Total     customer need  best value    
    10        18.48  181                                     10               10
    195       18.48  3603         288     12.48  3594       195             288  
    196       18.48  3622         289     12.48  3606       196             290
    197       18.48  3641         290     12.48  3619       197             291
    198       18.48  3659         291     12.48  3632       198             291              
    199       18.48  3677         292     12.48  3664       199             293              
    200       18.48  3696         293     12.48  3657       200             293

最有价值的公式是什么?如果(C1> F1:f7,max(F1:f7,其中C1> F1:F7),C1)OR

这是图表

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

MaxSumIf

<强>更新

=IF(C2>$F$2,MAX(IF($F$2:$F$7<C2,$D$2:$D$7,0)),A2)

更新(如果F不按升序排列):

=IF(SUM(IF(C2>$F$2:$F$7,1,0))>0,MAX(IF($F$2:$F$7<C2,$D$2:$D$7,0)),A2)

答案 1 :(得分:0)

我最终使用了Vlookup和Index / Match的组合。 Vlookup找到了下一个最接近的价格,索引/匹配用于获取数量。

INDEX(D$1:D$7, MATCH(VLOOKUP(C1,F$3:F$401,1,TRUE), F$3:F$401,0))

如果值较低,则获取数据集2中有多少2个购买的值。如果没有找到价格,那么我得到了NA,所以我使用了一个if NA来得到结果

=IFNA(INDEX(D$1:D$7, MATCH(VLOOKUP(C1,F$3:F$401,1,TRUE), F$3:F$401,0)), A1)