我用含有以下一列5個字段的表在specfic順序排序:使用PowerQuery
中 高 低
如果我按升序排列的數據按字母順序排序:
高 低 中
在高級編輯器如何更改在PowerQuery的代碼,以便它像排序下面:
高 中 低
我現在在編輯器中的語法是這樣的:
Table.Sort(# 「過濾後的行」,{{ 「評級」,Order.Ascending}} )
我用含有以下一列5個字段的表在specfic順序排序:使用PowerQuery
中 高 低
如果我按升序排列的數據按字母順序排序:
高 低 中
在高級編輯器如何更改在PowerQuery的代碼,以便它像排序下面:
高 中 低
我現在在編輯器中的語法是這樣的:
Table.Sort(# 「過濾後的行」,{{ 「評級」,Order.Ascending}} )
或者,你可以利用Table.Sort的comparisonCriteria參數的全部實力:
= Table.Sort(# 「過濾後的行」,(X,Y)=> Value.Compare (List.PositionOf({ 「低」, 「中」, 「高」},X [評價]),List.PositionOf({ 「低」, 「中」, 「高」},Y [評價])))
編輯:這就像Order.Ascending(低,中,高),但 - 重讀你的問題 - 我看到你正在尋找的高,中,低:這樣你就可以切換「低」和代碼中的「高」(2x)。
EDIT2:另一個很酷的技巧是要離開原來的順序和-1從Value.Compare繁衍的結果扭轉排序順序:
= Table.Sort(#"Filtered Rows", (x,y) => -1 * Value.Compare(List.PositionOf({"Low","Medium","High"},x[Rating]),List.PositionOf({"Low","Medium","High"},y[Rating])))
您可以使用下面的表達式添加新Order
列表:
= Table.AddColumn(#"Changed Type", "Order", each if [Rating] = "High" then "1" else if [Rating] = "Medium" then "2" else "3")
然後喲你只需要升序排列Order
列。
讓我知道這是否有幫助。
大,這個作品真的很好。謝謝。 – Dinks123