我正在开发一个PowerPivot项目,我需要将日期转换为另一种格式。 我的SQL Server Analysis Cube为我提供了一个包含日期属性的时间维度。 我想将其转换为dd / mm / yyyy格式以创建对其他数据源(Excel文件)的引用。
我试图通过使用标准DAX日期函数来转换它,但它不被识别为日期,它似乎是由于添加为前缀的日期名称。 如何将其转换为dd / mm / yyyy格式?如何在逗号后提取子字符串?
谢谢!
答案 0 :(得分:2)
我使用以下数据来测试我的解决方案。
您可以使用SEARCH函数查找字符串的第一个实例。所以我可以使用以下公式解析日期部分:
=right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1))
从逗号到字符串结尾后的字符处开始获取子字符串。
DATEVALUE函数采用表示日期的字符串并将其转换为日期。我可以将它与我以前的功能结合起来:
=datevalue(right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1)))
在下图中,第一列是原始数据。第二列是解析日期的子字符串的函数。第三列采用第二列中该日期字符串的日期值。第四列是包含子字符串和日期值的一体化公式。
答案 1 :(得分:1)
如果您要定期从数据库加载数据,我建议您使用Power Query将数据加载到PowerPivot模块中。
以下是可以为您完成结果的示例代码。
数据看起来像这样(表2):
Date
Monday, January 12, 2014
Tuesday, January 13, 2014
Wednesday, January 14, 2014
let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Split Column by Delimiter" = Table.SplitColumn(Source,"Date",Splitter.SplitTextByEachDelimiter({","}, null, false),{"Date.1", "Date.2"}),
#"Change to Date Format" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Date.1", type text}, {"Date.2", type date}}),
#"Removed Columns" = Table.RemoveColumns(#"Change to Date Format",{"Date.1"})
in
#"Removed Columns"
答案 2 :(得分:0)
正如@mmarie解释的那样,以下公式运作良好(需要进行一些更改):
= datevalue(right([Datefield];(LEN([Datefield]) - SEARCH(“,”; [Datefield]) - 1)))