Уважаемые Форумчане, Просьба помочь в решение след задачи
Имеем прай-лист на трубную продукцию, где цена зависит от: - Марки - Диаметра - Погран-перехода - Покупателя - В некоторых случаях от грузополучателя ( См. Покупатель 20 из примера)
Сложности: - Пробовал ч-з формулу СУММПРОИЗВ, но диапазон диаметров учесть не могу - Цена на погран-переходе МОСКВА и ВОРОНЕЖ - одинаковые - Цены для покупателей 1;2;8;9 совпадают ( или стоит записать их в столбце ниже? чтобы было проще использовать ф-лу?) - Цена для покупателя 20 зависит от грузополучателей (1 и 2)
Надеюсь на позитивный отклик, Заранее большое спасибо
ЗЫ если пример не корректный, просьба, указать - скорректирую
Уважаемые Форумчане, Просьба помочь в решение след задачи
Имеем прай-лист на трубную продукцию, где цена зависит от: - Марки - Диаметра - Погран-перехода - Покупателя - В некоторых случаях от грузополучателя ( См. Покупатель 20 из примера)
Сложности: - Пробовал ч-з формулу СУММПРОИЗВ, но диапазон диаметров учесть не могу - Цена на погран-переходе МОСКВА и ВОРОНЕЖ - одинаковые - Цены для покупателей 1;2;8;9 совпадают ( или стоит записать их в столбце ниже? чтобы было проще использовать ф-лу?) - Цена для покупателя 20 зависит от грузополучателей (1 и 2)
Надеюсь на позитивный отклик, Заранее большое спасибо
ЗЫ если пример не корректный, просьба, указать - скорректируюMacintoshka
А если Прайс не менять (и если я ничего нигде не напутал), то вот так
Не очень нагло будет попросить вас разобрать формулу? Работает круто, но понять ее не просто. В частности не ясен маневр *ЕЧИСЛО(ПОИСК(C2;ПРОСМОТР(СТРОКА('Price-list'!A$4:A$63);СТРОКА('Price-list'!A$4:A$63)/('Price-list'!D$4:D$63<>"");'Price-list'!C$4:C$63&'Price-list'!D$4:D$63) Столбец А ведь не заполнен, для чего отсыл к нему идет?
А если Прайс не менять (и если я ничего нигде не напутал), то вот так
Не очень нагло будет попросить вас разобрать формулу? Работает круто, но понять ее не просто. В частности не ясен маневр *ЕЧИСЛО(ПОИСК(C2;ПРОСМОТР(СТРОКА('Price-list'!A$4:A$63);СТРОКА('Price-list'!A$4:A$63)/('Price-list'!D$4:D$63<>"");'Price-list'!C$4:C$63&'Price-list'!D$4:D$63) Столбец А ведь не заполнен, для чего отсыл к нему идет?Macintoshka
Михаил, а здесь обычная куча произведений по вертикали, умноженная на произведение по горизонтали и умноженная на весь массив. Единственная засада вот здесь
-такой ПРОСМОТР дает из массива типа ААА;"";"";ВВВ;"";"";"";... вот такой ААА;ААА;ААА;ВВ;ВВ;ВВ;ВВ;... как работает - 1. кусок СТРОКА('Price-list'!A$4:A$63)/('Price-list'!B$4:B$63<>"") дает или номер строки, или ошибку деления на 0 (когда B$4:B$63="") - 4;ош;ош;7;ош;ош;ош;... 2. в куске ПРОСМОТР(СТРОКА('Price-list'!A$4:A$63);СТРОКА('Price-list'!A$4:A$63)/('Price-list'!B$4:B$63<>"") ищем числа 4;5;6;...;63 в массиве из п.1 3. если находим, то выводим соответствующее значение из массива 'Price-list'!B$4:B$63, если не находим, то "поднимаемся" наверх до того момента, как находили (в примере для значения 9 соответствие будет 7, а для 6 будет 4) - ищим максимальную найденную в п.2 строку, не большую искомой. Еще объяснялку для ПРОСМОТР можно посмотреть здесь http://www.excelworld.ru/forum/2-16573-138042-16-1427281717
Пока писал для Михаила, Иван еще вопрос задал. Сразу допишу СТРОКА('Price-list'!A$4:A$63) дает нам номера строк с 4 по 63 - нам все равно, какой у ссылок столбец, можно вообще вот так написать СТРОКА('Price-list'!$4:$63) ПРОСМОТР(СТРОКА('Price-list'!A$4:A$63);СТРОКА('Price-list'!A$4:A$63)/('Price-list'!D$4:D$63<>"");'Price-list'!C$4:C$63&'Price-list'!D$4:D$63) даст нам сцепленные значения из столбцов С и D (принцип см. этом посте выше) ПОИСКом мы ищем в этой сцепке значение С2 - итогом будет или какое-то число, или ошибка - и с помощью ЕЧИСЛО преобразуем полученное в ИСТИНА или ЛОЖЬ, которые после умножения дают нам 1 или 0.
Михаил, а здесь обычная куча произведений по вертикали, умноженная на произведение по горизонтали и умноженная на весь массив. Единственная засада вот здесь
-такой ПРОСМОТР дает из массива типа ААА;"";"";ВВВ;"";"";"";... вот такой ААА;ААА;ААА;ВВ;ВВ;ВВ;ВВ;... как работает - 1. кусок СТРОКА('Price-list'!A$4:A$63)/('Price-list'!B$4:B$63<>"") дает или номер строки, или ошибку деления на 0 (когда B$4:B$63="") - 4;ош;ош;7;ош;ош;ош;... 2. в куске ПРОСМОТР(СТРОКА('Price-list'!A$4:A$63);СТРОКА('Price-list'!A$4:A$63)/('Price-list'!B$4:B$63<>"") ищем числа 4;5;6;...;63 в массиве из п.1 3. если находим, то выводим соответствующее значение из массива 'Price-list'!B$4:B$63, если не находим, то "поднимаемся" наверх до того момента, как находили (в примере для значения 9 соответствие будет 7, а для 6 будет 4) - ищим максимальную найденную в п.2 строку, не большую искомой. Еще объяснялку для ПРОСМОТР можно посмотреть здесь http://www.excelworld.ru/forum/2-16573-138042-16-1427281717
Пока писал для Михаила, Иван еще вопрос задал. Сразу допишу СТРОКА('Price-list'!A$4:A$63) дает нам номера строк с 4 по 63 - нам все равно, какой у ссылок столбец, можно вообще вот так написать СТРОКА('Price-list'!$4:$63) ПРОСМОТР(СТРОКА('Price-list'!A$4:A$63);СТРОКА('Price-list'!A$4:A$63)/('Price-list'!D$4:D$63<>"");'Price-list'!C$4:C$63&'Price-list'!D$4:D$63) даст нам сцепленные значения из столбцов С и D (принцип см. этом посте выше) ПОИСКом мы ищем в этой сцепке значение С2 - итогом будет или какое-то число, или ошибка - и с помощью ЕЧИСЛО преобразуем полученное в ИСТИНА или ЛОЖЬ, которые после умножения дают нам 1 или 0._Boroda_