代码之家  ›  专栏  ›  技术社区  ›  Richard Gale

Excel中的复杂查找

  •  1
  • Richard Gale  · 技术社区  · 10 年前

    我有一个工作表,其中包含参数“parameters”列表:

    A            | B            | C          | D        | E          |
    Manufacturer | Item Type    | Price From | Price To | Percentage |
    Apple        | Mobile Phone | 0.00       | 99.99    | 50%        |
    Apple        | Mobile Phone | 100.00     | 149.99   | 45%        |
    Apple        | Tablet       | 0.00       | 99.99    | 65%        |
    

    我有另一个工作表,其中包含零售项目“零售库存”列表:

    A            | B            | C              | D            |
    Manufacturer | Item Type    | Purchase Price | Retail Price |
    Apple        | Mobile Phone | 80.00          | ?            |
    Apple        | Mobile Phone | 120.00         | ?            |
    Apple        | Tablet       | 95.00          | ?            |
    

    我需要在“零售股票”工作表的D列中做什么,我需要从参数工作表中提取相关百分比,以便计算零售价格。

    要查找百分比,我需要在“参数”工作表上查找,传递“制造商”、“项目类型”和“采购价格”。

    请有人对此提出建议, 我很感激我的问题可能需要更多的填充才能得到正确的答案,所以如果你需要更多的信息,请询问。

    2 回复  |  直到 10 年前
        1
  •  2
  •   Jerry    10 年前

    你可以使用 SUMIFS :

    =SUMIFS(Parameters!E:E,Parameters!A:A,A2,Parameters!B:B,B2,Parameters!C:C,"<="&C2,Parameters!D:D,">="&C2)
    

    我不认为价格会有重叠,因为这对我来说没有多大意义,所以上面应该给你一个合适的百分比。

    根据需要设置格式。

    注意:如果不匹配,则函数将返回 0 .


    SUMIFS公司 将从列中取和 E 参数,前提是:

    • 列A等于A2,
    • 列B等于B2,
    • C列低于C2,
    • D列高于C2
        2
  •  1
  •   Dmitry Pavliv    10 年前

    这里只会有一个匹配,参数中不会有重叠

    试试这个:

    =SUMPRODUCT((Parameters!$A$2:$A$100=A2)*
                (Parameters!$B$2:$B$100=B2)*
                (C2>=Parameters!$C$2:$C$100)*
                (C2<=Parameters!$D$2:$D$100)*
                (Parameters!$E$2:$E$100)
               )
    

    对于不匹配的行,公式返回 0