Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Объединение таблиц по условию., Необходимо подклеить либо одну таблицу, либо другую исходя из условия.
 
Добрый день!

Очень нужна помощь в роде как довольно-таки простой задачи для PQ.

Есть вводные данные, имена, регион и сумма. Необходимо добавить к этой таблице "Возраст". Он есть по именам, а если имени нет в таблице нужно взять средний по регионам.

В столбце "Наличие" показано есть имя в списке или нет.

Пробовал через if [Наличие] = "Да" then Table.NestedJoin с именами, а if [Наличие] = "Нет" then Table.NestedJoin по региону. Но почему-то не получается, подклеивает несколько таблиц в одной строке.
Индекс для уникальных значений в PQ, Необходимо добавить столбец счёта, присвоить уникальный номер имени.
 
Цитата
написал:
Не вариант одним запросом формировать список имён с уникальным номером, а вторым просто цеплять номер?
Нет, так как есть столбец , который определяет сценарий.  И имя может быть изменено...
Индекс для уникальных значений в PQ, Необходимо добавить столбец счёта, присвоить уникальный номер имени.
 
Добрый день, помогите решить задачу в PQ
Необходимо добавить столбец счёта, присвоить уникальный номер имени. При этом если имя повторяется должен стоять тот же номер, что и в первый раз напротив такого же имени.

Пример прикрепляю.

Заранее спасибо.
Создание столбцов по условию
 
Видимо, я не совсем корректно объяснил. Посмотрите , пожалуйста. Вот по- первому клиенту два развития событий, базовый и максимальный сценарий, если так, то должно быть две строки (базовый сценарий и ход развития и максимальный). В данном случае в базовом лишь одно мероприятие, в максимальном два.
Возможно ли так ? или лучше сделать две разные таблицы ? \

Большое спасибо за помощь.
Создание столбцов по условию
 
Цитата
написал:
добрый
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8      let          Source = Excel.CurrentWorkbook(){[Name=  "Таблица1"  ]}[Content],          a = Table.Group(Source,   "Клиент"  , {  "q"  , (x)=>           [a = Table.AddColumn(x,   "q"  , (x)=> List.RemoveFirstN(Record.ToList(x), 2))[q],          b = Table.FromList({{x[Клиент]{0}} & List.Combine(a)}, (x)=>x)][b]}),          b = Table.Combine(a[q])    in          b   
 
Подскажите, а можно добавить столбец "Номер" к клеинту? Нужна группировка просто по двум сценариям, не понимаю как учесть это в этой строке :
b = Table.FromList({{x[Клиент]{0}} & List.Combine(a)}, (x)=>x)][b]}),  
Создание столбцов по условию
 
Цитата
написал:
добрый
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8      let          Source = Excel.CurrentWorkbook(){[Name=  "Таблица1"  ]}[Content],          a = Table.Group(Source,   "Клиент"  , {  "q"  , (x)=>           [a = Table.AddColumn(x,   "q"  , (x)=> List.RemoveFirstN(Record.ToList(x), 2))[q],          b = Table.FromList({{x[Клиент]{0}} & List.Combine(a)}, (x)=>x)][b]}),          b = Table.Combine(a[q])    in          b   
 
Огромное человеческое ВАМ спасибо !
Создание столбцов по условию
 
Добрый день! Подскажите, позволяет ли Power Query делать кол-во столбцов исходя из повторяющихся значений у одного клиента?

То есть если было два событие, должно появится 2 столбца м1 и м2, если было 3 события - 3 столбца, м1, м2, м3
Может быть как-то через префикс и подсчёт значений в столбце...

Пример прилагаю.  
Заполнение вниз по категории Power Query
 
