У меня возникли проблемы с созданием формулы для суммирования всех значений в столбце B
, чтобы игнорировать первый экземпляр элементов в столбце A
. Желаемый результат можно увидеть в столбцах D
и E
.
Вот один из способов сделать это:
=SUM(B$2:B$18*(MAP(A$2:A$18,LAMBDA(x, COUNTIF(x:$A$2,x)))>1)*(D2=A$2:A$18))
Или лучше используйте эту формулу, чтобы разлить:
=LET(α, A2:A18, MAP(D2:D4,LAMBDA(x, SUM(B2:B18*(α=DROP(VSTACK("",α),-1))*(x=α)))))
Или комбинированный вывод с использованием одного динамического массива:
=LET(
_Data, A2:B18,
_Item, TAKE(_Data,,1),
_UniqItem, UNIQUE(_Item),
_Hours, MAP(_UniqItem, LAMBDA(α, SUM(TAKE(_Data,,-1)*(DROP(VSTACK("",_Item),-1)=_Item)*(_Item=α)))),
HSTACK(_UniqItem, _Hours))
Или используйте sumif () и index() с match() следующим образом: Это будет работать с более ранними версиями Excel, в которых нет лямбды и т. д.
как текст:
SUMIF(A$2:A$18,D2,B$2:B$18)-INDEX(B$2:B$18,MATCH(D2,A$2:A$18,0))
Sumif () получает все значения, но индекс с совпадением находит только первое, поэтому вычтите этот результат, чтобы получить желаемый результат.
Возможно, за этим будет проще следить...
Еще одно предложение
=BYROW(D2:D4,LAMBDA(i,IFERROR(SUM(DROP(FILTER(B2:B18,A2:A18=i),1)),0)))
Просто ради интереса преобразуйте диапазон в таблицу (H
) и добавьте индексный столбец.
=SUMPRODUCT((H[Item]=E2)*H[Hours]*(H[Index]>1))
А
152
Б
А
192
С
...
...Используйте SUMIFS и исключите первый экземпляр из диапазона сумм. Код ниже должен дать вам то, что вы хотите.
=SUMIFS($B$3:$B$18,$A$3:$A$18,D2)
Можете ли вы использовать справочные столбцы? Я бы добавил столбец в столбец C (C2) с надписью
=if (A2=A1,0,1)
и добавил дополнительное условие суммирования для столбца C, чтобы исключить любые единицы.