Страницы: 1
RSS
Как отобразить все значения при использовании функции ИНДЕКС
 
Здравствуйте, коллеги.

При использовании функции ИНДЕКС несколько значений удовлетворяют критериям поиска, однако отображается только одно значение в ячейке результата.
Как можно отобразить все значения в ячейке результата через ";"?

Заранее благодарю Вас за помощь.

С ув.,
 
Всё зависит от версии вашего Excel.

Но в большинстве случаев - никак, поскольку "несколько значений, возвращаемых ИНДЕКС()" - это массив, и его по определению нельзя "просто так" отобразить в одной ячейке. Кроме того, ИНДЕКС() сама по себе никаких "условий" не использует - она всегда возвращает либо значение, либо массив-столбец. То есть вы "случайно" умалчиваете.что у вас не просто ИНДЕКС()  :)

Но с помощью простейшей UDF преобразовать результат функции в строку - всегда пожалуйста. Но только на примере данных, про который вы, опять же, "случайно" забыли....
 
Цитата
AndreTM написал:
Всё зависит от версии вашего Excel.

Но в большинстве случаев - никак, поскольку "несколько значений, возвращаемых ИНДЕКС()" - это массив, и его по определению нельзя "просто так" отобразить в одной ячейке. Кроме того, ИНДЕКС() сама по себе никаких "условий" не использует - она всегда возвращает либо значение, либо массив-столбец. То есть вы "случайно" умалчиваете.что у вас не просто ИНДЕКС()  

Но с помощью простейшей UDF преобразовать результат функции в строку - всегда пожалуйста. Но только на примере данных, про который вы, опять же, "случайно" забыли....

Может быть я неправильно выразился...

Excel 2013.

=ИНДЕКС('Анализ цен'!$B$3:$B$1000;ПОИСКПОЗ(1;('Анализ цен'!$A$3:$A$1000=$A40)*('Анализ цен'!$N$3:$N$1000=Свод!$O40);0))

Использую такую формулу, которая приводит к тому, что я отбираю контрагентов, предлагающих лучшую цену.

Таких несколько и хотел бы отобразить всех, однако в результате исполнения этой функции отображается только один.

Прошу для чайника написать как можно это сделать или что pf UDF и как с ней быть..

Заранее спасибо
 
Цитата
Kirill161187 написал:
контрагентов, предлагающих лучшую цену.

Таких несколько и хотел бы отобразить всех
Даже если их несколько - их "лучшая цена" в этом случае одинакова. С точки зрения логики, если вы ищете "лучшую цену" - то вам и возвращается "любая первая же лучшая" (и соответствующий контрагент).
А тут вы меняете условие: "хочу получить ВСЕХ с лучшей ценой". То есть мало того, что вам надо отбирать не просто ПЕРВУЮ лучшую, а ВСЕ лучшие - так вы ещё и дополнительно уточняете "и хочу получить их не массивом/списком, а вообще строкой через запятую"  :)
А это требует совершенно перестроить сам метод решения.

Пример с данными где?  8)  
 
Цитата
AndreTM написал:
Пример с данными где?    

Загрузил пример...

Вот вся загвоздка с ячейкой С3 на листе "свод". Как сделать так, чтобы со второго листа подтягивалось несколько самых лучших...

Согласен, что тогда вопрос надо уже ставить - выбор лучшего или лучших, если их несколько
 
Kirill161187, нужно именно в одной ячейке?
 
Цитата
copper-top написал:
Kirill161187 , нужно именно в одной ячейке?
Я думаю это не столь важно, так как далее через функцию сцепить можно выйти на одну ячейку...
 
массивная
Код
=ИНДЕКС('Анализ цен'!$B$1:$C$11;НАИМЕНЬШИЙ(ЕСЛИ('Анализ цен'!$C$3:$C$11=МАКС('Анализ цен'!$C$3:$C$11);СТРОКА('Анализ цен'!$B$3:$B$11));СТРОКА('Анализ цен'!C1));3-СТОЛБЕЦ(A1))

не цитируйте всё сообщение
Изменено: copper-top - 15.08.2017 05:35:43
 
Cпасибо!
Страницы: 1
Читают тему
Наверх