2016-06-24 37 views
1

我正在導入CSV文件(其中有849999行),並且嘗試過濾=tbl.Filter(*table*, "Date", ">"&G11) - 其中G11是日期 - 發生的是它將日期列轉換爲文本,並不會過濾有沒有辦法強制它將該列識別爲日期?我如何將存儲爲文本的日期列轉換爲日期值

我試着用=tbl.CalculateColumn(*table*, "Date", DATEVALUE(), "Date")覆蓋列,但收到以下錯誤:

date convert error

我在想什麼?

回答

1

正如你所說的,它看起來像日期的列正在導入從文件中的文本,使用>將無法工作,因爲值實際上是文本,即使它看起來像一個日期,以便過濾。

將文本轉換爲日期,你可以使用DATEVALUE()函數,但它需要傳遞給tbl.CalculateColumn()作爲文本片段。在你的例子中,你實際上是調用DATEVALUE()並將結果傳遞給tbl.CalculateColumn()。

你應該發現以下更改您的公式將成功地將文本轉換值日期:

=tbl.CalculateColumn(table, "Date", "DATEVALUE") 

傳遞"DATEVALUE"function說法是短表單代碼語法的一個例子。我也省略了resultColumn參數,因爲如果您不指定它,Schematiq會覆蓋輸入列的值。下面的公式是更長的時間,但完全等同:

=tbl.CalculateColumn(table, "Date", "x => DATEVALUE(x)", "Date") 

正如你可以想像,有你可以用它來從文本轉換爲日期許多不同的Excel公式。如果你知道你期待的確切格式,類似這樣的東西也可以正常工作:

=tbl.CalculateColumn(table, "Date", "x => DATE(RIGHT(x, 4), MID(x, 4, 2), LEFT(x, 2))", "Date") 
+0

謝謝喬恩,這很好! – cfardella