Страницы: 1
RSS
power query - как рассчитать кол-во дней в текущем квартале?
 
Здравствуйте,

Как в power query рассчитать кол-во дней в текущем квартале?
 
Код
let
    t = DateTime.LocalNow(),
    list = List.Dates( #date( Date.Year( t ), 1, 1 ), Number.From( #date( Date.Year( t ), 12, 31 ) - #date( Date.Year( t ), 1, 1 ) ) + 1, Duration.From(1) ),
    count = List.Count( List.Select( list, each Date.IsInCurrentQuarter(_) ) )
in
    count
Вот горшок пустой, он предмет простой...
 
Ох, мать честная. Спасибо.
 
Доброе время суток
Цитата
PooHkrd написал:
Код
Алексей, а не проще ли было воспользоваться Date.StartOfQuarter :qstn:
 
Может так проще будет:
Код
[a=DateTime.LocalNow(),b=Date.EndOfQuarter(a),c=Date.StartOfQuarter(a),d=Int64.From(b-c)][d]
Соблюдение правил форума не освобождает от модераторского произвола
 
Андрей VG, проще конечно. Но это ж надо в справочник было лезть. А мне, как всегда в лом.
buchlotnik, ещё + 1 надо добавить если так считать.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
ещё + 1 надо добавить
а с этого места можно поподробнее? )))
Изменено: buchlotnik - 03.04.2020 22:27:42
Соблюдение правил форума не освобождает от модераторского произвола
 
Вы когда вычитаете из конца квартала его начало то теряется один день - это первое число. Вот если вычитать из первого числа следующего квартала первое число текущего, то получается ровно то что надо.
Просто проверьте
Изменено: PooHkrd - 03.04.2020 22:13:09
Вот горшок пустой, он предмет простой...
 
PooHkrd, а проверить работу запроса? (может и день найдется, если задуматься про DateTime)
Цитата
PooHkrd написал:
Просто проверьте
я-то проверил
Изменено: buchlotnik - 03.04.2020 22:31:51
Соблюдение правил форума не освобождает от модераторского произвола
 
Вообще во 2 квартале всегда 91 день, в 3-м 92, в 4-м 92, а в 1-м 90 или 91, если год високосный. Чего там считать?
F1 творит чудеса
 
Ну в январе всегда 31, в июне 30, а план на дату считать как то надо в двадцати отчетах )
 
Цитата
karnavad01 написал:
считать как то надо
Не сыграет ли злую шутку месяца, скажем, через три DateTime.LocalNow() ?
 
Михаил Л, а в чем подводный камень?
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, я к тому что ТС, возможно, делает расчеты для каждого квартала, а не только для текущего.
Цитата
Михаил Л написал:
Не сыграет ли
вот и уточняю  
 
ну тогда будет
Код
[a=DateTime.From([Столбец с Датой]),b=Date.EndOfQuarter(a),c=Date.StartOfQuarter(a),d=Int64.From(b-c)][d] 
или
Код
[a=[Столбец с ДатойВременем],b=Date.EndOfQuarter(a),c=Date.StartOfQuarter(a),d=Int64.From(b-c)][d]
Изменено: buchlotnik - 04.04.2020 10:07:17
Соблюдение правил форума не освобождает от модераторского произвола
 
karnavad01, я имел ввиду, что просто по номеру расчетного месяца простым if then else решается вопрос.
F1 творит чудеса
Страницы: 1
Наверх