2016-07-13 4 views
0

Надеюсь, вы можете помочь, я схожу с ума! Я использую PowerQuery 2013, и я новичок в этом.Power Query conditional max min date

Вот пример моих данных: need to remove yellow rows

Борясь с этой задачей: нужно обрезать даты в мощности запросе, на уровне рынка, чтобы включить только перекрывающий диапазон дат. (не может просто удалять строки с нулями - это нормально, чтобы иметь нули внутри диапазона данных)

Я нашел несколько статей, чтобы использовать функции, но я просто недостаточно хорош, чтобы приспособить их к моей ситуации.

Я пытался создать функцию (называемый MaxDate), а затем создать столбец в моих данных вызывающего эту функцию:

функция MaxDate запрос:

(table as table, mkt as text) => Table.Max(Table.SelectRows(table, [Market]=mkt))[Date] 

Вызов функции в новой колонке:

= Table.AddColumn(Sales, "GetMaxDate", each MaxDate(Sales, [Market])[Date]) 

Это возвращает «Ошибка», и я не могу ее разрешить. Я собирался генерировать столбцы даты min/max, а затем отфильтровывать даты, которые выходили за пределы в качестве окончательного вывода.

Пожалуйста, помогите!

Благодаря Lana

ответ

0

Попробуйте изменить синтаксис, как это:

(table as table, mkt as text) => Table.Max(Table.SelectRows(table, each [Market]=mkt), "Date") 
+0

Это сработало !!!!!!!!!!!!! Благодаря!!!! :-) Только одна причуда, она возвращает столбец с «записью», который затем мне нужно развернуть, чтобы выбрать столбец «Дата» (немного похожая на объединенную таблицу). Есть ли способ вернуть только значение даты, а не всю строку? –

+0

Да, просто добавьте: [Дата] {0} в конец - он будет искать значение первой строки в столбце [Дата]: (таблица как таблица, mkt в виде текста) => Таблица.Max (Таблица.SelectRows (таблица , каждый [Market] = mkt), «Date») [Date] {0} – ImkeF

0

OK Принимать 2 ...

Я думаю, вы можете быть усложнять его. С данными в указанной вами форме я бы начал новый запрос, ссылаясь на этот набор данных. Я бы тогда Group By [Market] и заполнил Max и Min [Date]. Я бы установил, что Query to Load To = Only Create Connection.

Тогда я бы начал новый запрос со ссылкой на исходный набор данных. Я бы использовал Merge, чтобы присоединиться к Max-Min Query, только что созданному, присоединившись к [Market]. Затем я бы добавил поле «Вычисленный фильтр», например.

if [Date] = [Min Date] or [Date] = [Max Date]

Наконец, я бы фильтровать по добавляемого столбца - сохраняя значения FALSE.

+0

спасибо, но это будет устранение строк с нулем внутри временной шкалы, и мне нужно отключить только «концы». –

+0

OK Я не понял этого требования. Я переписал свой ответ. –

+0

Майк, я пробовал это, мне нужно много времени, поскольку мне нужно сделать это с помощью двух больших источников данных. Требуется примерно то же время, чтобы сделать это с помощью функции, но проще реализовать, поэтому я выбрал ответ ImkeF. Я благодарен за идеи! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^