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

Вход

Регистрация

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

 

= Мир MS Excel/Power Qeury динамический отбор столбцов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Power Qeury динамический отбор столбцов (Microsoft Query)
Power Qeury динамический отбор столбцов
npbzemlya Дата: Понедельник, 18.01.2021, 09:41 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Добрый день!
В запросе пытаюсь реализовать динамический отбор столбцов через лист настройки
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="zakaz_ASM"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Номенклатура", type text}, {"Сумма", type number}, {"Кол-во", type number}, {"Цена", type number}, {"Кол-во2", type number}, {"Цена3", type number}, {"Кол-во4", type number}, {"Цена5", type number}, {"Кол-во6", type number}, {"Цена7", type number}, {"Кол-во8", type number}, {"Цена9", type number}, {"Кол-во10", type number}, {"Цена11", type number}, {"Кол-во12", type number}, {"Цена12", type number}, {"Кол-во13", type number}, {"Цена13", type number}, {"Кол-во14", type number}, {"Цена14", type number}, {"Кол-во15", type number}, {"Цена15", type number}, {"Кол-во16", type number}, {"Цена16", type number}, {"Кол-во17", type number}, {"Цена17", type number}, {"Кол-во18", type number}, {"Цена18", type number}, {"Кол-во19", type number}, {"Кол-во20", type number}, {"Цена19", type number}, {"Цена20", type number}, {"Кол-во21", type number}, {"Цена21", type number}, {"Кол-во22", type number}, {"Цена22", type number}, {"Кол-во23", type number}}),
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",Table.ToList(Настройки))
in
    #"Другие удаленные столбцы"
[/vba]
И напарываюсь на ошибку типа Столбец "Цена,да" таблицы не найден. Лист Настройки в запросах работает только как поключение
Подскажите пожалуйста в чем моя ошибка. Благодарю!
 
Ответить
СообщениеДобрый день!
В запросе пытаюсь реализовать динамический отбор столбцов через лист настройки
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="zakaz_ASM"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Номенклатура", type text}, {"Сумма", type number}, {"Кол-во", type number}, {"Цена", type number}, {"Кол-во2", type number}, {"Цена3", type number}, {"Кол-во4", type number}, {"Цена5", type number}, {"Кол-во6", type number}, {"Цена7", type number}, {"Кол-во8", type number}, {"Цена9", type number}, {"Кол-во10", type number}, {"Цена11", type number}, {"Кол-во12", type number}, {"Цена12", type number}, {"Кол-во13", type number}, {"Цена13", type number}, {"Кол-во14", type number}, {"Цена14", type number}, {"Кол-во15", type number}, {"Цена15", type number}, {"Кол-во16", type number}, {"Цена16", type number}, {"Кол-во17", type number}, {"Цена17", type number}, {"Кол-во18", type number}, {"Цена18", type number}, {"Кол-во19", type number}, {"Кол-во20", type number}, {"Цена19", type number}, {"Цена20", type number}, {"Кол-во21", type number}, {"Цена21", type number}, {"Кол-во22", type number}, {"Цена22", type number}, {"Кол-во23", type number}}),
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",Table.ToList(Настройки))
in
    #"Другие удаленные столбцы"
[/vba]
И напарываюсь на ошибку типа Столбец "Цена,да" таблицы не найден. Лист Настройки в запросах работает только как поключение
Подскажите пожалуйста в чем моя ошибка. Благодарю!

Автор - npbzemlya
Дата добавления - 18.01.2021 в 09:41
прохожий2019 Дата: Понедельник, 18.01.2021, 11:21 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    f=(x)=>if x="Номенклатура" then Text.Type else Number.Type,
    lst = List.Transform(Table.ColumnNames(from),(x)=>{x,f(x)}),
    tbl = Table.TransformColumnTypes(from,lst),
    to = Table.SelectColumns(tbl,Table.ToList(Настройки))
in
    to
