我目前在power-bi
中有一个条形图。该图表id's
上的x axis
与y axis
上收到的邮件数量不同SalesYear
。在我使用的表格中,我有id
,Val
和1
列,每列的值为id
。 graph reversed
在表格中多次出现,有时在同一年出现两次以上。
问题是我想要slicer
。我想根据他们收到多少邮件来打人。然后使用 id | salesYear | Val
10 | 2012 | 1
11 | 2012 | 1
11 | 2013 | 1
10 | 2012 | 1
10 | 2013 | 1
12 | 2012 | 1
12 | 2012 | 1
查看他们每年收到的金额。我一直在努力寻找自己的解决方案,任何人都对如何处理这个问题有任何想法。
表l看起来像这样:
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
所以在可视化中我想表明,在X轴上,收到1件邮件的人= 0件,2件邮件= 2件,3件邮件= 1.我的问题是我怎样才能实现这一点将是一个Stacked Column图表。任何建议将不胜感激!
SqlDataTable dt = new SqlDataTable();
SqlCommand comm = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
da.Fill(dt);
myCMB.DataSource = dt;
myCMB.DisplayMember = "display";
myCMB.ValueMember = "value;
答案 0 :(得分:1)
1)从Power BI中的示例数据开始。
2)创建一个新的计算表,它是源表中不同的年份列表。
Years = DISTINCT(
SELECTCOLUMNS(
Mail,
"SalesYear", Mail[salesYear]
)
)
3)创建另一个计算表,该表使用一系列整数交叉连接年表。 Power BI可能表示[Value]
有错误(就像下图中的情况一样),但它可以正常工作。
MailCounts = SELECTCOLUMNS(
CROSSJOIN(Years, GENERATESERIES(1, 20)),
"SalesYear", Years[SalesYear],
"MailReceived", [Value]
)
4)添加一个计算列,该列计算源表中与年份和邮件计数匹配的ID数。例如,第一行是计算2012年源表中显示一次的不同ID的数量;这是1,因为2012年只有ID 11出现一次。
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)在源表和年份表之间创建关系,然后在年份表和计数表之间创建关系。这将允许根据源表的年份创建切片器,以过滤计数表中的结果。
6)您可以选择隐藏源表和计数表中的年份字段。如果您愿意,可以按照下图中的配置创建图表
7)从年份表创建切片器,如下图所示。
就是这样。该图表应与您的预期结果相符,并可按年度过滤。
答案 1 :(得分:0)
您将在度量或列中使用DISTINCTCOUNT。
VariableName = DISTINCTCOUNT([AmountofMailReceived])