Создание списка из списка по выбранному критерию

Автор STEROID, 15.06.2012, 10:16

« назад - далее »

STEROID

Существует список, итог обработки списка - колонка применяемость, как вывести формульно отдельный список материалов которые применяются?

cheshiki1


Serge 007

Без доп столбца (см. вложение лист 1)

Цитата: cheshiki1 от 15.06.2012, 10:33
с доп столбцом
С доп столбцом можно и так (см. вложение лист 2)


PS Значения ошибки скрыты УФ
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

_Boroda_

или так без доп. ст. (на основе формулы в столбце Е)
=ИНДЕКС(A$1:A$9;НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9));СТРОКА()-1))
формула массива
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

IKor

Цитата: cheshiki1 от 15.06.2012, 10:33
с доп столбцом
Если для нас не важны значения, записываемые в дополнительный столбец, то ИМХО туда лучше писать не порядковые номера, а номер текущей строки [базовой таблицы] (=СТРОКА()-СТРОКА(таблица) ) - так будет проще возвращать значения во вновь-формируемый список.

Цитата: _Boroda_ от 15.06.2012, 11:19
=ИНДЕКС(A$1:A$9;НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9));СТРОКА()-1))
Если ошибки мешают дальнейшему использованию списка, то от них можно избавиться, усложнив формулу массива:
=ЕСЛИ(СТРОКА()-1>СЧЁТЕСЛИ(D:D;">0");"";_Результирующая_Формула_)
для ускорение работы с большими таблицами подсчет количества значений нового списка =СЧЁТЕСЛИ(D:D;">0") желательно делать в отдельной ячейке.

Для дальнейшего использования можно сгенерировать динамическую ссылку на новый список:
=СМЕЩ($G$1;1;0;СЧЁТЕСЛИ(D:D;">0");1)
или
=СМЕЩ($G$1;1;0;СЧЁТЗ($G:$G);1)

STEROID

Цитата: _Boroda_ от 15.06.2012, 11:19
или так без доп. ст. (на основе формулы в столбце Е)
=ИНДЕКС(A$1:A$9;НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9));СТРОКА()-1))
формула массива

=ИНДЕКС(A$1:A$9;НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9));СТРОКА()-1))

Можете пояснить, сижу азы формул разбираю - не могу все сложить в одну формулу?

Serge 007

Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

_Boroda_

=ИНДЕКС(A$1:A$9;НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9));СТРОКА()-1))
1) ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9) - если в D значения больше 0, то формула дает номер этой строки (2;3;4;...), иначе - ЛОЖЬ
2) из полученного в п.1 выбираем n-ую наименьшую цифру, где n - СТРОКА()-1 - это номер строки, в которой находится сама формула, минус 1
В итоге получаем последовательно номера строк (минус 1), в которых D>0
3) Индексом выковыриваем по этим номерам значения из А
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

STEROID

Цитата: _Boroda_ от 18.06.2012, 13:26
=ИНДЕКС(A$1:A$9;НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9));СТРОКА()-1))
1) ЕСЛИ($D$2:$D$9>0;СТРОКА(E$2:E$9) - если в D значения больше 0, то формула дает номер этой строки (2;3;4;...), иначе - ЛОЖЬ
2) из полученного в п.1 выбираем n-ую наименьшую цифру, где n - СТРОКА()-1 - это номер строки, в которой находится сама формула, минус 1
В итоге получаем последовательно номера строк (минус 1), в которых D>0
3) Индексом выковыриваем по этим номерам значения из А

Вопрос - можно ли  привязанные массивы в этой формуле заменить динамическими?

Serge 007

Цитата: STEROID от 18.06.2012, 13:42
Вопрос - можно ли  привязанные массивы в этой формуле заменить динамическими?
Можно. Что мешает самому проверить?

ЗЫ Только размерность массивов должна быть одинаковой.
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

STEROID

Цитата: Serge 007 от 18.06.2012, 13:47
Цитата: STEROID от 18.06.2012, 13:42
Вопрос - можно ли  привязанные массивы в этой формуле заменить динамическими?
Можно. Что мешает самому проверить?

ЗЫ Только размерность массивов должна быть одинаковой.

Проверяю не получается!
и еще, хотел поменять условие, так как по условию столбцом D пользоваться нельзя, условие ЕСЛИ($E$2:$E$9="применяется";СТРОКА(F$2:F$9) не выполняется.....

Serge 007

Цитата: STEROID от 18.06.2012, 13:52
Проверяю не получается!
Выкладывайте что не получается

Цитироватьтак как по условию столбцом D пользоваться нельзя
В моём варианте этот столбец не используется
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

STEROID

Получена информация - разбираюсь дальше!

STEROID

Цитата: STEROID от 18.06.2012, 14:01
Получена информация - разбираюсь дальше!
Разобрался вроде что не работало - зачем вопрос выделять формулу и нажимать ctrl shift enter?

Serge 007

Цитата: STEROID от 18.06.2012, 15:24
зачем вопрос выделять формулу и нажимать ctrl shift enter?
Так вводятся формулы массива.

ЗЫ Странный вопрос :)
Аналогично "Зачем формулу начинать со знака равно?"
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390