我有一个Excel电子表格。我需要匹配2列中的数据,如果匹配,请从第3列中取一个数字并将其放在第4列中。
Ex:A列有多个名字:(Steve,Josh,John),B列有一个名字(Steve),第3列有一个数字(546)。我需要将A列与B列匹配,然后从C列(对应于B列)中取出数字并将该数字放入D列。如果A列有多个匹配,那么我需要D列为C栏中的数字。
我已经尝试了vlookup和一些不同的东西,但我很难理解如何让他们对C列中的值求和。
请参阅下面的截图以获取我的示例。
答案 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);
}
}