Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - [решено] Как добавить вторую колонку с автоматическим расчетом процентов?

Ответить
Настройки темы
2016 - [решено] Как добавить вторую колонку с автоматическим расчетом процентов?

Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5432
Благодарности: 1109


Конфигурация

Профиль | Отправить PM | Цитировать


Excel как-то странно себя ведет. Первую колонку с шагом в 0,5 он посчитал нормально. Я ввел сначала 1,0, потом 1,5, далее потянул выбранный столбик вниз и он сам уже добавил все последующие цифры (2,0 и т.д.). Для второй колонки нужно прибавить +7%. Я вручную вбил формулы и он прибавил проценты. После третьей ячейки я подумал, что он поймет чего я от него хочу и аналогичным образом потянул столбик вниз, но вместо того, чтобы рассчитывать проценты из первого столбца, он просто начал дублировать первые три значения, которые я вбивал вручную:
Скрытый текст


Как сделать так, чтобы вторая колонка автоматом добавляла +7% к первой колонке?

Отправлено: 17:35, 06-11-2021

 

Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5432
Благодарности: 1109

Профиль | Отправить PM | Цитировать


Iska, А, вот вы как предлагаете... Любопытно. Да, это вполне рабочий вариант, спасибо. Правда, смущает странное округление, которое выполняет Excel. Для большинства результатов он округляет новую колонку нормально, но для каких-то отдельных чисел он показывает на одну тысячную меньше. Например, для числа 20,330 показывается остаток не 330, а 329. Куда единичка подевалась?

P.S. Файл по ссылке обновил на всякий случай, чтобы вы сами могли посмотреть: http://178.173.19.2:1987/Additional/1.xlsx

Отправлено: 20:27, 06-11-2021 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png я21110619.xlsx.png
(37.4 Kb, 21 просмотров)
Вложения
Тип файла: xlsx я21110619.xlsx
(10.1 Kb, 21 просмотров)

Мой монструозный вариант.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 20:29, 06-11-2021 | #12


Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5432
Благодарности: 1109

Профиль | Отправить PM | Цитировать


megaloman, Ну вы даете Я вообще ничего не понял... Во-первых, ваш вариант сортируется по возрастанию как-то очень уж странно, я никакой логики не вижу. Во-вторых, дробная часть явно не соответствует действительности: 1 и 1,07 - тут все правильно, но разница ведь составляет 0,07. У вас же откуда-то берется 0,14.

Отправлено: 20:41, 06-11-2021 | #13


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Avatar-Lion:
Правда, смущает странное округление, которое выполняет Excel. »
А это не округление, это отбрасывание. Про округление речи не было. Даже в Вашем примере .

Отправлено: 20:58, 06-11-2021 | #14


Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5432
Благодарности: 1109

Профиль | Отправить PM | Цитировать


Iska, Почему тогда такая избирательность? Чем ему не угодили именно те цифры?

Отправлено: 21:06, 06-11-2021 | #15


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Avatar-Lion,
Цитата Avatar-Lion:
я никакой логики не вижу »
Логика не при чём. Тупая технология.
В столбце B (в примере в диапазоне $B$3:$B$41) занесены последовательно дробные части, как Вы это обозвали, базовой цены.
Базовая цена вычисляется как B=1+0.5*(i-1) где i=1,2, ... и от этого берётся дробная часть как остаток от деления B/1
В столбце C в ячейках столбца B последовательно ищутся наименьшие 1, 2 , 3 значения и их позиция в этом массиве чисел. По найденной позиции вычисляется значение базовой цены. По базовой цена в столбце D умножается на 1,07. То есть что Вы требовали, если я правильно понял, Вы получили. Базовые цены, умноженные на проценты, рассортированы по возрастанию дробной части.
Еще раз: в столбце B дробные части базовой цены, умноженной на проценты, расположены по возрастанию базовой цены.
В столбце С базовая цена уже расположена по возрастанию дробной части сумм, умноженных на проценты, Очевидно, дробная часть в суммах в столбце D идёт по возрастанию, что мы так упорно добивались .
Столбец B - служебный.
Не нравится - скройте его.
Не уверен, что смогу решить задачку без служебного столбца. Смысла как-то в ней не сильно вижу, хотелось бы понять, зачем это нужно.
Макрос - и флаг в руки, если это не разовая акция.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 06-11-2021 в 22:18.


Отправлено: 21:14, 06-11-2021 | #16


Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5432
Благодарности: 1109

Профиль | Отправить PM | Цитировать


megaloman, Да всё, всё, уже въехал. Спасибо за ваш вариант. Но товарищ Iska тоже толковую идею предложил: показывать сам остаток как таковой. Возможно, у меня даже получится совместить оба варианта для удобства и наглядности.

Что касается того, зачем это нужно... В игре This War of Mine в режиме продажи не показываются цены на товары, они скрыты разработчиками намеренно, чтобы добиться нужной атмосферы в игре, когда ты не знаешь сколько стоит та или иная вещь, но ты можешь примерно обменяться с торговцем. Но очевидно, что сама-то игра как-то всё же дает добро или отказ на совершение сделки. В итоге с помощью редактора сценариев удалось-таки узнать внутриигровые цены на предметы, хотя по факту в режиме торговли все цены делятся на два. Не знаю зачем это надо, я не программист. Например, в редакторе сценариев пистолет стоит 43 единицы, а в игре он будет идти по цене 21,5. Патроны - 7 в редакторе и 3,5 в игре. Ну и т.д. Также есть правило: предложение игрока всегда должно быть больше предложения торговца, т.е. торговать "один к одному" нельзя, всегда нужно переплачивать. Шаг стоимости составляет 0,5 единиц, т.е. при торговле хочешь-нехочешь, а переплатить 0,5 стоимости придется по-любому. Но! Помимо прочих персонажей, имеется два особенных, один из которых дает +7% к продажной цене, а другой +20% (это было уже установлено эмпирическим методом). Соответственно, появляется возможность сэкономить, т.к. игре важен сам факт переплаты, а уж на сколько эта переплата будет больше - на 0,5 или на 0,2 - уже не важно.

