Рассчитывайте проценты, как круговая диаграмма Excel

Я перевожу расчетную модель из Excel на язык программирования и хочу, чтобы результаты были максимально похожи на результаты Excel.

В частности, я хочу, чтобы процентные значения круговой диаграммы составляли в сумме 100, когда они отображаются в виде целых чисел.

Пример:

  • рассмотрим набор: [ 7, 13, 58, 43 ].
  • Проценты на круговых диаграммах должны быть [ 5.79%, 10.74%, 47.93%, 35.54% ]
  • Округлите числа, и вы получите [ 6%, 11%, 48%, 36% ]. В сумме получается 101.
  • Согласно этой странице, Excel должен вычесть 1 процент из наибольшего числа.
  • Эта информация, по-видимому, не относится к Excel 2007, поскольку фактические числа, которые я вижу, равны [ 6%, 11%, 48%, 35% ], поэтому он вычитал 1 из второго по величине числа.

Я нашел эту страницу, которая, кажется, признает, что ситуация странная, но на самом деле не имеет алгоритма, который использует Excel.

ИЗМЕНИТЬ: я пропустил это в первый раз, но эта страница подразумевает, что «внутренний механизм, который использует Excel, минимизирует ошибку в процентах аналогично тому, как метод наименьших квадратов минимизирует ошибку между наборами данных. и описывающая его линия регрессии ". Не уверен, что это просто дикая догадка или что-то еще.

Может ли кто-нибудь пролить свет на этот вопрос?

(Обязательная ссылка: Сохранить пирог для десерта)


person itsadok    schedule 09.10.2013    source источник


Ответы (1)


Насколько мне известно, он вычитает 1 из числа с наименьшей десятичной частью, равной или превышающей 0,5%. В этом случае у второго по величине числа всего 0,54%, у всех остальных есть что-то большее.

Пример:

пример округленного итогового значения 101

Кроме того, когда ваша сумма достигает 99%, вы должны выбрать значение с наибольшей десятичной частью меньше 0,5%.

Пример:

пример округленного результата 101

Так что создайте свой алгоритм соответственно.

person K_B    schedule 09.10.2013