我正在尝试将会计期间列从字母顺序重新排列为时间顺序。也就是说,我具有此列,该列将值显示为月年(在查询编辑器中显示所有不同的值): Period_Name Column
我想按时间顺序排列此列,例如:JAN-18,FEB-18,MAR-18,APR-18等,以便使用它来绘制时间序列。
现在,如果我尝试将“查询编辑器”中列的数据类型更改为“日期”,它会认为该年实际上是一天,然后假定该年为当前年(即2019年);也就是说,APR-18变为2019年4月18日,而不是应有的日期,即2018年4月,没有一天(这是一个会计期栏)。带有FORMAT函数(https://docs.microsoft.com/en-us/dax/custom-date-and-time-formats-for-the-format-function)的自定义日期和时间格式似乎无法识别该列采用的月份格式,而当我尝试在其中使用时将其吐出相同的值一个新的计算列。
任何帮助将不胜感激!
答案 0 :(得分:2)
您不应更改Month-Year的数据类型,而应按另一列对month-year列进行排序,这可能是另一种数据类型: 进入表格/数据视图,单击要排序的列,单击“按列排序”,然后选择代理排序列
您还应该开始使用相关的日历表来正确管理这些类型的排序。
例如,在日历表中有两列。包含您要使用的诸如“ Feb-2019”之类的数据的Month-year,然后另一个名为YearMonth的列,其包含诸如201902的值并且类型为Int。
然后只需根据YearMonth列对Month-Year列进行排序,即可对其进行正确排序。
答案 1 :(得分:0)
由于您的字段是TEXT,因此将按字母顺序排序。您可以通过执行以下操作来创建“按列排序”以对数据进行排序:
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"
)
这将为您提供一个索引,根据该索引对数据进行排序。将其创建为计算所得的列,将类型从文本转换为整数,然后按此新列对原始列进行排序,那么您应该是黄金的。