2016-07-19 35 views
0

我想計算功率查詢WEEKNUM [當前行]德爾塔周柱 - WEEKNUM [上一行]差Vs上一行與DistinctCount

我找到了一種方法使用[索引]列這樣做,但這是痛苦的緩慢,我的桌子是100K行。

let 
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content], 
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", type text}, {"Product", type text}, {"WeekNum", Int64.Type}}), 

#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1), 
#"Added Custom" = Table.AddColumn(#"Added Index", "Delta Weeks", each try Source[WeekNum]{[Index]} - Source[WeekNum]{[Index]-1} otherwise 0) in #"Added Custom" 

此外,在此之後,我需要另一個列從開始到該行計算不同的值。

大多數星期是連續的,所以基本上時候都沒有重複計數會增加。

(我不知道如何在電源查詢做到這一點)。

enter image description here

回答

0

的try /否則可能會相當緩慢。如果您使用if [Index] > 0 then Source[WeekNumber]{[Index]} - Source[WeekNumber]{[Index] - 1} else 0作爲自定義公式,速度會更快嗎?

0

而不是你試試...否則代碼我會用更多的東西直接,如:

[WeekNumber] - #"Added Index"[WeekNumber]{[Index] - 1}

然後我想補充一個替換錯誤步驟來清理第一行。

1

我相信PQ不是設計用來與前行的環境中工作。

我沒找到工作不是引用使用[索引] -1,創造2索引列(一列開始與前行的好:0,1,2,與0,0,1,2,另外,所以基本上是一個[Index] -1被置於0),然後加入2個表,基本上把前一行放在同一行,如果這是有道理的。

然而,即使這對我來說太慢了,最後我實現了一種不同的方法,並且我簡單地使用了一些VBA代碼,我通過前一行計算差異,然後在PQ中導入表。我認爲這是一種更高效(更快)的方法!