Страницы: 1
RSS
Поиск по 2м критериям наменьшего значения, Перевести таблицу из вертикального варианта в горизонтальные по 2м условиям приоретезации.
 
Народ, добрый вечер!

Подскажите пожалуйста через какие формулы можно транспортировать таблицу из вертикального вида в горизонтальный, при этом нужно учесть последовательность приоритета 1 и приоритета 2, пример и какой должен быть результат - в файле.

Пробовал через индекс + поискпоз + наименьший , что то не получается ..  

{=ИНДЕКС(D2:D101087;ПОИСКПОЗ(I4&1&НАИМЕНЬШИЙ(F2:F101087;1);C2:C101087&E2:E101087&F2:F101087;0))}
Изменено: Стас Шнейдер - 28.11.2023 10:22:53
 
с таким примером вы помощи не дождетесь. Уберите лишние данные, покажите вручную необходимый результат, поясните логику учета приоритетов.
 
Цитата
написал:
с таким примером вы помощи не дождетесь. Уберите лишние данные, покажите вручную необходимый результат, поясните логику учета приоритетов.
Прощу, прощения. Не тот пример выложил... Обновил, как раз там все это и учел.
 
Доброго
вариант:
Изменено: Павел \Ʌ/ - 28.11.2023 13:47:36 (Корректировка формулы для большего охвата "приоритетов" + вариант с допстолбцом)
 
Павел \Ʌ/, Спасибо!  попытался протянуть на большее кол-во строк , вроде бы работает!

Павел \Ʌ/, Update , нет не считает так, как нужно после переноса на основной массив данных. Строчек больше 113 тыс, пример не могу приложить из за размера файла.
Изменено: Стас Шнейдер - 28.11.2023 11:44:24
 
Можно и первую формулу подправить, но я думаю в вашем случае можно попроще
{ }
=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$21;ПОИСКПОЗ(ЧИСЛСТОЛБ($J4:J4);($C$4:$C$21=$I4)*($E$4:$E$21+$F$4:$F$21-($F$4:$F$21>0)); )); )
 
Цитата
написал:
{ }=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$21;ПОИСКПОЗ(ЧИСЛСТОЛБ($J4:J4);($C$4:$C$21=$I4)*($E$4:$E$21+$F$4:$F$21-($F$4:$F$21>0)); )); )
Начинает считать корректно ( первое значение находит правильное) , но пропускает 11 значений из 1ого приоритета , и переходит ко 2ому приоритету и дальше опять все правильно ((
Изменено: Стас Шнейдер - 28.11.2023 12:57:45
 
Подправил и перезалил см выше
 
Еще вариант формулой массива:
Код
=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$21;ПОИСКПОЗ(НАИМЕНЬШИЙ(ЕСЛИ($C$4:$C$21=$I7;$E$4:$E$21*100+$F$4:$F$21*10);СТОЛБЕЦ(A1));$E$4:$E$21*100+$F$4:$F$21*10;0));"")
Изменено: Дмитрий(The_Prist) Щербаков - 28.11.2023 14:21:36
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,
Спасибо!!  на текущем диапазоне работает ,но если добавлять данные ( а их больше 115к строк) , то просчет и логика уже ломается..

Прикладываю файл с примером бОльшего диапазона.
 
Тогда так:
Код
=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$17117;ПОИСКПОЗ(НАИМЕНЬШИЙ(ЕСЛИ($C$4:$C$17117=$I7;$C$4:$C$17117*10000+$E$4:$E$17117*1000000+$F$4:$F$17117*100000);СТОЛБЕЦ(A1));$C$4:$C$17117*10000+$E$4:$E$17117*1000000+$F$4:$F$17117*100000;0));"")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
Тогда так:Код=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$17117;ПОИСКПОЗ(НАИМЕНЬШИЙ(ЕСЛИ($C$4:$C$17117=$I7;$C$4:$C$17117*10000+$E$4:$E$17117*1000000+$F$4:$F$17117*100000);СТОЛБЕЦ(A1));$C$4:$C$17117*10000+$E$4:$E$17117*1000000+$F$4:$F$17117*100000;0));"")
Почти верно =((  1 значение только не совпадает  
Изменено: Tkid88 - 28.11.2023 15:38:28
 
Можете попоробовать такой вариант (с первым могли быть не точности из-за особенностей экселя)
{ }
=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$17117;ПРАВСИМВ(НАИМЕНЬШИЙ(ЕСЛИ($C$4:$C$17117=$I4;$E$4:$E$17117*10^10+$F$4:$F$17117*10^6+СТРОКА($D$4:$D$17117));ЧИСЛСТОЛБ($J4:J4))-СТРОКА($D$3);6));"")
 
Павел \Ʌ/, да что вы все гадаете с этими разрядами?  :) Можно же число - в текст и посчитать длину строки. Вот она и разрядность. Хотя, с этими "древними" формулами мучение еще то... Извините, если ерунду написал  :D
Изменено: AlienSx - 28.11.2023 16:19:14
Пришелец-прораб.
 
Цитата
Tkid88 написал:
Почти верно
Код
=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$17117;ПОИСКПОЗ(НАИМЕНЬШИЙ(ЕСЛИ($C$4:$C$17117=$I8;$E$4:$E$17117*1000000+$F$4:$F$17117*10000);СТОЛБЕЦ(A2));ЕСЛИ($C$4:$C$17117=$I8;$E$4:$E$17117*1000000+$F$4:$F$17117*10000);0));"")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо!  Последние 2 варианта работают!
Страницы: 1
Наверх