2017-09-27 18 views
1

現在、棒グラフはpower-biです。グラフには、x axisに別のid'sと、y axisで受け取ったメールの金額が記載されています。私が使用している表では、SalesYear,idValの各列に値1があります。 idがテーブルに複数回表示されます。同じ年に2回以上表示されることもあります。バケットを作成する積み上げ縦棒グラフ

問題はgraph reversedです。私は受け取ったメールの量に基づいて人をバケツにしたいと思っています。次に、slicerを使用して、1年あたりの受信量を確認します。私は自分で解決策を見つけるのに苦労してきました。誰にもこのアプローチにどのようなアイデアがあるのでしょうか。 表Lは次のようになります。

id |  salesYear | Val 
    10 |   2012  | 1 
    11 |   2012  | 1 
    11 |   2013  | 1 
    10 |   2012  | 1 
    10 |   2013  | 1 
    12 |   2012  | 1 
    12 |   2012  | 1 

だから私は、メール= 0の1枚を受け取った人、メール= 2の2枚、メールの3枚x軸上でそれを表示したい可視化に= 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 

答えて

1

1)

Sample Data

2)ソース表からの年間の明確なリストで新しい計算表を作成します。

Years = DISTINCT(
    SELECTCOLUMNS(
     Mail, 
     "SalesYear", Mail[salesYear] 
    ) 
) 

Year Table

3)は、一連の整数で年間テーブルをcrossjoins別の計算されたテーブルを作成します。 Power BIは、[Value]にエラーがあることを示している可能性があります(下の図のように)が、正しく動作します。

MailCounts = SELECTCOLUMNS(
    CROSSJOIN(Years, GENERATESERIES(1, 20)), 
    "SalesYear", Years[SalesYear], 
    "MailReceived", [Value] 
) 

Count Table

4)年とメール数と一致ソーステーブルのIDの数をカウントし、計算列を追加します。たとえば、最初の行は、2012年のソーステーブルで何個の個別IDが1回だけ表示されているかをカウントしています。 2012年にはID 11のみが一度だけ表示されるため、1です。

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]) 
      ) 
     ) 
    ) 
) 

Person Count

5)ソース表と年間のテーブル間の関係を作成し、年テーブルとカウントテーブルの間。これにより、ソーステーブルの年に基づいてスライサーを作成し、カウントテーブルの結果をフィルターに掛けることができます。

Relationships

6)オプションで、ソースの年のフィールドを非表示にして、テーブルを数えることができます。あなたが望む場合は、以下の写真のように年間のテーブルからスライサーを作成

Chart

7)下の絵で構成されているように、チャートを作成することを行った後。

Slicer

そして、それはそれです。グラフは期待した結果と一致し、年ごとにフィルタリングすることができます。

+0

うわーありがとう!私は本当に私の質問に答えるためにタイムアウトを取ってくれて感謝しています。ステップは、理解しやすく理解しやすいものでした。それは魅力のように働いた! – Katan

+0

@Katan - 問題ありません。どう致しまして。 – Joe

0

メジャーまたは列のいずれかにDISTINCTCOUNTを使用します。パワーBIでのサンプルデータを皮切り

VariableName = DISTINCTCOUNT([AmountofMailReceived]) 
関連する問題