我正在尝试将会计期间列从字母顺序重新排序为时间顺序。也就是说,我有这个列,它以月-年的形式显示值(在查询编辑器中显示所有不同的值):Period_Name Column
我想将这一列按时间顺序排序,如下所示: JAN-18,FEB-18,MAR-18,APR-18等,以便使用它来绘制时间序列。
现在,如果我尝试在Query Editor中将列的数据类型更改为Date,它会认为year实际上是日期,然后假设年份是当前年份(即2019);也就是说,APR-18变成了2019年4月18日,而不是它应该是2018年4月18日,没有日期(这是一个会计期间列)。带有FORMAT函数(https://docs.microsoft.com/en-us/dax/custom-date-and-time-formats-for-the-format-function)的自定义日期和时间格式似乎无法将此列的当前格式识别为月-年,并且当我尝试在新的计算列中使用它时,它们只是返回相同的值。
任何帮助都将不胜感激!
发布于 2019-05-31 08:36:37
因为您的字段是文本,所以它将按字母顺序排序。您可以创建一个“按列排序”来对数据进行排序,方法如下:
Sort by Column :=
VAR YearNumber =
RIGHT ( 'Table'[Column], 2 ) + 2000
VAR CurrentMonthName =
LEFT ( 'Table'[Column], 3 )
RETURN YearNumber &
SWITCH (
CurrentMonthName,
"JAN", "01",
"FEB", "02",
"MAR", "03",
"APR", "04",
"MAY", "05",
"JUN", "06",
"JUL", "07",
"AUG", "08",
"SEP", "09",
"OCT", "10",
"NOV", "11",
"DEC", "12"
)
这将为您提供一个索引,从中对您的数据进行排序。将其创建为计算列,将类型从文本转换为整数,然后按此新列对原始列进行排序,您就应该是黄金列了。
https://stackoverflow.com/questions/56381964
复制相似问题