Страницы: 1
RSS
Интервал между датами в Power Query
 
Доброго времени суток. Подскажите пожалуйста, как в Power Query сделать так, чтоб получить список между датами? Имеется таблица с датами, в ней два набора дат. Первый случай, когда есть интервал между датами, то есть от и до (из него надо сделать список), а второй просто перечисление дат. Файл прилагается. Благодарю.
 
Цитата
Slava977 написал:
есть интервал между датами
В этом случае можно с помощью функции List.Dates().
 
Доброе время суток.
Вариант
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    typed = Table.TransformColumnTypes(Source,{{"Дата", type text}}),
    toSingle = List.Combine(List.Transform(typed[Дата], each Text.Split(_, ","))),
    toIntervals = List.Transform(toSingle, (item) =>
    if Text.Contains(item, "-") then
    let
        scope = Text.Split(item, "-"),
        start = Date.From(scope{0}, "ru-RU"),
        finish = Date.From(scope{1}, "ru-ru")
    in
        List.Dates(start, Duration.TotalDays(finish - start) + 1, #duration(1, 0, 0, 0))
    else
        {Date.From(item, "ru-RU")}
    )
in
    List.Combine(toIntervals)
 
Всем привет. Подскажите, как можно реализовать очень похожую задачу? Необходимо преобразовать в список диапазон дат для каждой строки таблицы. В файле во вложении есть таблица "до" и то, что необходимо получить. Не могу додумать, как можно сделать.
 
Борис13, например, так
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Дата Начала", Int64.Type}, {"Дата Окончания", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Дата", each {[Дата Начала]..[Дата Окончания]}),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Дата Начала", "Дата Окончания"}),
    #"Expanded {0}" = Table.ExpandListColumn(#"Removed Columns", "Дата"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded {0}",{{"Дата", type date}})
in
    #"Changed Type1"
 
Михаил Л, ,благодарю!
 
Подскажите, как можно сделать список с шагом в  месяц? Есть начальная дата и количество месяцев.
 
Glutton, можно и такой список слепить.
Код
let
    StartDate = #date(2021,10,06),
    QuantityOfMonths = 17,
    List = List.Transform( {0..QuantityOfMonths - 1}, each Date.AddMonths( StartDate, _ ) )
in
    List
Вот горшок пустой, он предмет простой...
 
PooHkrd, подскажите, создал столбец по аналогии с кодом выше, но вместо фиксированной даты сделал ссылку на колонку с датой (Период с) и получаю ошибку при разворачивании :

Expression.Error: Не удается применить доступ к полям в типе Number.
Сведения:
   Value=0
   Key=Период с

Что не так?
Задача расширить таблицу между интервалами в разрезе года и месяца. С 1.1.21 по 31.12.25 нужно создать 60 строк (12 мес*5 лет)
 
Цитата
mechanix 85 написал:
в разрезе года и месяца
Создать список дат(месяцев, кварталов, лет) на основании даты начала и окончания периода
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо! заработало!
 
mechanix 85, давайте пример. Подозреваю, что пока его сделаете - сами разберетесь.  ;)
Вот горшок пустой, он предмет простой...
 
с примера Дмитрий(The_Prist) Щербаков разобрался. а вот, что навоял я
 
mechanix 85, предпоследний шаг исправьте:
Код
  #"Добавлен пользовательский объект1" = Table.AddColumn (
    #"Добавлен пользовательский объект", 
    "Пользовательская", 
    each List.Transform ( { 0 .. [Кво мес] }, ( x ) => Date.AddMonths ( [Период с], x ) )
  ), 
 
mechanix 85, понятно, в итераторах запутались. Ну, собственно решение предложено от предыдущего оратора.
Осторожнее нужно с вложенными each.
Вот горшок пустой, он предмет простой...
 
PooHkrd, я с ними пока на Вы
 
mechanix 85, читайте отсюда и пяток постов вниз.
Вообще по изучайте эту тему в курилке, там много полезного.
Вот горшок пустой, он предмет простой...
Страницы: 1
Читают тему (гостей: 1)
Наверх