如何将date列中存储的date转换为date值
我正在用=tbl.ImportDelimited(file.OpenText(*path*))
导入一个CSV文件(它有849999行),并试图过滤=tbl.Filter(*table*, "Date", ">"&G11)
– 其中G11
是一个date – 发生了什么事是它将date列转换为文本,不会过滤是否有办法强制它将该列识别为date?
我试图用=tbl.CalculateColumn(*table*, "Date", DATEVALUE(), "Date")
覆盖列,但收到以下错误:
我错过了什么?
就像你说的那样,它看起来像是从文件中导入文本的date列,所以使用>进行过滤将不起作用,因为该值实际上是文本,即使它看起来像date。
要将文本转换为date,可以使用DATEVALUE()函数,但需要将其作为文本片段传递给tbl.CalculateColumn()。 在你的例子中,实际上是调用DATEVALUE()并将结果传递给tbl.CalculateColumn()。
您应该发现以下对公式的更改将成功将文本值转换为date:
=tbl.CalculateColumn(table, "Date", "DATEVALUE")
传递"DATEVALUE"
作为function
参数是短格式片断语法的一个例子。 我也省略了resultColumn
参数,因为如果不指定它,Schematiq会覆盖input列的值。 以下公式更长,但完全等同:
=tbl.CalculateColumn(table, "Date", "x => DATEVALUE(x)", "Date")
正如你可以想象的,有许多不同的Excel公式可以用来从文本转换到date。 如果你知道你期望的确切格式,类似的东西也可以正常工作:
=tbl.CalculateColumn(table, "Date", "x => DATE(RIGHT(x, 4), MID(x, 4, 2), LEFT(x, 2))", "Date")