Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Поиск данных в двумерном массиве
 
Задача состоит в следующем: Есть двумерный массив, в котором столбцы характеризуют интервальные значения, а строки категорию товара. Зная сумму проданного товара и его количества нужно определить ксначала столбец с данными(т.е. если сумма покупок с клиентом меньше чем указанная в строке 2 (например: меньше или равно 600, то колонка B; сумма больше 600, но меньше или равно 1250, то колонка C; и т.д.), затем в определенном столбце нужно определить строку по известному количеству продуктов и соответственно категорию клиентов((максимально возможная при таких показателях категория). Пробовал для определения строки в таблице использовать следующую формулу ВПР(G17;$B$4:$K$12;ЕСНД(ПРОСМОТР(G16;$B$2:$K$2;СТОЛБЕЦ($B$2:$K$2));1);ИСТИНА), но все равно определяет неверно, можете помочь или указать на ошибку?
 
Больно уж мудрено написали. Вот проще.
Изменено: TheBestOfTheBest - 13 Апр 2015 22:19:28
Неизлечимых болезней нет, есть неизлечимые люди.
 
Гляньте, может так?
Код
=ИНДЕКС(A4:A12;ПОИСКПОЗ(G17;ИНДЕКС(B4:K12;;H18);0);1)
Кому решение нужно - тот пример и рисует.
 
TheBestOfTheBest, я не совсем понял, что определяете ваша формула, ну то есть по синтаксису она определяет в двумерном массиве ячейку на пересечении найденных в ПОИСКПОЗ значений, но допустим введя в параметры сумму 601 и количество 7 она выдает 5, что как бы неверно.
 
Пытливый ,а на месте H18 вы ставили сумму или что другое ?
Изменено: Smolevich - 13 Апр 2015 21:50:33
 
Может, так подойдёт
Код
=ИНДЕКС(A4:A12;ПОИСКПОЗ(G17;ИНДЕКС(B4:K12;0;ПОИСКПОЗ(G16;B2:K2))))
 
Н18 я использовал из Вашего примера. Там количество, если я не ошибаюсь. Надо же найти категорию при условии - количество столько-то, стоимость в неких пределах - или я неправильно задачу понял?
Кому решение нужно - тот пример и рисует.
 
Цитата
Smolevich написал: введя в параметры сумму 601 и количество 7 она выдает 5
Почему же 5, когда 3. Как бы правильно "выдает"
Неизлечимых болезней нет, есть неизлечимые люди.
 
Заменил файл #2, формула такая  =ПОИСКПОЗ($G$17;СМЕЩ(B4;0;ЕСЛИОШИБКА(ПОИСКПОЗ($G$16;B$2:K$2;1);0);8;1);1)
Неизлечимых болезней нет, есть неизлечимые люди.
 
Pelena,  для значений к примеру суммы 1251 и количества товаров 3 выдает 5, хотя правильно 4, то есть отрабатывает по предыдущему столбцу
 
TheBestOfTheBest, во второй вашей формуле он неверно определяет категорию у граничных значений, к примеру сумма 2250 и количество 4.
 
Цитата
Smolevich написал:
для значений к примеру суммы 1251 и количества товаров 3 выдает 5, хотя правильно 4
Там два значения количества, равного трём, так что предыдущий столбец ни при чём. Просто берётся большее из двух возможных
 
Код
=ИНДЕКС(B4:K12;ПОИСКПОЗ(G15;A4:A12);ПОИСКПОЗ(G16;A2:J2))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Pelena,
test.jpg (82.1 КБ)
 
То есть берётся ближайшее большее, тогда
Код
=ИНДЕКС(A4:A12;ПОИСКПОЗ(G17;ИНДЕКС(B4:K12;0;ЕСЛИОШИБКА(ПОИСКПОЗ(G16;B2:K2;0);ПОИСКПОЗ(G16;B2:K2)+1))))
 
А чем мой вариант не подошел?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, цель - определить категорию (желтые ячейки)
 
The_Prist,
test.jpg (78.8 КБ)
Изменено: Smolevich - 13 Апр 2015 23:30:36
 
Pelena, вот так тогда, сейчас проверю все ли определяет
Код
=ИНДЕКС(A4:A12;ПОИСКПОЗ(G17;ИНДЕКС(B4:K12;0;ЕСЛИОШИБКА(ПОИСКПОЗ(G16;B2:K2;0);ЕСЛИОШИБКА(ПОИСКПОЗ(G16;B2:K2);0)+1))))
 
А-а-а...Тогда тоже вариант:
Код
=ИНДЕКС(A4:A12;ПОИСКПОЗ(G17;СМЕЩ(A4:A12;0;ПОИСКПОЗ(G16;A2:J2))))
летучая, конечно, но не тяжелая.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Кстати, если бы суммы были упорядочены по убыванию, формула была бы покороче (это я про свою)
Изменено: Pelena - 13 Апр 2015 23:38:48
 
Pelena, спасибо большое, вроде все верно.
The_Prist, если еще внутрений ПОИСКПОЗ обрамить в ЕСЛИОШИБКА, то вроде как тоже работает верно, и вам спасибо!
 
чуть-чуть изменить шапку,и все становится просто....
=ИНДЕКС(A4:A12;ПОИСКПОЗ(G17;ИНДЕКС(B4:K12;;ПОИСКПОЗ(G16;B2:K2));0))
Снимок.GIF (94.39 КБ)
 
Smolevich ,а чем заменненый фацл из поста #2 не подошел? Он корректно возвращает категорию.
Неизлечимых болезней нет, есть неизлечимые люди.
Страницы: 1
Читают тему (гостей: 1)