Суммируйте все, игнорируя первый экземпляр значения

У меня возникли проблемы с созданием формулы для суммирования всех значений в столбце B, чтобы игнорировать первый экземпляр элементов в столбце A. Желаемый результат можно увидеть в столбцах D и E.

Можете ли вы использовать справочные столбцы? Я бы добавил столбец в столбец C (C2) с надписью =if (A2=A1,0,1) и добавил дополнительное условие суммирования для столбца C, чтобы исключить любые единицы.

Mark S. 01.05.2024 15:44
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
1
110
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Вот один из способов сделать это:


=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) и добавьте индексный столбец.

Элемент Часы Индекс Э А 160 =СУММ(--(ИНДЕКС([Элемент],1):[@Элемент]=[@Элемент])) А =SUMPRODUCT((H[Item]=E2)*H[Hours]*(H[Index]>1)) А 152 Б А 192 С ... ...

Используйте SUMIFS и исключите первый экземпляр из диапазона сумм. Код ниже должен дать вам то, что вы хотите.

=SUMIFS($B$3:$B$18,$A$3:$A$18,D2)

Другие вопросы по теме