[/vba] или прописать тип в таблице "Настройки", но вы ее не показали в файле, тогда было бы как-то так
[vba]
Код
let
    f=(x)=> Excel.CurrentWorkbook(){[Name=x]}[Content],
    from = f("База"),
    dict = f("Настройки"),
    lst = dict[наименование],
    lst1 = List.Zip({lst,List.Transform(dict[тип],(x)=>Expression.Evaluate(x,#shared))}),
    tbl = Table.TransformColumnTypes(from,lst1),
    to = Table.SelectColumns(tbl,lst)
in
    to
[/vba]


Сообщение отредактировал прохожий2019 - Понедельник, 18.01.2021, 12:05
 
Ответить
Сообщение[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    f=(x)=>if x="Номенклатура" then Text.Type else Number.Type,
    lst = List.Transform(Table.ColumnNames(from),(x)=>{x,f(x)}),
    tbl = Table.TransformColumnTypes(from,lst),
    to = Table.SelectColumns(tbl,Table.ToList(Настройки))
in
    to
[/vba] или прописать тип в таблице "Настройки", но вы ее не показали в файле, тогда было бы как-то так
[vba]
Код
let
    f=(x)=> Excel.CurrentWorkbook(){[Name=x]}[Content],
    from = f("База"),
    dict = f("Настройки"),
    lst = dict[наименование],
    lst1 = List.Zip({lst,List.Transform(dict[тип],(x)=>Expression.Evaluate(x,#shared))}),
    tbl = Table.TransformColumnTypes(from,lst1),
    to = Table.SelectColumns(tbl,lst)
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 18.01.2021 в 11:21
npbzemlya Дата: Пятница, 22.01.2021, 08:23 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Цитата прохожий2019, 18.01.2021 в 11:21, в сообщении № 2 ()
прописать тип в таблице "Настройки", но вы ее не показали в файле, тогда было бы как-то так

Получился такой код
[vba]
Код
let
    f=(x)=> Excel.CurrentWorkbook(){[Name=x]}[Content],
    from = f("zakaz_ASM"),
    dict = f("Настройки"),
    lst = dict[Столбцы],
    lst1 = List.Zip({lst,List.Transform(dict[Столбцы],(x)=>Expression.Evaluate(x,#shared))}),
    tbl = Table.TransformColumnTypes(from,lst1),
    to = Table.SelectColumns(tbl,lst)
in
    to
[/vba]
Но на шаге tbl выдает ошибку приложил скрин имена определены правильно, но по какой-то причине он их не видит
Приложил изображение структуры запроса Настройки
К сообщению приложен файл: 6372593.png (47.0 Kb) · 0657400.png (64.7 Kb)


Сообщение отредактировал npbzemlya - Пятница, 22.01.2021, 08:35
 
Ответить
Сообщение
Цитата прохожий2019, 18.01.2021 в 11:21, в сообщении № 2 ()
прописать тип в таблице "Настройки", но вы ее не показали в файле, тогда было бы как-то так

Получился такой код
[vba]
Код
let
    f=(x)=> Excel.CurrentWorkbook(){[Name=x]}[Content],
    from = f("zakaz_ASM"),
    dict = f("Настройки"),
    lst = dict[Столбцы],
    lst1 = List.Zip({lst,List.Transform(dict[Столбцы],(x)=>Expression.Evaluate(x,#shared))}),
    tbl = Table.TransformColumnTypes(from,lst1),
    to = Table.SelectColumns(tbl,lst)
in
    to
[/vba]
Но на шаге tbl выдает ошибку приложил скрин имена определены правильно, но по какой-то причине он их не видит
Приложил изображение структуры запроса Настройки

Автор - npbzemlya
Дата добавления - 22.01.2021 в 08:23
прохожий2019 Дата: Пятница, 22.01.2021, 10:04 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
приложил скрин

Приложил изображение

Цитата прохожий2019, 18.01.2021 в 11:21, в сообщении № 2 ()
но вы ее не показали в файле
 
Ответить
Сообщение
приложил скрин

Приложил изображение

Цитата прохожий2019, 18.01.2021 в 11:21, в сообщении № 2 ()
но вы ее не показали в файле

Автор - прохожий2019
Дата добавления - 22.01.2021 в 10:04
npbzemlya Дата: Пятница, 22.01.2021, 10:11 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Цитата прохожий2019, 22.01.2021 в 10:04, в сообщении № 4 ()
но вы ее не показали в файле

Извиняюсь, теперь приложил таблицу настройки и таблицу исходник из которой надо забрать нужные столбцы
К сообщению приложен файл: 2358397.png (71.2 Kb) · 2416941.png (189.8 Kb)
 
Ответить
Сообщение
Цитата прохожий2019, 22.01.2021 в 10:04, в сообщении № 4 ()
но вы ее не показали в файле

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

Автор - npbzemlya
Дата добавления - 22.01.2021 в 10:11
anvg Дата: Пятница, 22.01.2021, 10:32 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
К сообщению приложен файл: 2358397.png(71.2 Kb) · 2416941.png(189.8 Kb)
Забавно о
Цитата прохожий2019, 22.01.2021 в 10:04, в сообщении № 4 ()
но вы ее не показали в файле

Михаилу тоже нужно код картинками прикладывать? Или вы думаете код без тестирования влёт пишется?
 
Ответить
Сообщение
К сообщению приложен файл: 2358397.png(71.2 Kb) · 2416941.png(189.8 Kb)
Забавно о
Цитата прохожий2019, 22.01.2021 в 10:04, в сообщении № 4 ()
но вы ее не показали в файле

Михаилу тоже нужно код картинками прикладывать? Или вы думаете код без тестирования влёт пишется?

Автор - anvg
Дата добавления - 22.01.2021 в 10:32
npbzemlya Дата: Пятница, 22.01.2021, 10:36 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Или вы думаете код без тестирования влёт пишется?

У меня пример без запросов только возможно скинуть, иначе объем файла превышает разрешенный
 
Ответить
Сообщение
Или вы думаете код без тестирования влёт пишется?

У меня пример без запросов только возможно скинуть, иначе объем файла превышает разрешенный

Автор - npbzemlya
Дата добавления - 22.01.2021 в 10:36
npbzemlya Дата: Пятница, 22.01.2021, 10:42 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Вот если только в таком виде получился пример
К сообщению приложен файл: 9276895.xlsx (16.7 Kb)
 
Ответить
СообщениеВот если только в таком виде получился пример

Автор - npbzemlya
Дата добавления - 22.01.2021 в 10:42
прохожий2019 Дата: Пятница, 22.01.2021, 11:01 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
[vba]
Код
let
    f=(x)=> Excel.CurrentWorkbook(){[Name=x]}[Content],
    g=(x)=>if x="Номенклатура" then Text.Type else Number.Type,
    
    from = f("Заказ"),
    dict =  Table.SelectRows(f("Столбцы"), each [Выгружать] = "да")[Столбцы],
    lst = List.Transform(dict,(x)=>{x,g(x)}),
    tbl = Table.TransformColumnTypes(from,lst),
    to = Table.SelectColumns(tbl,dict)
in
    to
[/vba]
К сообщению приложен файл: 4016243.xlsx (24.5 Kb)
 
Ответить
Сообщение[vba]
Код
let
    f=(x)=> Excel.CurrentWorkbook(){[Name=x]}[Content],
    g=(x)=>if x="Номенклатура" then Text.Type else Number.Type,
    
    from = f("Заказ"),
    dict =  Table.SelectRows(f("Столбцы"), each [Выгружать] = "да")[Столбцы],
    lst = List.Transform(dict,(x)=>{x,g(x)}),
    tbl = Table.TransformColumnTypes(from,lst),
    to = Table.SelectColumns(tbl,dict)
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 22.01.2021 в 11:01
npbzemlya Дата: Пятница, 22.01.2021, 11:33 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Отлично, все работает.
 
Ответить
СообщениеОтлично, все работает.

Автор - npbzemlya
Дата добавления - 22.01.2021 в 11:33
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Power Qeury динамический отбор столбцов (Microsoft Query)
  • Страница 1 из 1
  • 1
Поиск:

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