Цитата
написал:
Table.Combine(Table.Group(#"Измененный тип", "Номер", {"tmp", each Table.FillDown(_, {"Прибыль"})})[tmp])
Большое спасибо ! Всё идеально
Заполнение вниз по категории Power Query
 
Добрый день! Столкнулся , думаю, с весьма популярной задачей, однако на просторах интернета не удалось найти нужное решение.

Необходимо силами Power Query заполнить столбец вниз по категории. Есть клиент, по которому в один год начинается доход, нужно, чтобы дальше ниже по всем годам доход заполнился, однако, если в строках клиент поменялся заполнение остановилось.

Пример прилагаю. Спасибо!
Как использовать свертывания столбцов с условием ?
 
Почему-то случайно опубликовалась неполная версия
Вопрос вот : https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=153690&...
Как использовать свертывания столбцов с условием ?, Создание проверочной таблице исходя из карты по годам.
 
Добрый день! Подскажите , пожалуйста, есть карта событий по разным клиентам, которая удобна в использовании. Для проверки нужно сделать таблицу, которая на листе "цель". Суть в том, что одна строка - один клиент, и информация по первому событию, если есть по второму, если есть по третьему. Если информации нет - просто пустые значения.

Пример прилагаю.

Возможно ли решить данную задачу в Power Query?  
Как использовать свертывания столбцов с условием ?
 
Добрый день! Подскажите , пожалуйста, Возможно ли решить данную задачу в Power Query?  
Индексация по условию
 
А возможно это как-то реализовать в Power Query?
Индексация по условию
 
Добрый день!

Подскажите, пожалуйста, как сделать индексацию у клиентов без учёта сценария в Power Query? То есть есть клиент, по нему есть два вариант развития (базовый и максимальный сценарий), необходимо добавить столбец с номером . То есть, если по клиенту две строки (базовый и максимальный сценарий), то номер должен дублироваться на две строки, а если клиент участвует только в одном сценарии, то только один раз. Получается индексация с учётом кол-во повторений в столбце.

Пример прилагаю.
Изменено: Дмитрий Дайрумов - 21.11.2022 10:52:45
Оптимизация кода, Необходимо оптимизировать код
 
Добрый день! Подскажите, пожалуйста, как можно ускорить два взаимосвязанных кода. Возможно, есть какие-то хитрые источники оптимизации. Источники - ссылка на запрос, там Table.Buffer в конце сделан. Кол-во строк в эксель файле (источнике) 107.000. , вес файла 20мб. Сейчас обновляются запросы весьма долго.

Код 1:
Код
let

    Источник = #"подключение к файлу",

    #"Строки с примененным
фильтром" = Table.SelectRows(Источник, each List.Contains(Список,
[#"Номер"])),

    #"Переупорядоченные столбцы" =
Table.ReorderColumns(#"Строки с примененным фильтром",{"Сценарий",
"Номер", "Адрес", "Кластер",
"Регион", "Отделение", "Сегмент", "Год", "Событие", "Значение", "Значение2", "Дни"}),

    #"Удаленные столбцы" =
Table.RemoveColumns(#"Переупорядоченные
столбцы",{"Кластер", "Отделение", "Значение2", "Дни"}),

    #"Строки с примененным
фильтром1" = Table.SelectRows(#"Удаленные столбцы", each [Год]
>= 2022 ),

    #"Несвернутые столбцы" =
Table.UnpivotOtherColumns(#"Строки с примененным фильтром1",
{"Сценарий", "Номер", "Адрес",
"Регион", "Сегмент", "Год"}, "Атрибут", "Значение"),

    #"Объединенные запросы" =
Table.NestedJoin(#"Несвернутые
столбцы",{"Атрибут"},Сорт,{"Ячйека"},"Сорт",JoinKind.LeftOuter),

    #"Развернутый элемент Сорт" =
Table.ExpandTableColumn(#"Объединенные запросы", "Сорт",
{"Номер"}, {"Номер"}),

    #"Сортированные строки" =
Table.Sort(#"Развернутый элемент Сорт",{{"Номер",
Order.Ascending}, {"Год", Order.Ascending}}),

    #"Объединенные столбцы" =
Table.CombineColumns(Table.TransformColumnTypes(#"Сортированные
строки", {{"Год", type text}},
"ru-RU"),{"Год", "Атрибут"},Combiner.CombineTextByDelimiter("
", QuoteStyle.None),"Сведено"),

    #"Удаленные столбцы1" =
Table.RemoveColumns(#"Объединенные столбцы",{"Номер"}),

    #"Сведенный столбец" =
Table.Pivot(#"Удаленные столбцы1", List.Distinct(#"Удаленные
столбцы1"[Сведено]), "Сведено", "Значение"),


in

    #"Сведенный столбец"


Может быть общую логику оптимизации подскажите...
Код
let

    Источник = #"подключение к файлу",

 

// Выбирается отчётный год 

    #"Строки с примененным
фильтром" = Table.SelectRows(Источник, each [Год] > 2022),

    #"Другие удаленные столбцы" =
Table.SelectColumns(#"Строки с примененным фильтром",{"Номер", "Сценарий", "Год", "Событие"}),

 

//Замена 

    #"Замененное значение" =
Table.ReplaceValue(#"Другие удаленные
столбцы",null,"-",Replacer.ReplaceValue,{"Событие"}),

 

// Мэппинг событий

    #"Объединенные запросы1" =
Table.NestedJoin(#"Замененное
значение",{"События"},мэпСобытий,{"События"},"мэпСобытий",JoinKind.LeftOuter),

    #"Развернутый элемент
мэпСобытий" = Table.ExpandTableColumn(#"Объединенные
запросы1", "мэпСобытий", {"Признак новой"}, {"Признак новой"}),

 

// Фильтр на новых 

    #"Строки с примененным
фильтром1" = Table.SelectRows(#"Развернутый элемент
мэпСобытий", each ([Признак новой] = "да")),

    #"Удаленные столбцы" =
Table.RemoveColumns(#"Строки с примененным
фильтром1",{"События", "Год", "Признак новой", "Сценарий"}),

 

// ОСоединение

    #"Добавленный запрос" =
Table.Combine({#"Удаленные столбцы", #"Объекты на конец
отчетного периода"}),

    #"Другие удаленные столбцы1" =
Table.SelectColumns(#"Добавленный запрос",{"Номер"}),

 

// Удаление дубликатов (двух сценариев)

 

    #"Удаленные дубликаты" =
Table.Distinct(#"Другие удаленные столбцы1"),

    #"Номер" =
#"Удаленные дубликаты"[#"Номер"],

 

// Преобразование в список

    #"Обращенный список" =
List.Reverse(#"Номер")

in

    #"Обращенный список"


Буду крайне признателен всем откликнувшимся экспертом, заранее огромное спасибо!
Обновление некоторых данных, если по ним вышло обновление через PowerQuery, Необходимо сравнить две таблицы, исходную и обновленную, если обновлённая таблица содержит изменения, взять их, если нет, оставить прежнюю.
 
Спасибо большое вам, то, что нужно!
Единственное осталась последняя проблема, если изменения приходят по разным категориям, то получается null у некоторых клиентов вместо прошлых данных. Возможно ли это как-то решить?

Заранее спасибо !!!

Пример также прилагаю
Обновление некоторых данных, если по ним вышло обновление через PowerQuery, Необходимо сравнить две таблицы, исходную и обновленную, если обновлённая таблица содержит изменения, взять их, если нет, оставить прежнюю.
 
Спасибо! А подскажите, пожалуйста, если в корректировках будут лишь те строки, которые нужно обновить, а все остальные собственно надо оставить как есть, как тогда быть? Пример прилагаю, текущий код выдаёт ошибки
Обновление некоторых данных, если по ним вышло обновление через PowerQuery, Необходимо сравнить две таблицы, исходную и обновленную, если обновлённая таблица содержит изменения, взять их, если нет, оставить прежнюю.
 
Нет возможности обновить запрос. Есть выгрузка из запроса, раз в год. И потом выходят разные корректировки. Необходимо, чтобы одна строка заменялась другой. (то есть если появились новые данные - заменить строку, если нет - остается прежняя).

Пробую через фильтрацию и объединение , но пока как-то не получается
Изменено: Дмитрий Дайрумов - 07.11.2022 12:53:42
Обновление некоторых данных, если по ним вышло обновление через PowerQuery, Необходимо сравнить две таблицы, исходную и обновленную, если обновлённая таблица содержит изменения, взять их, если нет, оставить прежнюю.
 
Добрый день! Подскажите, пожалуйста, как обновить данные, если по ним вдруг вышло обновление? То есть , 1) необходимо проверить, нет ли обновления по  данным, 2) если какие-то строки обновились, необходимо прежние данные заменить на актуальные, а если нет, то старые обязательно оставить в прежнем виде. Пример файла прилагаю. На первом листе - выгрузка данных. Через какое-то время пришло обновление по прежним данным (абсолютно рандомные изменения могут быть), вопрос: как прописать таким образом, чтобы PQ проверял обновления по всем строкам.

Заранее спасибо!
Перемножение таблиц в Power Query
 
С кодом вообще почти не работал, с Power Query все делал в основном через банальные выборы, "руками", настраиваемый столбец, группировки и тд

Я так понимаю, что для сложения можно использовать List.Sum ?  с вычитанием и делением уже так не получится ?
Огромное вам спасибо за содействие, правда!
Перемножение таблиц в Power Query
 
Цитата
написал:
Вы вообще код не понимаете?  С этим не должно быть сложностей.
Понимаю всё кроме того, где определяется действие. Буду вам очень благодарен, если расскажете "как для особо одаренных")
Перемножение таблиц в Power Query
 
Не сочтите за наглость, но подскажите, в какой корректно строки кода определяется действие, будь то умножение, сложение, деление...
Заранее спасибо!
Перемножение таблиц в Power Query
 
Спасибо! А подскажите пожалуйста, возможно ли это сделать через параметр и функцию?
И если заменять умножение сложением, как поменяется код? Заранее спасибо
Перемножение таблиц в Power Query
 
Нет, нужна третья таблица 100х100.
То есть, есть
1 2
2 4
и
3 2
3 5
Нужно получить: (перемножение)
34
6 20
Перемножение таблиц в Power Query
 
Здравствуйте!
Подскажите пожалуйста, есть две таблицы (100х100). В каждой ячейке число. Как с помощью Power Query (именно его) сделать слияние в третью таблицу, чтобы все числа перемножились. Заранее спасибо!
Страницы: 1
Наверх