Страницы: 1
RSS
Помогите сформулировать запрос, который будет брать значение для переменного фильтра равные значением одной из таблиц в файле
 
Есть файл "Цифры.xlsm". В нем имеется столбик с крайне большим количеством разнообразных значений.
Необходимо отфильтровать эти значения по нужным параметрам, а "нужными параметрами" необходимо считать значение таблицы "cards", что находится в файле, из которого все это дело запускается.

Наглядные файлы, скрины с пояснениями и код прикладываю ниже.
Код запроса:
Код
let
    Источник = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="params"]}[Content]{0}[path]&"1 База.xlsm"), null, true),
    Отчет_Sheet = Источник{[Item="Отчет",Kind="Sheet"]}[Data],
    #"Удаленные верхние строки1" = Table.Skip(Отчет_Sheet,2),
    #"Строки с применным фильтром" = Table.SelectRows(#"Удаленные верхние строки1", each ([Column1] = (Excel.CurrentWorkbook(){[Name="cards"]}[Content]{0}[Карта])))
in
    #"Строки с применным фильтром"

НУЖНО:
1) Берем все числовые значение из таблицы 'cards', столбика 'Карта', файл ВО 3.xlsm

2) И вставляем их ВСЕ в переменный фильтр запроса данных в ВО 3.xlsm ИЗ 1 База.xlsm,
который в итоге оставляет только те строки, в первом столбце значение которых соответствует тому, что мы берем из таблицы 'cards', файл ВО 3.xlsm

Большое спасибо!

Какой бы размер не разрешали - МАЛО! Более 300 кБ! Файлы удалены. Читайте правила форума
Изменено: falmrom - 27.04.2018 17:51:03
Улыбнись.
 
За 67 сообщений  не научились нормально создавать тему?
Вам решение тоже в картинках выложить?
 
Dima S,Дополнил  
Улыбнись.
 
Новое название для темы:

Сформулировать запрос данных, который будет брать значения для переменного фильтра равные значениям столбца одной из таблиц в файле
Улыбнись.
 
Думаю в сторону решения при помощи этого способа, но никак не могу сообразить, как лучше сделать.
https://www.planetaexcel.ru/techniques/12/2152/
Посоветуйте, кто, что может, пожалуйста
Улыбнись.
 
Файлы посмотреть не могу сейчас.
Базовое решение такое:
Ничего никуда вставлять не надо. Делаете слияние (merge, или join иными словами) двух таблиц по следующему принципу:
  1. Первая таблица - та, которая "Импорт данных по картам", вторая - "Импорт списка карт".
  2. Метод слияния - Правое внешнее соединение (Right Outer Join) внутреннее соединение
  3. Затем удаляете получившийся столбец.
Изменено: Максим Зеленский - 27.04.2018 15:19:54
F1 творит чудеса
 
добавлю в копилку "Отфильтровать таблицу на основе другого столбца таблицы или списка"
https://eriksvensen.wordpress.com/2017/12/12/powerquery-filter-a-table-based-on-another-table-column...

= Table.SelectRows (Sales_Customers, каждый List.Contains (Query1, [CustomerCategoryID]))

List.Contains проверит, будет ли каждая строка в таблице иметь номер CustomerCategoryID, который существует в списке, и возвращает true, если это произойдет, и тогда ваша таблица будет содержать только строки, в которые возвращается True

Если вы хотите исключить значения, которые у вас есть в своем списке, вы можете изменить выражение на

= Table.SelectRows (Sales_Customers, каждый List.Contains (Query1, [CustomerCategoryID]) = false

Изменено: volond75 - 27.04.2018 17:07:43
"Правильно заданный вопрос,половина ответа!"
 
Доброе время сутокvolond75,  коллега, долго это. Лучше так
Всё как советовал Максим.
Изменено: Андрей VG - 27.04.2018 18:36:00
 
Цитата
Андрей VG написал:
Доброе время суток volond75 ,  коллега, долго это. Лучше  так
Согласен , но хочу сделать так
Выпадающий список с накопительным результатом
http://www.doconomist.net/2016/07/google.html Где то видел реализацию в Excel
А потом применить мой способ получая список из 1 ячейки
Понимаю что ограничение на 1500 символов но мне достаточно
Изменено: volond75 - 02.05.2018 18:33:49
"Правильно заданный вопрос,половина ответа!"
 
Максим Зеленский, спасибо, именно так на PQ и решил вопрос.
Улыбнись.
Страницы: 1
Наверх