创建桶的堆积柱形图
Stacked Column chart that creates buckets
我目前在 power-bi
中有一个条形图。该图在 x axis
上有明显的 id's
,在 y axis
上有他们收到的邮件数量。在我使用的 Table 中,我有 SalesYear
、id
和一个 Val
列,每行的值为 1
。 id
在 table 中多次出现,有时在同一年出现两次以上。
问题是我想要 graph reversed
。我想根据他们收到的邮件数量来分桶。然后使用 slicer
查看他们每年收到多少。我一直在努力寻找自己的解决方案,有人对如何解决这个问题有任何想法吗?
Table 我看起来像这样:
id | salesYear | Val
10 | 2012 | 1
11 | 2012 | 1
11 | 2013 | 1
10 | 2012 | 1
10 | 2013 | 1
12 | 2012 | 1
12 | 2012 | 1
因此,在可视化中,我想在 x 轴上显示收到 1 封邮件的人 = 0、收到 2 封邮件的人 = 2、收到 3 封邮件的人 = 1。我的问题是我怎样才能实现这将是堆积柱形图。任何建议将不胜感激!
15k | Y axis would be amount of people who recieved 1 piece, 2 piece, etc..
14k | _
13k | | |
12k | _| |
11k || | |
10k ||_|_|_________________________
1 2 3 4 5 6 7 8 9 <-AmountOfMailRecieved
您将在度量或列中使用 DISTINCTCOUNT。
VariableName = DISTINCTCOUNT([AmountofMailReceived])
1) 从 Power BI 中的示例数据开始。
2) 创建一个新的计算 table,它是与您的来源 table.
不同的年份列表
Years = DISTINCT(
SELECTCOLUMNS(
Mail,
"SalesYear", Mail[salesYear]
)
)
3) 创建另一个计算 table,将年份 table 与一系列整数交叉连接。 Power BI 可能会指示 [Value]
有错误(如下图所示),但它工作正常。
MailCounts = SELECTCOLUMNS(
CROSSJOIN(Years, GENERATESERIES(1, 20)),
"SalesYear", Years[SalesYear],
"MailReceived", [Value]
)
4) 添加一个计算列,计算来源 table 中与年份和邮件计数相匹配的 ID 数量。例如,第一行计算在 2012 年的源 table 中恰好出现一次的不同 ID;它是 1,因为只有 ID 11 在 2012 年出现过一次。
PersonCount = CALCULATE(
DISTINCTCOUNT(Mail[id]),
FILTER(Mail,
Mail[salesYear] = EARLIER(MailCounts[SalesYear]) &&
EARLIER(MailCounts[MailReceived]) = CALCULATE(
COUNTROWS(Mail),
FILTER(Mail,
Mail[salesYear] = EARLIER(Mail[salesYear]) &&
Mail[id] = EARLIER(Mail[id])
)
)
)
)
5) 在来源 table 和年份 table 之间建立关系,然后在年份 table 和计数 table。这将允许根据您的来源 table 的年份创建一个切片器,以从计数 table.
中过滤结果
6) 或者,您可以隐藏源中的年份字段并计数 tables。完成后,如果你愿意,创建一个如下图配置的图表
7) 创建年份 table 的切片器,如下图所示。
就是这样。该图表应符合您的预期结果,并且可以按年份过滤。
我目前在 power-bi
中有一个条形图。该图在 x axis
上有明显的 id's
,在 y axis
上有他们收到的邮件数量。在我使用的 Table 中,我有 SalesYear
、id
和一个 Val
列,每行的值为 1
。 id
在 table 中多次出现,有时在同一年出现两次以上。
问题是我想要 graph reversed
。我想根据他们收到的邮件数量来分桶。然后使用 slicer
查看他们每年收到多少。我一直在努力寻找自己的解决方案,有人对如何解决这个问题有任何想法吗?
Table 我看起来像这样:
id | salesYear | Val
10 | 2012 | 1
11 | 2012 | 1
11 | 2013 | 1
10 | 2012 | 1
10 | 2013 | 1
12 | 2012 | 1
12 | 2012 | 1
因此,在可视化中,我想在 x 轴上显示收到 1 封邮件的人 = 0、收到 2 封邮件的人 = 2、收到 3 封邮件的人 = 1。我的问题是我怎样才能实现这将是堆积柱形图。任何建议将不胜感激!
15k | Y axis would be amount of people who recieved 1 piece, 2 piece, etc..
14k | _
13k | | |
12k | _| |
11k || | |
10k ||_|_|_________________________
1 2 3 4 5 6 7 8 9 <-AmountOfMailRecieved
您将在度量或列中使用 DISTINCTCOUNT。
VariableName = DISTINCTCOUNT([AmountofMailReceived])
1) 从 Power BI 中的示例数据开始。
2) 创建一个新的计算 table,它是与您的来源 table.
不同的年份列表Years = DISTINCT(
SELECTCOLUMNS(
Mail,
"SalesYear", Mail[salesYear]
)
)
3) 创建另一个计算 table,将年份 table 与一系列整数交叉连接。 Power BI 可能会指示 [Value]
有错误(如下图所示),但它工作正常。
MailCounts = SELECTCOLUMNS(
CROSSJOIN(Years, GENERATESERIES(1, 20)),
"SalesYear", Years[SalesYear],
"MailReceived", [Value]
)
4) 添加一个计算列,计算来源 table 中与年份和邮件计数相匹配的 ID 数量。例如,第一行计算在 2012 年的源 table 中恰好出现一次的不同 ID;它是 1,因为只有 ID 11 在 2012 年出现过一次。
PersonCount = CALCULATE(
DISTINCTCOUNT(Mail[id]),
FILTER(Mail,
Mail[salesYear] = EARLIER(MailCounts[SalesYear]) &&
EARLIER(MailCounts[MailReceived]) = CALCULATE(
COUNTROWS(Mail),
FILTER(Mail,
Mail[salesYear] = EARLIER(Mail[salesYear]) &&
Mail[id] = EARLIER(Mail[id])
)
)
)
)
5) 在来源 table 和年份 table 之间建立关系,然后在年份 table 和计数 table。这将允许根据您的来源 table 的年份创建一个切片器,以从计数 table.
中过滤结果6) 或者,您可以隐藏源中的年份字段并计数 tables。完成后,如果你愿意,创建一个如下图配置的图表
7) 创建年份 table 的切片器,如下图所示。
就是这样。该图表应符合您的预期结果,并且可以按年份过滤。