Страницы: 1
RSS
Присвоить номер или название промежутку в неделю
 
Добрый день. Подскажите формулу для Power BI или строку запроса для SQL или Power query.
Суть заключается в том, что каждый промежуток в неделю нужно как-то индексировать или присваивать номер недели.
Например
Дата
04.07.2020 12;00;00 по 11.07.2020 11:59:00  - первый промежуток
11.07.2020 12:00:00 по 18.07.2020 11:59:00 - второй промежуток
18.07.2020 12:00:00 по 25.07.2020 11:59:00 - третий промежуток
и т.д.
Изменено: bereteli - 14.07.2020 09:27:35
 
Здравствуйте
Код
Date.WeekOfYear(Дата-#duration(0,12,0,0),Day.Saturday))
 
Андрей Лящук, это покажет номер недели в году, верно? Мне такое не подходит
 
Доброе время суток
Цитата
bereteli написал:
Мне такое не подходит
чем? Условие
Цитата
bereteli написал:
присваивать номер недели
выполнено.
Если есть что-то ещё, то не стесняйтесь, сообщите. Рано вам пока бросать только
Цитата
bereteli написал:
не подходит
Или вы уже начальник, и всё должны предугадывать? :)
 
Андрей VG, Я не в коем случаи не хотел никого обидеть или задеть. Просто говорю о том, что мне нужен не номер недели года. А присвоить конкретно моим промежуткам номер или название. Мне хотелось бы самому назначить промежуток и что бы по нему шел счет.  
 
bereteli, в примере бы показали что есть и что надо получить
 
Михаил Л, в шапку добавил
 
Шар включен.

Я вижу, что ТСу нужно в левую таблицу подтащить данные из правой таблицы.
Шар выключен.
Я угадал?
Вот горшок пустой, он предмет простой...
 
PooHkrd, Верно. Но это если в рамках экселя подтягивать. А хотелось бы используя базу данных через sql или query или через dax. При этом таблица 2 пока не существует, она как визаул - показывает шаг промежутка (7 дней).  
 
Цитата
bereteli написал:
При этом таблица 2 пока не существует
Цитата
- Ты суслика видишь?
- Нет.
- А он есть!
Через SQL этот немножко не тот форум, через PQ можно подтянуть относительно быстрым алгоритмом типа интервального просмотра при помощи ВПР по отсортированному массиву. Можно и в DAX фильтрами поиграться.
От вас осталось только определиться с вашими хотелками, и с тем что у вас есть и чего нет. А то нет желания тратить время, а потом узнать что делал то чего нет.
Вот горшок пустой, он предмет простой...
 
PooHkrd, Понимаю, что опять неверно изложил свою просьбу о помощи. Обе таблицы существуют и я привел их в примере. Это обе выходные таблицы. Как верно создать столбец с индексом. Имея таблицу 1 с продажами и таблицу 2 справочник с указанием промежутков и их названиями.  
 
bereteli, А каким образом 12.06.2020 12:50 попадает во второй период :qstn:  Если
диапазон второго периода 13.06.2020 12:00 -19.06.2020 11:59 и указанное значение в него не попадает. Вы бы всё же чётче бы описывали условия.
 
Андрей VG, он в первом посте нормально все указал, а в примере накосячил с периодами.
Вот вариант в PQ:
Скрытый текст
Изменено: PooHkrd - 14.07.2020 10:56:12
Вот горшок пустой, он предмет простой...
 
Еще вариант
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
   Custom1= Table.Join(Source,{},Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],{}),
    Flt = Table.SelectRows(Custom1, each [Дата] >= [#"Дата начала"] and [Дата] <= [#"Дата конца"]),
    Mrg = Table.NestedJoin(Source,{"Дата"},Flt,{"Дата"},"Flt",JoinKind.LeftOuter),
    Exp = Table.ExpandTableColumn(Mrg, "Flt", {"Альтернативное название"})
in
    Exp
 
Цитата
PooHkrd написал:
а в примере накосячил с периодами.
Ну, тут согласен, и так сойдёт - это уже почти девиз вопрошающих, типа я же принцип демонстрирую, чего утруждаться над его верностью.  :)
Только, Алексей, не проще ли решать эту задачу, как определение номера интервала для построения гистограммы с фиксированным шагом? Есть некоторая начальная дата и от неё с заданным шагом задаются интервалы. Тогда, текущая дата минус начальная, всё это делённое на ширину интервала и округлённое вниз плюс 1 и даст сквозную нумерацию дат.
 
Андрей VG, согласен что банальная арифметика здесь будет быстрее :D
Я как всегда в плену своих щаблонов. Блин, вот прямо завидую вашей смекалке. Опыт большое дело.
Как говорилось в одном веселом фильме:
Цитата
"Самая лучшая школа - это старая школа! И я в ней , %№!, директор!"
Вот горшок пустой, он предмет простой...
 
Ребята, всем спасибо огромное за внимание. Еще раз спасибо, что не бросили в сложную минуту, и еще раз извиняюсь, что как обычно накосячил с постановкой вопроса.
Нашел свое более просто решение для себя, т.к. в PQ не так шарю.
Решение в sql
Код
DATEDIFF(mi, '2019-05-02 12:00:00', m.DocTime)/10079+1 AS per
Решение в dax
Код
Период = INT(DATEDIFF(DATEVALUE("02.05.2020")+TIME(12,00,00),[DocTime],MINUTE)/10079+1)
или
Код
Период = INT(DATEDIFF(DATE(2020,5,2)+TIME(12,00,00),[DocTime],MINUTE)/10079+1)

Возможно кому-то пригодится.
Изменено: bereteli - 14.07.2020 12:46:44
Страницы: 1
Наверх