代码之家  ›  专栏  ›  技术社区  ›  Liu Kang

如果单元格包含多个逗号分隔值的范围(来自另一个单元格),则求和

  •  0
  • Liu Kang  · 技术社区  · 6 年前

    我有一个清单 攻击 一起 权力 . 我想得到所有 权力 它匹配另一个单元格中多个逗号分隔的值。

    我的第一张纸是这样的:

    表1

    | Attack               | Power         |
    |:---------------------|:--------------|
    | nuke                 | 300           |
    | nuke and laser       | 500           |
    | megalasernuke        | 1000          |
    | fist                 | 10            |
    | weak fist and bow    | 50            |
    | supreme fist and bow | 100           |
    

    表2

    使用 =SUMIF('Sheet1'!A:A;"*"&A2&"*";'Sheet1'!B:B) 在B列中,我的第二张表可以返回包含 价值观:

    | Attack               | Sum of Power  |
    |:---------------------|:--------------|
    | nuke                 | 1800          |
    | fist                 | 160           |
    

    如果表1中的单元格包含 倍数 逗号分隔的值(所有值),结果如下:

    | Attack               | Sum of Power  |
    |:---------------------|:--------------|
    | nuke,laser           | 1500          |
    | fist,bow             | 150           |
    | fist,bow,nuke        | 0             |
    | fist                 | 160           |
    

    在没有自定义excel脚本的情况下,可以这样做吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Scott Craner    6 年前

    它不漂亮,但我不能找到另一种方法,就像你想迭代两次:

    =SUMPRODUCT(ISNUMBER(SEARCH(TRIM(MID(SUBSTITUTE(D2,",",REPT(" ",99)),1,99)),$A$2:$A$7))*ISNUMBER(SEARCH(TRIM(MID(SUBSTITUTE(D2,",",REPT(" ",99)),99,99)),$A$2:$A$7))*ISNUMBER(SEARCH(TRIM(MID(SUBSTITUTE(D2,",",REPT(" ",99)),198,99)),$A$2:$A$7))*$B$2:$B$7)
    

    这最多只能处理三个逗号分隔的值。

    enter image description here