2016-06-29 12 views
2

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

  • Количество (Значения 1, 2-9,10-49,50 + и более)
  • Способ доставки

В зависимости от количества Значение и судоходства метода , Excel должен LookUp на столе и вернуть полную стоимость доставки в соответствии со следующей таблицей:

------------------------------------------ 
Delivery |  Per shipment fee   
------------------------------------------ 
      | 1  2-9 10-49  50+ 
------------------------------------------    
Standard | 2,99 1,89  1,5 1,1 
Expedited | 5,99  2 1,75 1,25 
Priority | 10,99 3,39 2,25 1,35 
------------------------------------------ 

Позвольте мне показать вам некоторые примеры того, что я хочу получить:

1- Пример: - Количество: 15 - Доставка: Ускоренное - Общая стоимость = 15 * 1,75 = 26,25 $

$ 1,75 является возвращаемым значением посмотрев на стол используя переменную количество и способ доставки.

Я проверил выполнение утверждений = IF, но уверен, что есть более простой способ сделать это. Я не очень хорошо разбираюсь в программировании на Excel, поэтому любая помощь будет оценена

С уважением, и у нас отличный день!

ответ

2

Предполагая, что ваша таблица имеет типы доставки в столбце A в строках с 4 по 6 и что величины в строке 3 (колонны B через E) следующая формула сделать это для вас:

=INDEX(B4:E6,MATCH(B9,A4:A6,0),MATCH(C9,B3:E3,1)) * Quantity 

Обратите внимание, что величины в строке 3 должны быть числом. Таким образом, цифры должны быть 1, 2, 10 и 50, а не 1, 2-9, 10-59, 50+. Есть две возможности для достижения этой цели:.

  1. Создать вспомогательную строку и скрыть его (в то время как только показывать строку с «именами», как вы хотите для
  2. Изменить формат числа этих клеток: для столбец, содержащий 2, тогда формат числа должен быть "2-9" (формат пользовательских номеров). Для номера 10 формат номера будет "10-49", а формат номера для последнего столбца будет "50+". Подобно этому вы видите, что вы хотите увидеть, пока ячейки все еще содержат только цифры (для правильной работы верхней формулы).

enter image description here

+0

спасибо! Он работает правильно. Я заметил, что у кода есть запятые вместо полуколонии. Это верно? GIF-анимация показывает полуколоны = INDEX (B4: E6, MATCH (B9, A4: A6,0), MATCH (C9, B3: E3,1)) * C – Iker

+0

Я живу в ЕС и поэтому имею ' 'в качестве десятичного заполнителя, в то время как' .' здесь используется для тысяч. Таким образом, следующее было бы миллионом 1.000.000,00. Чтобы не путать формулы Excel здесь, в ЕС, мы должны использовать ';' для формул. В противном случае следующая формула не будет работать: '= Max (1,5; 2,5)'. Тем не менее, здесь (чтобы соответствовать стандарту на этом сайте) я всегда пишу свои ответы в американском стиле. Но я слишком ленив, чтобы изменить свои региональные настройки для каждого экрана. Итак, извиниться за это.В экранном режиме вы видите стиль ЕС, а текст вокруг него - американский стиль. :) – Ralph

+0

ОК, я вижу. Я понял, что, возможно, это проблема региональных проблем, поэтому я сам изменил ее в ЕС;) Еще раз спасибо! – Iker

Смежные вопросы