Всего доступно 8 слотов у тебя и 8 слотов у продавца. Процедура обмена выглядит следующим образом: я накидываю 8 товаров, вспоминая стоимость каждого из них, т.е. "цена из редактора, поделенная на два". Если товары идентичные, то они обычно складываются в стопки, хотя у каждого товара есть свои пределы по количеству предметов в одном слоте. Например, бутылка самогона стоит 13,5 и продается только поштучно, а вот сигареты стоят 2,0, зато их можно по двадцать штук складывать... Короче, считается общая сумма всех своих товаров, затем набираем аналогичную кучу (по стоимости, а не по типу предметов) у продавца и сделка, наконец, заключается.

Как вы понимаете, сей механизм не очень удобен в эксплуатации, хотя со временем ты запоминаешь цены на ходовые предметы и подглядывать в бумажку на столе практически не требуется. Конечно, в случае с добавлением в +20% всё усложняется, но поскольку прибавить двадцать процентов - это то же самое, что поделить на пять, высчитать в уме итоговую сумму всё-таки можно. Но вот с 7% всё печально, цифра неровная и удержать в уме единовременно столько цифр уже не получается. Это и навело меня на мысль: не пересчитывать каждый раз вручную все возможные комбинации, а сразу задать диапазон от 1,0 до 150,0 (больше этой суммы напихать предметов в 8 слотов едва ли получится), в рамках которого и будет осуществляется торговля. Соответственно, появится возможность узнать точки минимальной переплаты. Ну и дальше нужно будет просто набрать товаров на нужную сумму, заранее зная результат и имея уверенность в том, что переплата выйдет минимальной.

Отправлено: 22:41, 06-11-2021 | #17


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Avatar-Lion:
Iska, Почему тогда такая избирательность? Чем ему не угодили именно те цифры? »
Проблема в том, что в число дробная часть числа в машинном представлении всегда хранится с ограниченной точностью. И, в каких-то случаях, точности достаточно для правильного и точного представления числа, в большинстве же случаев — нет. Например, 20.33 не может быть точно представлено в машинном представлении (в двоичном представлении там будет бесконечная периодическая дробь). Для ликвидации последствий этого в Microsoft Excel, как и в большинстве других подобных приложений, используются специальные алгоритмы, выполняющие коррекцию при необходимости. Но они не всегда срабатывают.

Если Вы встанете на ячейку C38, нажмёте F2, выделите в формуле функцию Рабочего листа «ОСТАТ($B38;1)» и нажмёте F9 — то увидите, где алгоритмы не сработали и начинались проблемы:
Скрытый текст

Давайте подучаем, что можно сделать.

Вы ещё писали про округление — поясните подробнее, пожалуйста.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:38, 07-11-2021 | #18


Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5432
Благодарности: 1109

Профиль | Отправить PM | Цитировать


Iska, Хм-м... Как-то в голову даже не могло прийти, что компьютер (!) может иметь какие-то проблемы с числами... Ладно. Собственно, говоря про округление, я говорил именно об этом: меня удивило сокращение на единичку, когда 330 превратилось 329. Это же первое правило округления: числа до 5 округляются в меньшую сторону, а выше 5 - в большую. Я мог бы понять, если бы 330 превратилось ровно в 300, но когда увидел 329... Для меня это выглядело как этакое неправильное округление или "округление со знаком минус". Но раз вы говорите, что это просто недоработка самой системы, то и хрен с ней. Я и так получил даже больше, чем рассчитывал. Большое вам спасибо! И вам, мистер megaloman, тоже спасибо.

Думаю, тему я отмечу решенной, поскольку таблицу с расчётами я получил, а некоторую погрешность в расчетах, которую внёс Excel, во внимание принимать пока не будем. Сама игра (This War of Mine) наверняка имеет ещё более хреновые механизмы компенсации ошибок в подобных расчётах, поэтому мучить непосредственно сам Excel я смысла не вижу. Еще раз всем спасибо.

Отправлено: 01:19, 07-11-2021 | #19


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx я21110623.xlsx
(11.9 Kb, 22 просмотров)

Iska, А зачем нужна махинация с превращением дробной части в целое? Что мешает сортировать по дробной части числа после ОСТАТ от деления на 1?
Прикладываю еще вариант, более общий: исходные числа могут следовать случайным образом.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:24, 07-11-2021 | #20



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - [решено] Как добавить вторую колонку с автоматическим расчетом процентов?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Медиа - Как подключить блютуз колонку к ноутбуку warning1009 Microsoft Windows 7 4 01-11-2019 15:27
PowerShell - [решено] Добавить колонку oem farag Скриптовые языки администрирования Windows 2 20-07-2017 13:20
Добавить вторую ссылку Выходной Вебмастеру 0 16-01-2015 05:46
[решено] Добавить вторую сетевую карту El Scorpio Железо в Linux 7 29-10-2013 01:00
Разное - Как добавить в меню пуск в правую колонку пункт Мое видео ???? Guman Оформление Windows XP 8 15-05-2012 14:23




 
Переход