2016-09-26 76 views
1

有沒有辦法根據條件填寫表格?功率查詢Table.FillDown條件

下面我的表格的示例。我想根據合同列填寫日期列。例如,如果合同不以GB開頭,則填寫前一行的日期,否則留空。

Contract Date  Role 
01F001  3/7/2016  A 
01F017  5/6/2016  A 
GB0007     B 
GB0007     B 
LBCA09  2/29/2016 A 
LBCA09     B 
LBCA09     B 
LBCA09     B 
LBCA12  2/25/2016 A 
LBCA12     B 

下面是最終的數據我想

Contract Date Role 
01F001 3/7/2016 A 
01F017 5/6/2016 A 
GB0007    B 
GB0007    B 
LBCA09 2/29/2016 A 
LBCA09 2/29/2016 B 
LBCA09 2/29/2016 B 
LBCA09 2/29/2016 B 
LBCA12 2/25/2016 A 
LBCA12 2/25/2016 B 

我試圖添加Table.Filldown功能之外的if語句卻得到了一個語法錯誤。

= if not Text.StartsWith([Contract],"GB") then Table.FillDown(#"Replaced Value",{"Date"}) 

任何幫助表示讚賞!

回答

3

您可以通過多個步驟完成此操作。

  • 向下填充「日期」欄
  • 添加基於不與「國標」開始,抓住從「日期」
  • 刪除「日期」一欄
  • 重命名「自定義」列中的值的條件列到「日期」
0

您可以使用Table.Partition。這種修改適用於更復雜的情況。

MyFunc = (_) => if Text.StartsWith(_, "GB") then 1 else 0, 
Partitioned = Table.Partition(YourTable, "Contract", 2, each MyFunc(_)), 
DownFilled = Table.FillDown(Partitioned{0}, {"Date"}), 
Result = Table.Combine({DownFilled, Partitioned{1}})