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

Страницы: 1
Expression.Evaluate - Power Query, Пояснить работу Expression.Evaluate в Power Query
 
В последнее время на сайтах (https://www.thebiccountant.com/2016/03/08/select-rows-that-have-no-empty-fields-using-expression-eva..., https://bondarenkoivan.wordpress.com/2016/01/25/rename-columns-of-nested-tables-in-power-query/, https://blog.crossjoin.co.uk/2015/02/06/expression-evaluate-in-power-querym/) описывают функцию Expression.Evaluate. Не могу понять её смысл и применение в Power Query. Можете пояснить зачем эта функция и где её применять?
DAX. Главная и подчинённая таблица. Создать меру., Не работает мера с подчиненной таблицы при создании сводной таблицы
 
Есть таблица факт и справочник. В таблице факт Содержание рассчитываются как Металл / Добычу и * 1000. Меры и пример (во вложении) представлены ниже:
Код
1. Металл, кг (план):=CALCULATE ( SUM ( 'ТаблицаФакт'[План] ); 'ТаблицаФакт'[Показатель, ед. изм.] = "Металл, кг" )
2. Добыча, т (план):=CALCULATE ( SUM ( 'ТаблицаФакт'[План] ); 'ТаблицаФакт'[Показатель, ед. изм.] = "Добыча руды, т")
3. Содержание, г/т (план):=DIVIDE ( [Металл, кг (план)]; [Добыча, т (план)]; 0 ) * 1000
4. План (SWITCH):=SWITCH ( IF ( HASONEVALUE ( 'ТаблицаФакт'[Показатель, ед. изм.] ); VALUES ( 'ТаблицаФакт'[Показатель, ед. изм.] ) ); "Содержание, г/т"; [Содержание, г/т (план)]; SUMX (
'ТаблицаФакт'; 'ТаблицаФакт'[План] )
Когда работаешь с таблицей факт или отдельными мерами, данные рассчитывает правильно, т.е. металл 3.5 г/т (и в итогах, во всех сводных таблицах). Если Показатели и Наименование Подразделений добавляю со справочника (хочу спрятать таблицу факт от пользователя), Содержание не считается, в сводной таблице Содержание исчезает.  Если делаем меру через SUM: План (Sum):=SUM( 'ТаблицаФакт'[План] ), итоговые содержания складываются, а нужно рассчитывать, согласно формулы. Так же возникает вопрос, может в модель данных не тянуть Содержание, в связи с тем, что оно рассчитывается и как правильно написать меру, чтобы управлять со справочника.
Преобразовать список с помощью List.Accumulate в PQ, Решение задачи в Power Query с помощью List.Accumulate
 
Есть лист данных (во вложении файл), нужно преобразовать с помощью List.Accumulate, задача решена с помощью List.Generate. Если есть какие-то мысли решения данной задачи ещё другим способами - прошу поделиться идеями?
Преобразовать данные Power Query для сводной таблицы
 
Предложения по быстрому способу преобразования данных (файл во вложении) по блокам (выделены рамкой - столбец "Наименование работ"), убрать всего и итого для работы в Power Pivot и сводной таблицы. С условным столбцом получается громостко и Power Query при большом объёме (таблиц 1600 шт.) зависает.
Изменено: Николай Савенко - 29.11.2019 17:09:38
Power query.Ошибка List.ReplaceMatchingItems при замене на листе
 
Что за ошибка в Power query (приложен файл), и как обойти:
 
Код
Данные = { null, 1, null, null, null, null, 4, null, null, 2, null, 3, null, 4, null, null, 5, null, 10, null, null, null },
СписокЗамен = List.Zip({List.RemoveNulls(Данные), {1..List.NonNullCount(Данные)}}),
Custom2 = List.ReplaceMatchingItems(Данные, СписокЗамен)

Нужно получить (цифры по порядку, не изменяя null):

Код
Результат = { null, 1, null, null, null, null, 2, null, null, 3, null, 4, null, 5, null, null, 6, null, 7, null, null, null }

Ошибка кроется в одинаковых данных (цифра 4) в #"Данные", если поставить другую цифру, то отрабатывает формула - отлично. Нужно искать другой подход замен.
Изменено: Николай Савенко - 18.10.2019 22:47:10
Замена текста с помощью List Generator Power query по условию
 
Возможно ли сделать с помощью List Generator или другой функцией Power query замену текста в столбце "Наименование работ, ед. изм.".
Я реализовал это с добавлением столбца [Индекс] и [Пользовательская], хотелось бы уйти от лишних шагов в Power query. Мысль такая, если содержит "В т.ч.", то нижних четыре строчки, после последнего "В т.ч.", тоже должны быть со словом "В т.ч.". Файл приложен с реализацией добавление столбцов.
Код
#"Условный столбец добавлен" = Table.AddColumn(#"Добавлен индекс", "Пользовательская", each try if Text.Contains([#"Наименование работ, ед. изм."], "В т.ч.") then [#"Наименование работ, ед. изм."]  
                else if Text.Contains(#"Добавлен индекс"[#"Наименование работ, ед. изм."]{[Индекс]-1}, "В т.ч.") then "В т.ч. " & Text.Replace([#"Наименование работ, ед. изм."], Text.Split([#"Наименование работ, ед. изм."]," "){0}, Text.Lower(Text.Split([#"Наименование работ, ед. изм."]," "){0})) 
                else if Text.Contains(#"Добавлен индекс"[#"Наименование работ, ед. изм."]{[Индекс]-2}, "В т.ч.") then "В т.ч. " & Text.Replace([#"Наименование работ, ед. изм."], Text.Split([#"Наименование работ, ед. изм."]," "){0}, Text.Lower(Text.Split([#"Наименование работ, ед. изм."]," "){0}))
                else if Text.Contains(#"Добавлен индекс"[#"Наименование работ, ед. изм."]{[Индекс]-3}, "В т.ч.") then "В т.ч. " & Text.Replace([#"Наименование работ, ед. изм."], Text.Split([#"Наименование работ, ед. изм."]," "){0}, Text.Lower(Text.Split([#"Наименование работ, ед. изм."]," "){0}) )
                else if Text.Contains(#"Добавлен индекс"[#"Наименование работ, ед. изм."]{[Индекс]-4}, "В т.ч.") then "В т.ч. " & Text.Replace([#"Наименование работ, ед. изм."], Text.Split([#"Наименование работ, ед. изм."]," "){0}, Text.Lower(Text.Split([#"Наименование работ, ед. изм."]," "){0}))
                else  [#"Наименование работ, ед. изм."] otherwise [#"Наименование работ, ед. изм."])
Изменено: Николай Савенко - 16.10.2019 13:40:57
Страницы: 1
Наверх