|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Всем привет! необходимо посчитать стоимость посылок через DHL. Формат их таблицы следующий: zone0,30кг0,50кг1,00кг 1,50кг2,00кг2,50кг3,00кг3,50кг4,00кг4,50кг5,00кгA 284,26 284,26 426,39 491,00 555,60 594,37 633,13 671,89 710,66 749,42 788,18 B 284,26 335,95 426,39 491,00 555,60 607,29 658,97 710,66 762,34 814,02 865,71 C 297,18 361,79 452,24 516,84 581,45 633,13 684,81 736,50 788,18 839,87 891,55 в заголовках столбцов вес, первый столбец - зона (растояние A,B,C,D,..... ) В значениях указана стоимость доставки от 0,5 кг до 20 кг с шагом 0,5 кг , свыше 20кг до 50кг указана стоимость за 20 кг + фиксированное занчение за каждые 0,5 кг свыше 20. аналогично от 50 до 70 и от 70 до 250. Как это красиво сделать? switch отрабатывает только до 6.5 кг. Возможно посчитать 5 тыс отправлений не прибегая к VBA? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 12:45 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Нормализуйте таблицу. Можно даже статическим запросом - она всё равно маленькая. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 12:58 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
"Распивотить" таблицу имеется возможность? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 12:59 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Akina, Как нормализовать. Там все значения меняются не по линейном закону. Добираться до компании приложу таблицу. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 13:33 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Predeclared, Та же проблема. Значения меняются нелинейно . Чем распайвотиь? Power query? Спасиб ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 13:35 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
mrmaxim, если а=100км в=500 с=1000 а у вас посылка 2,8кг на 300км --расчет через интерполяцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 14:00 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
mrmaxim... Та же проблема. Значения меняются нелинейно ... Да без разницы, что нелинейно. Описание алгоритма расчета имеется, "базовые" цифры тоже. Если хотим считать 5 тысяч отправлений не прибегая к VBA, то нужна "правильная" табличка. Вот для наполнения ее данными на основе имеющейся таблички и алгоритма расчета, я бы пользовал VBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 14:03 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
mrmaximКак нормализовать. Да элементарно. В таблицу вида Zone (зона) WeightFrom (диапазон веса - от) WeightTo (диапазон веса - до) BasePrice (стоимость веса для WeightFrom) DeltaPrice (доп. стоимость за превышение на полкило) Для начальных записей DeltaPrice =0, для больших весов больше нуля. По такой таблице легко считается стоимость на основании заданных зоны и веса. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 14:23 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Akina... BasePrice (стоимость веса для WeightFrom) DeltaPrice (доп. стоимость за превышение на полкило) ... А почему не сразу Total (BasePrice+DeltaPrice)? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 14:36 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
PredeclaredА почему не сразу Total (BasePrice+DeltaPrice)? А что записывать в это поле для диапазонов mrmaximсвыше 20кг до 50кг указана стоимость за 20 кг + фиксированное занчение за каждые 0,5 кг свыше 20. аналогично от 50 до 70 и от 70 до 250. Или имеется в виду рассчитать для каждого веса с шагом в полкило? Ну и так можно... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 14:40 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Akina... Или имеется в виду рассчитать для каждого веса с шагом в полкило?... Ну да. Что бы в окончательном запросе сразу иметь значение, без дополнительных расчетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 14:50 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, A, B, C, D, ....... - зоны (растояния), каждый город РФ относится к той или иной зоне. В данной таблице показаны тарифы из Москвы до каждой зоны. например зона H - Дальний Восток (Хабаровск, Владивосток), зона F - Новосибирск , Омск и проч.. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 15:09 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАmrmaxim, если а=100км в=500 с=1000 а у вас посылка 2,8кг на 300км --расчет через интерполяцию? Не совсем так , есть таблица соотвествий городов РФ зонам ABCD... Например 2,8 кг в Екатеринбург будет стоить: Екатеринбург - зона E , вес 2,8 <= тарифа 3кг для зоны F. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 15:14 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Predeclared, Как на VBA сделать я знаю. А как на чистом SQL ? спасиб ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 15:17 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Akina, спасибо, я знал что есть красивое решение!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 15:32 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
На чистом SQL можно попытаться "собрать" запрос, возвращающий нам нормализованный набор цен, но в нем не будет возможности пользовать индексы. Насколько быстро этот запрос будет "объединяться" по диапазону с таблицей в 5 тысяч записей отправлений, я даже гадать не берусь. Может мембер Непоймучка возмется? Он любит такие задачки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 15:35 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
PredeclaredНу да. Что бы в окончательном запросе сразу иметь значение, без дополнительных расчетов. Тут, я думаю, выбор будет зависеть от потока расчётов. Если это пакетная обработка - наверное, такое решение более правильное. Если интерактивная - тогда скорее пофиг что выбрать, и так и эдак будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 15:41 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
А у меня чёй та возникло осчущение, что ТС подразумевал всё совершенно другое, а вы профи - начали углубляться в уж очень теоретические вопросы и возможности их решения. Возможно и не прав, т. к. новичёк в данном вопросе и не особо понимаю специфический сленг, да в добавок ещё и старенький дедушка, но там скорее всего предполагалось как создать - Отчет для визуального анализа или распечатки, типа что бы было глазу приятно. Возможно по какому то товару, по периоду или сумме. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 17:15 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Лапух, Нет отчеты не нужны. Посчитаю стоимость каждого отправления. Заброшу в таблицы Excel . Там в pivot визаулизирую Не соображу как проще нормализованную таблицу сделать. На ум только копипаст в Excel приходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 20:40 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
Оригинальная таблица с тарифами 10 зон на 50 весовых брейков (пределов) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 20:43 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
mrmaximЛапух,Нет отчеты не нужны. ... Да кой же вы фанат аксика, если вы такое непотребные высказываете??? В аксике всЁ НУЖНОЕ практически есть. В данном случае ну кажись ТОЧНО. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2016, 21:55 |
|
Как сделать красиво? switch
|
|||
---|---|---|---|
#18+
ЛапухmrmaximЛапух,Нет отчеты не нужны. ... Да кой же вы фанат аксика, если вы такое непотребные высказываете??? В аксике всЁ НУЖНОЕ практически есть. В данном случае ну кажись ТОЧНО. Лопух, я не являюсь фанатом "асика", в нем использую исключительно SQL. В крайнем случае VBA. Задачу решил следующим образом: 1. Импортировал данные в нужном формате и привел таблицу к нормализованному виду с помощью Power Query для Excel 2. Импортировал тарифы в Access. Расчитал стоимости доставок (заняло менее 10 сек). 3. С помощью Power Query (обновляемый запрос) опять забросил данные в Excel. 4. C помощью Power Pivot визуализировал данные с необходимыми фильтрами и срезами. P.S. начиная с 2010 в excel появилась возможность делать связи в таблицах, а с помощью Power Query организовать даже аналог join Inner (default), Left Outer, Right Outer, Full Outer. всем заинтересовавшимся рекомендую статью Power Query: стероиды для MS Excel ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:50 |
|
|
start [/forum/topic.php?fid=45&msg=39181287&tid=1613869]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 345ms |
total: | 484ms |
0 / 0 |