LINUX.ORG.RU
ФорумTalks

Как в LibreOffice Calc вычислить соответствие определённому диапазону из числа?

 , , , ,


0

1

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

Многие фирмы и сервисные провайдеры указывают в договоре не цену за километр, а список диапазонов и фиксированную плату за каждый из них. Например LG

Город +10 км        800
От  11 до  50 км   1600
От  51 до  80 км   2200
От  81 до 100 км   2600
От 101 до 150 км   3600
(Если что, цены в рублях, а ремонтники получают 1/3)

Можно было бы конечно сделать микро-столбцы куда надо ставить логическую единицу, но это выглядит очень топорно и люди с «приёмки» в этом запутаются.

В идеале формула должна получать километры и отображать в ячейке оплату.

☆☆☆

Последнее исправление: rezedent12 (всего исправлений: 1)

Смотреть в сторону VLOOKUP

greenman ★★★★★
()

VLOOKUP() по столбцу «От» будет выбирать нужное значение (останавливается на ближайшей строке, где критерий <= значению в столбце).

bormant ★★★★★
()

Разобрался?

Сделай ячейку где ты вписываешь километраж. Потом колонку где IF ячейка больше>от и <=до ТО 1 ИНАЧЕ 0;

Потом индексом ищешь номер строки и подтягиваешь сумму.

dmxrand
()
Ответ на: комментарий от dmxrand

Это я понял. Только у меня ещё 1 проблема появилась.

Как преобразовать строку «A3:B144» в ссылку на диапазон ячеек? Какую функцию для этого использовать?

VLOOKUP(B4;INDIRECT(VLOOKUP(C4;Марки.A1:B100;1;1);0);2;1)

Пытался использовать такую формулу, но функция INDIRECT как я понял не преобразовывает строку «A3:B144» получаемую

VLOOKUP(C4;Марки.A1:B100;1;1)
В ссылку на массив (диапазон)

rezedent12 ☆☆☆
() автор топика
Последнее исправление: rezedent12 (всего исправлений: 1)
Ответ на: комментарий от dmxrand

INDEX

А как через него сделать? Есть двумерная таблица, бренды и километры. В ячейках таблицы указана стоимость. Как её извлекать? Имея ячейку с маркой допустим «LG» и с числом километров?

http://www.imageup.ru/img88/2309455/massiv-cen.jpg

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Смотри VLOOKUP(WHAT;REGION;COLUMN;SORTED?) Тоесть мы ищем WHAT в REGION а возвращаем значение в колонке COLUMN ну и сортированное или нет. Теперь перепишем через MATCH и INDEX.

MATCH(WHAT;REGION;TYPE) ищет WHAT в массиве REGION и тип сравнения берем 1 (кажется) это типа строгое совпадение. Вернет нам номер строки если ищем в вертикальном массиве или столбца если ищем в горизонтальном. Теперь у нас есть массив ИМЯ Возраст (и так несколько строк)

VLOOKUP(«Маша»;A0:A100;2;0)

INDEX(A0:C100;MATCH(«Маша»;A0:A100;1);2)

Это будет точно одно и тоже. Только C VLOOKUP ищет ВСЕГДА в первом столбце. А тут ты можешь искать в одном, а значение подставлять хоть из левого, хоть из правого.

Так и тут ты сделал столбец где у тебя условие проверки границ если оно выполняется то в столбце будет 1, если нет то 0 а потом

INDEX(A0:E100;MATCH(1;D0:D100;1);2) Где 2-й столбец - столбец с ценами. MATCH ищет единичку в D0:D100 это столбец с единичками

dmxrand
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.