Можно ли рассчитывать по ячейкам?

Я пытаюсь сложить значения в диапазоне столбцов E10:E610 которые находятся между 11 538 и 34 760, а затем рассчитать для них 5,6%. Однако для баланса с другим документом мне нужно будет найти 5,6 процента каждого числа отдельно в этом диапазоне, а затем округлить их по отдельности.

Зачем? Файл, с которым я должен уравновесить, выполняет вычисления и округляет индивидуально числа, так что мои расчеты немного не верны. Например, 5,6% из 23 726 - это 1 288,6, а округленное значение - 13 327. Если в моем текущем файле будет 5 вхождений из 23 726, результат будет 6 643,28, так как Excel добавит 1,328,6 пять раз, а затем найдет 5,6%.

Однако округление по отдельности приведет к 6645. Любая помощь?

=ROUND(IF(J5="Yes",SUMPRODUCT((E10:I610>11538)*(E10:I610<=34760)*(A10:A610="No")‌​,E10:I610)*0.056+(COUNTIF(E10:I610,">34760")*34760)*0.056,""),0)

Я только что понял, что раунд делается на всю сумму. Можно ли как-то рассчитать на ячейку и округлить на ячейку тоже?

Может быть, я должен использовать VBA ...

1 ответ1

2

Один из способов индивидуального округления чисел в диапазоне - использовать формулу массива.

Вот простой пример. Столбцы A:I показывает результаты отдельного округления каждой суммы с коэффициентом 0,056, а затем суммирует результаты округленных продуктов.

Ячейка M7 показывает тот же результат, используя одну формулу: =SUM(ROUND(K4:L6*.056,0)) Как вы можете видеть, функция ROUND имеет в качестве первого аргумента произведение всего диапазона чисел с .056, с 0 в качестве второго. (Ошибка округления для этого небольшого примера составляет около 0,8.) В качестве формулы массива выражение должно вводиться с помощью комбинации клавиш CTRL - Shift - Enter .

Хотя ваша формула намного сложнее, все же можно применить тот же метод, хотя использование SUMPRODUCT как и у вас, может оказаться невозможным. Вы бы просто использовали SUM вместо. (Глядя только на `SUMPPRODUCT (....)* .056 штука, я бы наверное сделал что-то вроде

=SUM((E10:I610>11538)*(E10:I610<=34760)*(A10:A610="No")*ROUND(E10:I610*0.056,0)) 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .