Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Функция ФИЛЬТР.XML как источник для выпадающего списка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Функция ФИЛЬТР.XML как источник для выпадающего списка
i691198 Дата: Понедельник, 16.12.2024, 21:17 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 355
Репутация: 111 ±
Замечаний: 0% ±

Добрый вечер. Есть строка с перечислением через запятую названий, например такая - ПА1-011, ПА2-006, ПА2-018, ПА2-022, ПА1-019, ПА2-027, ПА3-012, ПР2-018. Нужно выбрать их нее названия содержащие подстроку ПА2 и сделать из них выпадающий список. С этим хорошо справляется функция ФИЛЬТР.XML,
Код
=ФИЛЬТР.XML("<i><j>"&ПОДСТАВИТЬ($B$2;", ";"</j><j>")&"</j></i>";"//j[contains(., '"&$B$4&"')]")  
она выдает массив с нужными значениями. Остается только развернуть этот массив на листе и использовать в качестве источника для выпадающего списка. Я подумал - если эта формула выдает массив с нужными значениями, то почему бы не использовать ее напрямую в качестве источника для выпадающего списка без промежуточного развертывания на листе. Непосредственно в проверке данных формулы использовать нельзя, поэтому делал через диспетчер имен. Результат отрицательный - выдает ошибку, попробовал транспонировать массив - опять ошибка. Или я делаю что то не так, или это идея фикс. Что вы об этом думаете?
К сообщению приложен файл: list_1.xlsx (9.6 Kb)
 
Ответить
СообщениеДобрый вечер. Есть строка с перечислением через запятую названий, например такая - ПА1-011, ПА2-006, ПА2-018, ПА2-022, ПА1-019, ПА2-027, ПА3-012, ПР2-018. Нужно выбрать их нее названия содержащие подстроку ПА2 и сделать из них выпадающий список. С этим хорошо справляется функция ФИЛЬТР.XML,
Код
=ФИЛЬТР.XML("<i><j>"&ПОДСТАВИТЬ($B$2;", ";"</j><j>")&"</j></i>";"//j[contains(., '"&$B$4&"')]")  
она выдает массив с нужными значениями. Остается только развернуть этот массив на листе и использовать в качестве источника для выпадающего списка. Я подумал - если эта формула выдает массив с нужными значениями, то почему бы не использовать ее напрямую в качестве источника для выпадающего списка без промежуточного развертывания на листе. Непосредственно в проверке данных формулы использовать нельзя, поэтому делал через диспетчер имен. Результат отрицательный - выдает ошибку, попробовал транспонировать массив - опять ошибка. Или я делаю что то не так, или это идея фикс. Что вы об этом думаете?

Автор - i691198
Дата добавления - 16.12.2024 в 21:17
прохожий2019 Дата: Понедельник, 16.12.2024, 22:34 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1301
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
Непосредственно в проверке данных формулы использовать нельзя
можно, просто эта формула должна возвращать ссылку на диапазон; а вот брать напрямую из памяти экселька не умеет
 
Ответить
Сообщение
Непосредственно в проверке данных формулы использовать нельзя
можно, просто эта формула должна возвращать ссылку на диапазон; а вот брать напрямую из памяти экселька не умеет

Автор - прохожий2019
Дата добавления - 16.12.2024 в 22:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!