2016-07-13 30 views
0

私はあなたが助けてくれることを願っています。 私はPowerQuery 2013を使用しています。これは初めてのことです。ここでパワークエリ条件付き最大最小日

は私のデータのサンプルです:日付の唯一の重複範囲が含まれるように、市場レベルで、パワークエリで日付をトリミングする必要があります。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]) 

「エラー」が返され、解決できません。 私は、最小/最大の日付列を生成し、最終出力として外になった日付を除外します。

助けてください!

おかげ ラナ

答えて

0

は、このような構文を調整してみてください:

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

それは働いた!!!!!!!!!!!!!ありがとう!!!! :-) 1つだけのquirk、それは私が(マージされたテーブルのようなビット)を選択して、日付の列を選択するために展開する必要がある "レコード"との列を返します。行全体ではなく日付値だけを返す方法はありますか? –

+0

はい、ちょうど最後に[日付] {0}を追加します:[Date]列の最初の行の値を検索します:(テーブルとしてテーブル、mktをテキストとして)=> Table.Max(Table.SelectRows(tableそれぞれの[Market] = mkt)、 "Date")[Date] {0} – ImkeF

0

OK 2 ...

を取る、私はあなたがそれを過度に複雑かもしれないと思います。あなたが指定した形状のデータを使って、そのデータセットを参照する新しいクエリを開始します。私はGroup By [Market]を集計し、[Date]のMaxとMinを集計します。私はそのクエリをロードする=接続の作成のみに設定します。

次に、元のデータセットを参照して新しいクエリを開始します。私はマージを使用して作成したMax/Minクエリに結合し、[Market]に参加します。次に、計算されたフィルタ列を追加します。

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

最後に私が追加された列でフィルタう - FALSEの値を維持します。

+0

ありがとうございますが、これはタイムライン内でヌルの行を削除することになります。 –

+0

OK要件を理解できませんでした。私は私の答えを書き直しました。 –

+0

Mike私はこれを試していました.2つの大きなデータソースでそれを行う必要があるので、年齢がかかります。関数を使って実行するのとほぼ同じ時間がかかりますが、実装が簡単ですから、ImkeFの答えを選択しました。私はアイデアに感謝しています! :) –

関連する問題