【问题标题】:Reordering Month and Year in formatted Fiscal Period column在格式化的会计期间列中重新排序月份和年份
【发布时间】:2019-05-30 16:18:08
【问题描述】:

我正在尝试将会计期间列从字母顺序重新排序为时间顺序。也就是说,我有这个列,它将值显示为月-年(在查询编辑器中显示所有不同的值): 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) 的自定义日期和时间格式似乎无法将该列的当前格式识别为月-年,并且当我尝试在新的计算列。

任何帮助将不胜感激!

【问题讨论】:

  • 这很有趣,我在欧洲,我通过在 excel 中创建你的示例进行了测试,导入它。 Power-Bi 使自己成为正确的日期(您在哪里寻找)。如果创建日期,如 1-4-2017、1-4-2018、1-8-2018 等
  • 您在使用日历表吗?或者这个字段在你的事实表中吗?

标签: powerbi dax


【解决方案1】:

您不应该更改 Month-Year 的数据类型,而是按另一列对 month-year 列进行排序,该列可能是另一种数据类型: 进入表格/数据视图,点击要排序的列,点击“按列排序”,然后选择代理排序列

您还应该开始使用相关的日历表来正确管理这些类型的排序。

例如,在您的日历表中,您有两列。包含您要使用的“Feb-2019”之类的数据的月份年份,然后是另一个名为 YearMonth 的列,其中包含 201902 之类的值并且是 Int 类型。

然后简单地根据 YearMonth 列对 Month-Year 列进行排序,它将被正确排序。

【讨论】:

    【解决方案2】:

    由于您的字段是 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"
    )  
    

    这将为您提供一个索引,您可以根据该索引对数据进行排序。将此创建为计算列,将类型从文本转换为整数,然后按此新列对原始列进行排序,您应该是金色的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 2023-04-01
      • 2021-08-19
      • 1970-01-01
      • 2018-10-15
      相关资源
      最近更新 更多