1

我正在处理 PowerPivot 项目,我需要将日期转换为另一种格式。我的 SQL Server Analysis Cube 为我提供了一个包含日期属性的时间维度。我想将其转换为 dd/mm/yyyy 格式以创建对另一个数据源(Excel 文件)的引用。

在此处输入图像描述

我尝试使用标准 DAX 日期函数对其进行转换,但它不被识别为日期,这似乎是由于添加了作为前缀的日期名称。如何将其转换为 dd/mm/yyyy 格式?如何提取逗号后的子字符串?

谢谢 !

4

3 回答 3

2

我使用以下数据来测试我的解决方案。

在此处输入图像描述

您可以使用 SEARCH 函数查找字符串的第一个实例。因此,我可以使用以下公式仅解析日期部分:

=right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1))

它获取从逗号后的字符开始到字符串末尾的子字符串。

DATEVALUE 函数接受一个表示日期的字符串并将其转换为日期。我可以将它与我之前的功能结合起来:

=datevalue(right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1)))

在下图中,第一列是原始数据。第二列是解析日期子字符串的函数。第三列采用第二列中该日期字符串的日期值。第四列是包含子字符串和日期值的多合一公式。

在此处输入图像描述

于 2014-05-03T20:12:59.560 回答
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"
于 2015-01-15T04:25:50.940 回答
0

正如@mmarie 解释的那样,以下公式效果很好(需要一些更改):

=datevalue(right([Datefield];(LEN([Datefield])-SEARCH(",";[Datefield])-1)))

于 2014-05-05T07:40:14.417 回答