Power BI 中日期列的排序问题

问题描述 投票:0回答:1
问题描述:

我在 Power BI 中对日期列进行排序时遇到困难,我正在寻求帮助来解决此问题。具体来说,我的数据集中有两列与任务到期日期相关:“task_due_text”和“task_due_sort”。当尝试根据“task_due_sort”对“task_due_text”进行排序时,我遇到一条错误,指出“我们无法按“task_due_sort”对“task_due_text”进行排序。同一值不能有多个“task_due_sort”值在“task_due_text”中。”

尽管确保了两列之间的唯一对应关系,但我在 Power BI 中对它们进行正确排序时遇到了困难。

task_due_text task_due_sort Nov 2026 202611 Dec 2025 202512 Nov 2025 202511 Jan 2025 202501 Dec 2024 202412 Nov 2024 202411 Oct 2024 202410 Sep 2024 202409 Aug 2024 202408 Jul 2024 202407 Jun 2024 202406 May 2024 202405 Apr 2024 202404 Mar 2024 202403 Feb 2024 202402 Jan 2024 202401 Dec 2023 202312 Nov 2023 202311 Jan 2023 202301

task_due_text = FORMAT('Task Table'[task_due_date], "mmm yyyy")


task_due_sort = YEAR('Task Table'[task_due_date]) * 100 + MONTH('Task Table'[task_due_date])


采取的步骤:

    验证了“task_due_text”和“task_due_sort”之间的唯一对应关系,以确保数据完整性。
  1. 检查“task_due_sort”列中是否存在可能影响排序的隐藏字符或空格。
  2. 确认两列都具有兼容的数据类型并符合其预期用途 -“task_due_text”设置为“文本”,并且我已尝试“task_due_sort”的文本和整数数据类型,行为没有变化。
  3. 对两列进行独立排序以了解其行为 - 我可以根据“task_due_text”对“task_due_sort”进行排序
期望的结果:

我正在寻求有关解决排序问题并在 Power BI 中实现所需排序行为的指导。理想情况下,我想根据日期的数字表示对“task_due_sort”进行排序,同时保持与“task_due_text”的唯一对应关系。

powerbi dax visualization powerbi-desktop
1个回答
0
投票
有一瞬间,我认为这将具有挑战性。事实证明并非如此。

这是 PowerQuery:

let Source = Table.FromColumns({Lines.FromBinary(File.Contents("C:\Users\User\Desktop\bad dates.txt"), null, null, 1252)}), #"Split Column by Delimiter" = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, true), {"Column1.1", "Column1.2"}), #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type text}, {"Column1.2", type text}}), #"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]), #"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"task_due_text ", type date}, {"task_due_sort", Int64.Type}}) in #"Changed Type1"
而且都是点击式的东西。没有硬性的 Powerquery 函数或任何东西。从文本文件获取数据 > 然后就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.