2016-04-24 13 views
0

Не могли бы вы помочь мне с нижеследующим? Цель моего проекта excel заключается в том, что каждый раз каждый раз, когда B находится в столбце A, это минус количества A до достижения количества.Вычитайте сумму из ячейки до тех пор, пока она не достигнет 0, затем переместите и вычитайте из следующей суммы

Только значения с A означают, из каких величин вычесть. В следующий раз, когда он найдет следующий B, он проверит все выше A с оставшимся количеством и так далее.

enter image description here

Я попытался ниже Aswell, но не был успешным.

=IF(A2="B",MAX(SUM($B$2:B2)-OFFSET(A2,0,1),0),"") 

Я думал о том, чтобы выбрать код vba.

Для примера:

С первого «B» находится выше последовательности, то остаток равен нулю (0) потому, что 300 -100 оставляя нуль количества слева. Остаток будет снят с 250, оставив остаток .

Оставшийся баланс на B всегда будет равна нулю

+1

Так, мне кажется, что все «А» положительны и все «B» являются отрицательными, а остаток качению is: '= SUMIF ($ A $ 2: A2;" A "; $ B $ 2: B2) -SUMIF ($ A $ 2: A2;" B "; $ B $ 2: B2)' (помещается в ячейку C2 и затем копируется вниз). Или я чего-то не хватает? – Ralph

+0

@ralph С первым «B» является последовательность выше, оставшийся баланс равен нулю (0), потому что 300 -100, оставляя ноль оставшейся величины. Остальные 200 будут сняты с 250, оставив баланс 50. – James

+1

Это не имеет никакого смысла для меня. Из первых двух значений «А» вы вычитаете только первое значение «В», оставив остаток в 50. Но как насчет второго значения «В». Разве это не будет потреблять этот остаток (снова)? Возможно, вы можете написать на приведенном выше снимке экрана ожидаемый результат и повторно опубликовать эту фотографию, чтобы мы знали, чего вы хотите. Следуя вашей текущей логике, я ожидал бы следующих значений: '= MAX (SUMIF ($ A $ 2: A2," A ", $ B $ 2: B2) -SUMIF ($ A $ 2: $ A $ 8," B ", $ B $ 2: $ B $ 8), 0) '(в ячейке C2, а затем скопировано). – Ralph

ответ

0

На основании приведенных выше замечаний, которые, кажется, что ответ должен поместить следующую формулу в ячейку С2, а затем скопировать его вниз к остальной части колонны C:

=MAX(SUMIF($A$2:A2,"A",$B$2:B2)-SUMIF($A$2:$A$8,"B",$B$2:$B$8),0) 

Для расчета «текущего» баланса «А» в отдельной колонке может использоваться следующая формула. Например, в ячейке D2:

=SUMIF($A$2:A2,"A",$B$2:B2)-SUMIF($A$2:A2,"B",$B$2:B2) 

(а затем копируется снова для столбца D)