如何匹配2列,然后从第三列获取值并将它们相加

时间:2016-11-30 19:17:40

标签: excel

我有一个Excel电子表格。我需要匹配2列中的数据,如果匹配,请从第3列中取一个数字并将其放在第4列中。

Ex:A列有多个名字:(Steve,Josh,John),B列有一个名字(Steve),第3列有一个数字(546)。我需要将A列与B列匹配,然后从C列(对应于B列)中取出数字并将该数字放入D列。如果A列有多个匹配,那么我需要D列为C栏中的数字。

我已经尝试了vlookup和一些不同的东西,但我很难理解如何让他们对C列中的值求和。

请参阅下面的截图以获取我的示例。

Screenshot

1 个答案:

答案 0 :(得分:0)

您可以将SUMIF()与通配符一起使用:

    List<String> yourList = Arrays.asList("42_2", "42_3", "43_1", "43_2", "44_1", "44_2", "44_3");
    List<String> targetList = new ArrayList();
    String currentFirstPart = null;
    String actualMax = null;
    for (int i = 0; i < yourList.size(); i++) {
        String current = yourList.get(i);
        final String[] token = current.split("_");
        String firstPart = token[0];

        // only the first iteration 
        if (currentFirstPart == null) {
           currentFirstPart = firstPart;
        }

        // we add the element when the first part of the String changes
        // and we reset the actualMax
        else if (!firstPart.equals(currentFirstPart)) {
          targetList.add(actualMax);
          actualMax = null;
          currentFirstPart = firstPart;
        }

        // we update the actual max for the current first part
       if (actualMax == null || current.compareTo(actualMax) >= 1) {
           actualMax = current;
         }
    }
    // We add the last element here if not added in the loop
    if (currentFirstPart != null) {
        targetList.add(actualMax);
    }
  }

enter image description here