Страницы: 1
RSS
выбор из двух массивов по двум условиям
 
Гуру, прошу помощи.  
Есть две таблицы данных: в строках интервалы по 15 мин., в столбцах название станций, на пересечении соответсвующий промежутку и станции рейтинг. Таблицы две: одна для будних, одна для выходных дней. Необходима формула которая будет возвращать на другом листе значение ретинга построчно для определенной станции, времени и дня недели (будний/выходной).
 
В исходных таблицах нет "День". Как его определять?  
 
Для облегчения расчетов интервалы лучше разбить на две части: начало и конец.  
Вариант: выделить в отдельный столбец время начала интервала (можно формулами).
 
Дня недели в исходных таблицах нет. Данные выгружаются из специализированного ПО отдельно по будням и выходным. Можно конечно и по дням, но это, во первых, ненужная точность, во вторых , исходных таблиц тогда семь будет)). Интервалы разбить можно, с этим проблем нет.  
Логически я понимаю, что нужно выбрать из таблицы ячейку по двум условиям: столбец, соответствующий названию станции, и строку по времени, причем время точно совпадать не может, надо найти ближайший 15-минутный отрезок. Ну и выбор в соответствии с днем недели из первой или из второй таблицы.
 
У Вас в критериях отбора есть "День". Результирующая таблица не знает о ненужной точности, ей все равно, откуда выгружаются данные. Подавай наличие данных по такому критерию - и все тут :)  
Чем точнее и четче составлены вопрос и пример, тем быстрее приходит господин Ответ.  
 
Не применяйте цитирование без надобности.
 
Потестируйте. Формула массива:  
 
=ИНДЕКС(('лист 2'!$C$4:$E$75;'лист 2'!$C$79:$E$150);ЕСЛИ(C2<6;ПОИСКПОЗ(E2;ПСТР('лист 2'!B4:B75;1;НАЙТИ("-";'лист 2'!$B$4:$B$75)-1)*1);ПОИСКПОЗ(E2;ПСТР('лист 2'!$B$79:$B$150;1;НАЙТИ("-";'лист 2'!$B$79:$B$150)-1)*1));ПОИСКПОЗ(B2;'лист 2'!C3:E3;0);ЕСЛИ(C2<6;1;2))  
 
---------  
21354
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
В файле есть функция специально для вашей задаче, сохраните ее в личную книгу макросов.  
Там же и пример работы
 
С доп. столбцом:  
=ВПР(E2;ИНДЕКС(('лист 2'!A4:E75;'лист 2'!A79:E150);;;1+(C2>5));ПОИСКПОЗ(B2;'лист 2'!A3:E3;0))
 
Спасибо. Все работает.
Страницы: 1
Читают тему
Loading...